diff --git a/blog/locale/ar_AR/LC_MESSAGES/django.po b/blog/locale/ar_AR/LC_MESSAGES/django.po index d6829c39..988432ff 100644 --- a/blog/locale/ar_AR/LC_MESSAGES/django.po +++ b/blog/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,53 +17,53 @@ msgstr "" msgid "blog" msgstr "المدونة" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "عنوان المنشور" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "العنوان" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "المنشور" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "المنشورات" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "ملفات تخفيض السعر غير مدعومة Yer - استخدم محتوى تخفيض السعر بدلاً من ذلك!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "يجب توفير ملف ترميز أو محتوى ترميز مخفض - متنافيان" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "معرّف العلامة الداخلي لعلامة المنشور" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "اسم العلامة" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "اسم سهل الاستخدام لعلامة المنشور" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "اسم عرض العلامة" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "علامة المشاركة" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "علامات المشاركة" diff --git a/blog/locale/cs_CZ/LC_MESSAGES/django.po b/blog/locale/cs_CZ/LC_MESSAGES/django.po index 132ad618..44853cb7 100644 --- a/blog/locale/cs_CZ/LC_MESSAGES/django.po +++ b/blog/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,55 +17,55 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Název příspěvku" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Název" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Příspěvek" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Příspěvky" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Soubory Markdown nejsou podporovány - místo toho použijte obsah Markdown!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "musí být poskytnut soubor markdown nebo obsah markdown - vzájemně se " "vylučují." -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "interní identifikátor tagu pro tag příspěvku" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Název štítku" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Uživatelsky přívětivý název pro značku příspěvku" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Zobrazení názvu štítku" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Označení příspěvku" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Štítky příspěvků" diff --git a/blog/locale/da_DK/LC_MESSAGES/django.po b/blog/locale/da_DK/LC_MESSAGES/django.po index 125b261e..c0422430 100644 --- a/blog/locale/da_DK/LC_MESSAGES/django.po +++ b/blog/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,53 +17,53 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Indlæggets titel" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Titel" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Indlæg" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Indlæg" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "Markdown-filer understøttes ikke - brug markdown-indhold i stedet!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "en markdown-fil eller markdown-indhold skal leveres - gensidigt udelukkende" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "intern tag-identifikator for indlægs-tagget" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Tag-navn" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Brugervenligt navn til posttagget" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Navn på tag-visning" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Tag til indlæg" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Tags til indlæg" diff --git a/blog/locale/de_DE/LC_MESSAGES/django.po b/blog/locale/de_DE/LC_MESSAGES/django.po index 770c510b..57727e68 100644 --- a/blog/locale/de_DE/LC_MESSAGES/django.po +++ b/blog/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,56 +17,56 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Titel des Beitrags" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Titel" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Beitrag" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Beiträge" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Markdown-Dateien werden nicht unterstützt - verwenden Sie stattdessen " "Markdown-Inhalte!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "eine Markdown-Datei oder ein Markdown-Inhalt muss bereitgestellt werden - " "beide schließen sich gegenseitig aus" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "interner Tag-Bezeichner für den Post-Tag" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Tag name" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Benutzerfreundlicher Name für das Post-Tag" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Tag-Anzeigename" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Tag eintragen" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Tags eintragen" diff --git a/blog/locale/en_GB/LC_MESSAGES/django.po b/blog/locale/en_GB/LC_MESSAGES/django.po index 0007ac7a..4071fbc0 100644 --- a/blog/locale/en_GB/LC_MESSAGES/django.po +++ b/blog/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -21,53 +21,53 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Post's title" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Title" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Post" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Posts" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "Markdown files are not supported yer - use markdown content instead!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "a markdown file or markdown content must be provided - mutually exclusive" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "internal tag identifier for the post tag" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Tag name" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "User-friendly name for the post tag" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Tag display name" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Post tag" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Post tags" diff --git a/blog/locale/en_US/LC_MESSAGES/django.po b/blog/locale/en_US/LC_MESSAGES/django.po index 4c5b42f4..952123b3 100644 --- a/blog/locale/en_US/LC_MESSAGES/django.po +++ b/blog/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,53 +17,53 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Post's title" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Title" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Post" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Posts" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "Markdown files are not supported yer - use markdown content instead!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "a markdown file or markdown content must be provided - mutually exclusive" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "internal tag identifier for the post tag" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Tag name" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "User-friendly name for the post tag" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Tag display name" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Post tag" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Post tags" diff --git a/blog/locale/es_ES/LC_MESSAGES/django.po b/blog/locale/es_ES/LC_MESSAGES/django.po index 0cbd963b..643af93b 100644 --- a/blog/locale/es_ES/LC_MESSAGES/django.po +++ b/blog/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,55 +17,55 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Título del mensaje" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Título" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Publicar en" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Puestos" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "No se admiten archivos Markdown - ¡utiliza contenido Markdown en su lugar!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "se debe proporcionar un archivo markdown o contenido markdown - mutuamente " "excluyentes" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "identificador interno de la etiqueta post" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Nombre de la etiqueta" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Nombre fácil de usar para la etiqueta de la entrada" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Nombre de la etiqueta" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Etiqueta postal" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Etiquetas" diff --git a/blog/locale/fr_FR/LC_MESSAGES/django.po b/blog/locale/fr_FR/LC_MESSAGES/django.po index 81d9be0b..e173070f 100644 --- a/blog/locale/fr_FR/LC_MESSAGES/django.po +++ b/blog/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,56 +17,56 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Titre du message" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Titre" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Poste" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Postes" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Les fichiers Markdown ne sont pas pris en charge - utilisez plutôt du " "contenu Markdown !" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "un fichier markdown ou un contenu markdown doit être fourni - ils s'excluent " "mutuellement" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "identifiant interne de la balise post" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Nom du jour" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Nom convivial pour la balise post" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Nom d'affichage de l'étiquette" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Tag de poste" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Tags de la poste" diff --git a/blog/locale/hi_IN/LC_MESSAGES/django.po b/blog/locale/hi_IN/LC_MESSAGES/django.po index 2aafbe02..db2cc3fc 100644 --- a/blog/locale/hi_IN/LC_MESSAGES/django.po +++ b/blog/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -20,51 +20,51 @@ msgstr "" msgid "blog" msgstr "" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "" diff --git a/blog/locale/it_IT/LC_MESSAGES/django.po b/blog/locale/it_IT/LC_MESSAGES/django.po index 66658f56..2cafbf06 100644 --- a/blog/locale/it_IT/LC_MESSAGES/django.po +++ b/blog/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,54 +17,54 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Titolo del post" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Titolo" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Posta" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Messaggi" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "I file Markdown non sono supportati: usa invece i contenuti Markdown!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "deve essere fornito un file markdown o un contenuto markdown - si escludono " "a vicenda" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "identificatore interno del tag post" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Nome del tag" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Nome intuitivo per il tag del post" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Nome del tag" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Post tag" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Tag dei post" diff --git a/blog/locale/ja_JP/LC_MESSAGES/django.po b/blog/locale/ja_JP/LC_MESSAGES/django.po index ff9c3d99..6389d896 100644 --- a/blog/locale/ja_JP/LC_MESSAGES/django.po +++ b/blog/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,56 +17,56 @@ msgstr "" msgid "blog" msgstr "ブログ" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "投稿タイトル" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "タイトル" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "ポスト" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "投稿" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "マークダウン・ファイルはサポートされていません - 代わりにマークダウン・コンテ" "ンツを使用してください!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "マークダウン・ファイルまたはマークダウン・コンテンツを提供しなければならな" "い。" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "投稿タグの内部タグ識別子" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "タグ名" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "投稿タグのユーザーフレンドリーな名前" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "タグ表示名" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "投稿タグ" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "投稿タグ" diff --git a/blog/locale/kk_KZ/LC_MESSAGES/django.po b/blog/locale/kk_KZ/LC_MESSAGES/django.po index 2aafbe02..db2cc3fc 100644 --- a/blog/locale/kk_KZ/LC_MESSAGES/django.po +++ b/blog/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -20,51 +20,51 @@ msgstr "" msgid "blog" msgstr "" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "" diff --git a/blog/locale/nl_NL/LC_MESSAGES/django.po b/blog/locale/nl_NL/LC_MESSAGES/django.po index eadaa76a..8e8cf991 100644 --- a/blog/locale/nl_NL/LC_MESSAGES/django.po +++ b/blog/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,56 +17,56 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Titel van de post" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Titel" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Plaats" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Berichten" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Markdown-bestanden worden niet ondersteund - gebruik in plaats daarvan " "markdown-inhoud!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "er moet een markdown-bestand of markdown-inhoud worden geleverd - wederzijds " "exclusief" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "interne tagidentifier voor de posttag" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Tag naam" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Gebruiksvriendelijke naam voor de posttag" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Tag weergavenaam" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Post tag" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Post tags" diff --git a/blog/locale/pl_PL/LC_MESSAGES/django.po b/blog/locale/pl_PL/LC_MESSAGES/django.po index 5c9342e6..62863481 100644 --- a/blog/locale/pl_PL/LC_MESSAGES/django.po +++ b/blog/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,55 +17,55 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Tytuł postu" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Tytuł" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Post" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Posty" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Pliki Markdown nie są obsługiwane - zamiast tego użyj zawartości Markdown!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "należy dostarczyć plik markdown lub zawartość markdown - wzajemnie się " "wykluczające" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "wewnętrzny identyfikator tagu posta" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Nazwa tagu" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Przyjazna dla użytkownika nazwa tagu posta" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Wyświetlana nazwa znacznika" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Tag posta" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Tagi postów" diff --git a/blog/locale/pt_BR/LC_MESSAGES/django.po b/blog/locale/pt_BR/LC_MESSAGES/django.po index 841e0faa..6ba064d8 100644 --- a/blog/locale/pt_BR/LC_MESSAGES/django.po +++ b/blog/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,54 +17,54 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Título da postagem" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Título" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Postar" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Publicações" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Os arquivos markdown não são suportados - use conteúdo markdown em vez disso!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "um arquivo ou conteúdo de markdown deve ser fornecido - mutuamente exclusivo" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "identificador de tag interno para a tag de postagem" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Nome da etiqueta" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Nome de fácil utilização para a tag de postagem" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Nome de exibição da tag" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Etiqueta de postagem" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Tags de postagem" diff --git a/blog/locale/ro_RO/LC_MESSAGES/django.po b/blog/locale/ro_RO/LC_MESSAGES/django.po index e4842420..aa09a9d6 100644 --- a/blog/locale/ro_RO/LC_MESSAGES/django.po +++ b/blog/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,55 +17,55 @@ msgstr "" msgid "blog" msgstr "Blog" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Titlul postului" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Titlul" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Post" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Mesaje" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Fișierele Markdown nu sunt acceptate - utilizați în schimb conținut Markdown!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "trebuie furnizat un fișier markdown sau conținut markdown - se exclud " "reciproc" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "identificator intern de etichetă pentru eticheta postului" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Nume etichetă" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Nume ușor de utilizat pentru eticheta postului" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Nume afișare etichetă" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Etichetă post" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Etichete poștale" diff --git a/blog/locale/ru_RU/LC_MESSAGES/django.po b/blog/locale/ru_RU/LC_MESSAGES/django.po index 05e6f69a..d858de99 100644 --- a/blog/locale/ru_RU/LC_MESSAGES/django.po +++ b/blog/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,56 +17,56 @@ msgstr "" msgid "blog" msgstr "Блог" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "Заголовок сообщения" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "Название" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "Пост" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "Посты" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "" "Файлы в формате Markdown не поддерживаются - используйте вместо них " "содержимое в формате Markdown!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "" "необходимо предоставить файл разметки или содержимое разметки - " "взаимоисключающие варианты" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "внутренний идентификатор тега для тега post" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "Название тега" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "Удобное для пользователя название тега поста" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "Отображаемое имя тега" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "Тэг поста" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "Тэги постов" diff --git a/blog/locale/zh_Hans/LC_MESSAGES/django.po b/blog/locale/zh_Hans/LC_MESSAGES/django.po index 18ddad0c..442d07b3 100644 --- a/blog/locale/zh_Hans/LC_MESSAGES/django.po +++ b/blog/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -17,52 +17,52 @@ msgstr "" msgid "blog" msgstr "博客" -#: blog/models.py:17 +#: blog/models.py:36 msgid "post title" msgstr "帖子标题" -#: blog/models.py:17 +#: blog/models.py:36 msgid "title" msgstr "标题" -#: blog/models.py:64 +#: blog/models.py:83 msgid "post" msgstr "职位" -#: blog/models.py:65 +#: blog/models.py:84 msgid "posts" msgstr "职位" -#: blog/models.py:69 +#: blog/models.py:88 msgid "markdown files are not supported yet - use markdown content instead" msgstr "不支持 Markdown 文件,请使用 Markdown 内容!" -#: blog/models.py:71 +#: blog/models.py:90 msgid "" "a markdown file or markdown content must be provided - mutually exclusive" msgstr "必须提供标记符文件或标记符内容 - 相互排斥" -#: blog/models.py:82 +#: blog/models.py:122 msgid "internal tag identifier for the post tag" msgstr "职位标签的内部标签标识符" -#: blog/models.py:83 +#: blog/models.py:123 msgid "tag name" msgstr "标签名称" -#: blog/models.py:87 +#: blog/models.py:127 msgid "user-friendly name for the post tag" msgstr "方便用户使用的帖子标签名称" -#: blog/models.py:88 +#: blog/models.py:128 msgid "tag display name" msgstr "标签显示名称" -#: blog/models.py:96 +#: blog/models.py:136 msgid "post tag" msgstr "职位标签" -#: blog/models.py:97 +#: blog/models.py:137 msgid "post tags" msgstr "帖子标签" diff --git a/core/locale/ar_AR/LC_MESSAGES/django.mo b/core/locale/ar_AR/LC_MESSAGES/django.mo index 7b6f17c5..14023e3a 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 473525b5..95a6f317 100644 --- a/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/core/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,118 +13,117 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "المعرف الفريد" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "يستخدم المعرف الفريد لتحديد أي كائن قاعدة بيانات بالتأكيد" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "نشط" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "إذا تم تعيينه على خطأ، لا يمكن للمستخدمين رؤية هذا الكائن دون الحاجة إلى إذن" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "تم إنشاؤها" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "عندما ظهر الكائن لأول مرة في قاعدة البيانات" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "تم التعديل" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "متى تم تحرير الكائن آخر مرة" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "الترجمات" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "جنرال لواء" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "العلاقات" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "البيانات الوصفية" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "الطوابع الزمنية" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "تنشيط المحدد %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s تم تفعيله بنجاح!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "تم تفعيل العناصر المختارة!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "إلغاء تنشيط %(verbose_name_plural)s المحددة" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s تم إلغاء تنشيطه بنجاح." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "تم إلغاء تنشيط العناصر المحددة!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "قيمة السمة" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "قيم السمات" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "الصورة" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "الصور" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "المخزون" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "الأسهم" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "طلب المنتج" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "اطلب المنتجات" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "الأطفال" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "التكوين" @@ -186,8 +185,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "تطبيق مفتاح فقط لقراءة البيانات المسموح بها من ذاكرة التخزين المؤقت.\n" -"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين " -"المؤقت." +"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين المؤقت." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -242,7 +240,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "إعادة كتابة مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "إعادة كتابة بعض حقول مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: core/docs/drf/viewsets.py:70 @@ -290,7 +289,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "إعادة كتابة قيمة سمة موجودة تحفظ غير القابلة للتعديل" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "إعادة كتابة بعض حقول قيمة سمة موجودة حفظ غير قابل للتعديل" #: core/docs/drf/viewsets.py:124 @@ -327,8 +327,8 @@ msgstr "بالنسبة للمستخدمين من غير الموظفين، يت #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "البحث في سلسلة فرعية غير حساسة لحالة الأحرف عبر human_readable_id و " "order_products.product.name و order_products.product.partnumber" @@ -364,9 +364,9 @@ msgstr "تصفية حسب حالة الطلب (مطابقة سلسلة فرعي #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "الترتيب حسب واحد من: uuid، معرف_بشري_مقروء، بريد_إلكتروني_مستخدم، مستخدم، " "حالة، إنشاء، تعديل، وقت_الشراء، عشوائي. البادئة بحرف \"-\" للترتيب التنازلي " @@ -436,7 +436,8 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." +"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" " +"المتوفرة." #: core/docs/drf/viewsets.py:266 msgid "remove product from order" @@ -446,8 +447,7 @@ msgstr "إزالة منتج من الطلب" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." +msgstr "يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." #: core/docs/drf/viewsets.py:272 msgid "remove product from order, quantities will not count" @@ -533,32 +533,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "تصفية حسب زوج واحد أو أكثر من أسماء/قيم السمات. \n" "- **صيغة**: `attr_name=الطريقة-القيمة[ ؛ attr2=الطريقة2-القيمة2]...`\n" -"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، " -"\"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ " -"ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، " -"\"lte\"، \"gt\"، \"gte\"، \"in\n" -"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/" -"المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم " -"التعامل معها كسلسلة. \n" -"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- " -"لتشفير القيمة الخام. \n" +"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، \"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، \"lte\"، \"gt\"، \"gte\"، \"in\n" +"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم التعامل معها كسلسلة. \n" +"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- لتشفير القيمة الخام. \n" "أمثلة: \n" -"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، " -"'fatures=in-[\"wifi\",\"bluetooth\"],\n" +"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، 'fatures=in-[\"wifi\",\"bluetooth\"],\n" "\"b64-description=icontains-aGVhdC1jb2xk" #: core/docs/drf/viewsets.py:349 @@ -611,8 +599,7 @@ msgstr "(بالضبط) الرقمية مقابل المادية" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" "قائمة مفصولة بفواصل من الحقول للفرز حسب. البادئة بـ \"-\" للفرز التنازلي. \n" @@ -790,8 +777,8 @@ msgstr "السمات" msgid "Quantity" msgstr "الكمية" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "سبيكة" @@ -873,7 +860,7 @@ msgstr "البيانات المخزنة مؤقتاً" msgid "camelized JSON data from the requested URL" msgstr "بيانات JSON مجمّلة من عنوان URL المطلوب" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "يُسمح فقط بعناوين URL التي تبدأ ب http(s)://" @@ -904,7 +891,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "يرجى تقديم إما Order_uuid أو order_uid_hr_hr_id - متنافيان!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "جاء نوع خاطئ من طريقة order.buy(): {type(instance)!s}" @@ -948,15 +935,15 @@ msgstr "شراء طلبية" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "الرجاء إرسال السمات كسلسلة منسقة مثل attr1=قيمة1، attr2=قيمة2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "سلسلة العنوان الأصلي المقدمة من المستخدم" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} غير موجود: {uuid}" @@ -969,96 +956,97 @@ msgstr "يجب أن يكون الحد بين 1 و10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - يعمل مثل السحر" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "السمات" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "السمات المجمعة" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "مجموعات السمات" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "الفئات" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "العلامات التجارية" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "الفئات" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "النسبة المئوية للترميز" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "ما هي السمات والقيم التي يمكن استخدامها لتصفية هذه الفئة." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "الحد الأدنى والحد الأقصى لأسعار المنتجات في هذه الفئة، إذا كانت متوفرة." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "العلامات الخاصة بهذه الفئة" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "المنتجات في هذه الفئة" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "البائعون" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "خط العرض (الإحداثي Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "خط الطول (الإحداثي X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "كيفية" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "قيمة التصنيف من 1 إلى 10، شاملة، أو 0 إذا لم يتم تعيينها." -#: core/graphene/object_types.py:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "يمثل ملاحظات من المستخدم." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "الإشعارات" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "تحميل الرابط الخاص بمنتج الطلب هذا إن أمكن" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "قائمة بطلب المنتجات بهذا الترتيب" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "عنوان إرسال الفواتير" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1066,983 +1054,1002 @@ msgstr "" "عنوان الشحن لهذا الطلب، اترك العنوان فارغًا إذا كان هو نفسه عنوان إرسال " "الفواتير أو إذا لم يكن منطبقًا" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "السعر الإجمالي لهذا الطلب" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "إجمالي كمية المنتجات بالترتيب" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "هل جميع المنتجات في الطلب رقمي" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "المعاملات الخاصة بهذا الطلب" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "الطلبات" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "رابط الصورة" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "صور المنتج" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "الفئة" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "الملاحظات" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "العلامة التجارية" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "مجموعات السمات" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "السعر" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "الكمية" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "عدد الملاحظات" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "المنتجات" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "الرموز الترويجية" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "المنتجات المعروضة للبيع" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "العروض الترويجية" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "البائع" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "المنتج" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "المنتجات المفضلة" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "قوائم التمنيات" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "المنتجات الموسومة" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "علامات المنتج" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "الفئات الموسومة" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "علامات الفئات" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "اسم المشروع" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "البريد الإلكتروني للشركة" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "اسم الشركة" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "عنوان الشركة" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "رقم هاتف الشركة" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم " -"المضيف" +"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم" +" المضيف" -#: core/graphene/object_types.py:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "مستخدم البريد الإلكتروني المضيف" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "الحد الأقصى لمبلغ السداد" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "الحد الأدنى لمبلغ السداد" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "بيانات التحليلات" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "بيانات الإعلانات" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "التكوين" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "رمز اللغة" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "اسم اللغة" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "علم اللغة، إذا كان موجوداً :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "الحصول على قائمة باللغات المدعومة" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "نتائج البحث عن المنتجات" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "نتائج البحث عن المنتجات" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "والد هذه المجموعة" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "مجموعة السمات الرئيسية" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "اسم مجموعة السمات" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "مجموعة السمات" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "تخزين بيانات الاعتماد ونقاط النهاية المطلوبة لاتصالات واجهة برمجة التطبيقات " "الخاصة بالمورّد" -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "معلومات المصادقة" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "تحديد الترميز للمنتجات المسترجعة من هذا البائع" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "نسبة هامش الربح للبائع" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "اسم هذا البائع" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "اسم البائع" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "معرّف العلامة الداخلي لعلامة المنتج" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "اسم العلامة" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "اسم سهل الاستخدام لعلامة المنتج" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "اسم عرض العلامة" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "علامة المنتج" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "علامة الفئة" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "علامات الفئة" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "تحميل صورة تمثل هذه الفئة" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "صورة الفئة" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "تحديد نسبة ترميز للمنتجات في هذه الفئة" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "أصل هذه الفئة لتكوين بنية هرمية" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "الفئة الرئيسية" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "اسم الفئة" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "تقديم اسم لهذه الفئة" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "إضافة وصف تفصيلي لهذه الفئة" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "وصف الفئة" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "العلامات التي تساعد في وصف هذه الفئة أو تجميعها" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "الأولوية" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "اسم هذه العلامة التجارية" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "اسم العلامة التجارية" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "تحميل شعار يمثل هذه العلامة التجارية" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "صورة العلامة التجارية الصغيرة" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "رفع شعار كبير يمثل هذه العلامة التجارية" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "صورة كبيرة للعلامة التجارية" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "إضافة وصف تفصيلي للعلامة التجارية" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "وصف العلامة التجارية" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "الفئات الاختيارية التي ترتبط بها هذه العلامة التجارية" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "الفئات" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "الفئة التي ينتمي إليها هذا المنتج" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "ربط هذا المنتج اختياريًا بعلامة تجارية" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "يشير إلى ما إذا كان هذا المنتج يتم تسليمه رقميًا أم لا" - -#: core/models.py:549 -msgid "is product digital" -msgstr "هل المنتج رقمي" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "توفير اسم تعريفي واضح للمنتج" - -#: core/models.py:556 -msgid "product name" -msgstr "اسم المنتج" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "إضافة وصف تفصيلي للمنتج" - -#: core/models.py:562 -msgid "product description" -msgstr "وصف المنتج" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "رقم الجزء لهذا المنتج" - -#: core/models.py:570 -msgid "part number" -msgstr "رقم الجزء" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "فئة هذه السمة" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "مجموعة هذه السمة" - -#: core/models.py:690 -msgid "string" -msgstr "الخيط" - -#: core/models.py:691 -msgid "integer" -msgstr "عدد صحيح" - -#: core/models.py:692 -msgid "float" -msgstr "تعويم" - -#: core/models.py:693 -msgid "boolean" -msgstr "منطقية" - -#: core/models.py:694 -msgid "array" -msgstr "المصفوفة" - -#: core/models.py:695 -msgid "object" -msgstr "الكائن" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "نوع قيمة السمة" - -#: core/models.py:698 -msgid "value type" -msgstr "نوع القيمة" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "اسم هذه السمة" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "اسم السمة" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "السمة" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "سمة هذه القيمة" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "المنتج المرتبط" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "القيمة المحددة لهذه السمة" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "توفير نص بديل للصورة لإمكانية الوصول" - -#: core/models.py:795 -msgid "image alt text" -msgstr "النص البديل للصورة" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "تحميل ملف الصورة لهذا المنتج" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "صورة المنتج" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "يحدد الترتيب الذي يتم عرض الصور به" - -#: core/models.py:806 -msgid "display priority" -msgstr "أولوية العرض" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "المنتج الذي تمثله هذه الصورة" - -#: core/models.py:825 -msgid "product images" -msgstr "صور المنتج" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "النسبة المئوية للخصم على المنتجات المختارة" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "نسبة الخصم" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "تقديم اسم فريد لهذا العرض الترويجي" - -#: core/models.py:873 -msgid "promotion name" -msgstr "اسم الترقية" - -#: core/models.py:879 -msgid "promotion description" -msgstr "وصف الترقية" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" - -#: core/models.py:885 -msgid "included products" -msgstr "المنتجات المشمولة" - -#: core/models.py:889 -msgid "promotion" -msgstr "الترقية" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "البائع الذي يورد هذا المنتج المخزون" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "البائع المرتبط" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "السعر النهائي للعميل بعد هوامش الربح" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "سعر البيع" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "المنتج المرتبط بإدخال المخزون هذا" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "المنتج المرتبط" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "السعر المدفوع للبائع مقابل هذا المنتج" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "سعر الشراء من البائع" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "الكمية المتوفرة من المنتج في المخزون" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "الكمية في المخزون" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU المعين من قبل البائع لتحديد المنتج" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "وحدة تخزين البائع" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "الملف الرقمي المرتبط بهذا المخزون إن أمكن" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "ملف رقمي" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "إدخالات المخزون" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "الفئة التي ينتمي إليها هذا المنتج" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "ربط هذا المنتج اختياريًا بعلامة تجارية" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "يشير إلى ما إذا كان هذا المنتج يتم تسليمه رقميًا أم لا" + +#: core/models.py:625 +msgid "is product digital" +msgstr "هل المنتج رقمي" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "توفير اسم تعريفي واضح للمنتج" + +#: core/models.py:632 +msgid "product name" +msgstr "اسم المنتج" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "إضافة وصف تفصيلي للمنتج" + +#: core/models.py:638 +msgid "product description" +msgstr "وصف المنتج" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "رقم الجزء لهذا المنتج" + +#: core/models.py:646 +msgid "part number" +msgstr "رقم الجزء" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "فئة هذه السمة" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "مجموعة هذه السمة" + +#: core/models.py:766 +msgid "string" +msgstr "الخيط" + +#: core/models.py:767 +msgid "integer" +msgstr "عدد صحيح" + +#: core/models.py:768 +msgid "float" +msgstr "تعويم" + +#: core/models.py:769 +msgid "boolean" +msgstr "منطقية" + +#: core/models.py:770 +msgid "array" +msgstr "المصفوفة" + +#: core/models.py:771 +msgid "object" +msgstr "الكائن" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "نوع قيمة السمة" + +#: core/models.py:774 +msgid "value type" +msgstr "نوع القيمة" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "اسم هذه السمة" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "اسم السمة" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "السمة" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "سمة هذه القيمة" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "القيمة المحددة لهذه السمة" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "توفير نص بديل للصورة لإمكانية الوصول" + +#: core/models.py:871 +msgid "image alt text" +msgstr "النص البديل للصورة" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "تحميل ملف الصورة لهذا المنتج" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "صورة المنتج" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "يحدد الترتيب الذي يتم عرض الصور به" + +#: core/models.py:882 +msgid "display priority" +msgstr "أولوية العرض" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "المنتج الذي تمثله هذه الصورة" + +#: core/models.py:901 +msgid "product images" +msgstr "صور المنتج" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "النسبة المئوية للخصم على المنتجات المختارة" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "نسبة الخصم" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "تقديم اسم فريد لهذا العرض الترويجي" + +#: core/models.py:949 +msgid "promotion name" +msgstr "اسم الترقية" + +#: core/models.py:955 +msgid "promotion description" +msgstr "وصف الترقية" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" + +#: core/models.py:961 +msgid "included products" +msgstr "المنتجات المشمولة" + +#: core/models.py:965 +msgid "promotion" +msgstr "الترقية" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "مالك قائمة الرغبات" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "قائمة الرغبات" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} غير موجود: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "فيلم وثائقي" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "الأفلام الوثائقية" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "لم يتم حلها" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "سطر العنوان للعميل" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "سطر العنوان" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "الشارع" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "المنطقة" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "المدينة" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "المنطقة" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "الرمز البريدي" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "البلد" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "نقطة تحديد الموقع الجغرافي(خط الطول، خط العرض)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "استجابة JSON كاملة من أداة التشفير الجغرافي لهذا العنوان" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "استجابة JSON مخزّنة من خدمة الترميز الجغرافي" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "العنوان" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "العناوين" -#: core/models.py:1205 +#: core/models.py:1206 msgid "unique code used by a user to redeem a discount" msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم" -#: core/models.py:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "معرّف الرمز الترويجي" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "مبلغ الخصم الثابت" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "النسبة المئوية للخصم" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "وقت انتهاء الصلاحية" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "وقت بدء الصلاحية" -#: core/models.py:1238 -msgid "timestamp when the promocode was used, blank if not used yet" -msgstr "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" - #: core/models.py:1239 +msgid "timestamp when the promocode was used, blank if not used yet" +msgstr "" +"الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" + +#: core/models.py:1240 msgid "usage timestamp" msgstr "الطابع الزمني للاستخدام" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "المستخدم المعين" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "الرمز الترويجي" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "الرموز الترويجية" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين " -"أو لا هذا ولا ذاك." +"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" +" أو لا هذا ولا ذاك." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "تم استخدام الرمز الترويجي بالفعل" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "عنوان إرسال الفواتير المستخدم لهذا الطلب" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "الرمز الترويجي الاختياري المطبق على هذا الطلب" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "الرمز الترويجي المطبق" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "عنوان الشحن المستخدم لهذا الطلب" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "عنوان الشحن" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "الحالة الحالية للطلب في دورة حياته" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "حالة الطلب" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 msgid "json structure of notifications to display to users" msgstr "" "بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم " "استخدام عرض الجدول" -#: core/models.py:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "تمثيل JSON لسمات الطلب لهذا الطلب" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "المستخدم الذي قدم الطلب" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "المستخدم" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "الطابع الزمني عند الانتهاء من الطلب" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "وقت الشراء" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "معرّف يمكن قراءته بواسطة البشر للطلب" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "معرّف يمكن قراءته من قبل البشر" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "الطلب" -#: core/models.py:1403 +#: core/models.py:1404 msgid "a user must have only one pending order at a time" msgstr "يجب أن يكون لدى المستخدم طلب واحد فقط معلق في كل مرة!" -#: core/models.py:1437 +#: core/models.py:1438 msgid "you cannot add products to an order that is not a pending one" msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق" -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 msgid "you cannot remove products from an order that is not a pending one" msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق" -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} غير موجود مع الاستعلام <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "الرمز الترويجي غير موجود" -#: core/models.py:1540 +#: core/models.py:1541 msgid "you can only buy physical products with shipping address specified" msgstr "يمكنك فقط شراء المنتجات المادية مع تحديد عنوان الشحن فقط!" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "العنوان غير موجود" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق." -#: core/models.py:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "قيمة القوة غير صالحة" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "لا يمكنك شراء طلبية فارغة!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "لا يمكنك شراء طلب بدون مستخدم!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "المستخدم بدون رصيد لا يمكنه الشراء بالرصيد!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "عدم كفاية الأموال لإكمال الطلب" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد " -"الإلكتروني للعميل، رقم هاتف العميل" +"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" +" الإلكتروني للعميل، رقم هاتف العميل" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "طريقة الدفع غير صالحة: {payment_method} من {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 msgid "the price paid by the customer for this product at purchase time" msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء" -#: core/models.py:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "سعر الشراء وقت الطلب" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "التعليقات الداخلية" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "إشعارات المستخدم" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "تمثيل JSON لسمات هذا العنصر" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "سمات المنتج المطلوبة" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "ترتيب الوالدين" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "المنتج المحدد المرتبط بخط الطلب هذا" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "كمية هذا المنتج المحدد في الطلب" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "كمية المنتج" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "الحالة الحالية لهذا المنتج بالترتيب" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "حالة خط الإنتاج" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "يجب أن يكون لـ Orderproduct طلب مرتبط به!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "إجراء خاطئ محدد للتغذية الراجعة: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "لا يمكنك التعليق على طلب لم يتم استلامه" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "تنزيل" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "التنزيلات" -#: core/models.py:1891 +#: core/models.py:1904 msgid "you can not download a digital asset for a non-finished order" msgstr "لا يمكنك تنزيل أصل رقمي لطلب غير مكتمل" -#: core/models.py:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "التعليقات المقدمة من المستخدمين حول تجربتهم مع المنتج" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "تعليقات على الملاحظات" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "الإشارة إلى المنتج المحدد في الطلب الذي تدور حوله هذه الملاحظات" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "منتجات الطلبات ذات الصلة" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "التصنيف المعين من قبل المستخدم للمنتج" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "تصنيف المنتج" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "الملاحظات" @@ -2057,7 +2064,7 @@ msgstr "خطأ أثناء إنشاء الرمز الترويجي: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2066,7 +2073,7 @@ msgid "order confirmation" msgstr "تأكيد الطلب" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2083,22 +2090,21 @@ msgstr "مرحبًا %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"شكرًا لك على طلبك #%(order.pk)s! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل. " -"فيما يلي تفاصيل طلبك:" +"شكرًا لك على طلبك #%(order.pk)s! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل." +" فيما يلي تفاصيل طلبك:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "الإجمالي" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2121,27 +2127,27 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "مع أطيب التحيات، فريق عمل %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "جميع الحقوق محفوظة" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "تم تسليم الطلب" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "مرحباً %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "لقد قمنا بمعالجة طلبك بنجاح №%(order_uuid)s__! فيما يلي تفاصيل طلبك:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2149,12 +2155,12 @@ msgstr "" "معلومات إضافية\n" " معلومات إضافية" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "القيمة" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2162,7 +2168,7 @@ msgid "" msgstr "" "إذا كانت لديك أي أسئلة، فلا تتردد في الاتصال بدعمنا على %(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "مع أطيب التحيات، فريق عمل %(project_name)s" @@ -2174,8 +2180,7 @@ msgstr "المفتاح" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "شكرًا لك على طلبك! يسعدنا تأكيد طلبك. فيما يلي تفاصيل طلبك:" @@ -2212,27 +2217,17 @@ msgstr "كل من البيانات والمهلة مطلوبة" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "قيمة المهلة غير صالحة، يجب أن تكون بين 0 و216000 ثانية" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "يجب أن يكون {model} نموذجًا" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "يجب أن تكون {data} كائن قائمة" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | بدء الاتصال بنا" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | تأكيد الطلب" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | تم تسليم الطلب" @@ -2254,15 +2249,15 @@ msgstr "يجب ألا تتجاوز أبعاد الصورة w{max_width} x h{max_ msgid "invalid phone number format" msgstr "تنسيق رقم الهاتف غير صالح" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "يمكنك تنزيل الأصل الرقمي مرة واحدة فقط" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "الرمز المفضل غير موجود" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 a6208ad4..da22c49d 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 100f23b2..3afcb478 100644 --- a/core/locale/cs_CZ/LC_MESSAGES/django.po +++ b/core/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,120 +13,119 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Jedinečné ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "Jedinečné ID slouží k jisté identifikaci jakéhokoli databázového objektu." -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Je aktivní" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Pokud je nastaveno na false, nemohou tento objekt vidět uživatelé bez " "potřebného oprávnění." -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Vytvořeno" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Kdy se objekt poprvé objevil v databázi" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Upraveno" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Kdy byl objekt naposledy upraven" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Překlady" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Obecné" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Vztahy" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadata" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Časová razítka" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivovat vybrané %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s úspěšně aktivován!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Vybrané položky byly aktivovány!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktivovat vybrané %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s byl úspěšně deaktivován." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Vybrané položky byly deaktivovány!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Hodnota atributu" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Hodnoty atributů" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Obrázek" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Obrázky" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stock" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Zásoby" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Objednat produkt" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Objednat produkty" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Děti" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Konfigurace" @@ -245,7 +244,8 @@ msgstr "" "Přepsání existující skupiny atributů s uložením neupravitelných položek" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -297,7 +297,8 @@ 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:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -339,12 +340,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Vyhledávání podřetězců bez ohledu na velikost písmen v položkách " -"human_readable_id, order_products.product.name a order_products.product." -"partnumber" +"human_readable_id, order_products.product.name a " +"order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -380,9 +381,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Řazení podle jedné z následujících možností: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Pro sestupné " @@ -423,8 +424,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí " -"s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " +"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí" +" s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " "transakce." #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 @@ -539,7 +540,8 @@ msgstr "Přidání mnoha produktů do seznamu přání" #: core/docs/drf/viewsets.py:320 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`." +msgstr "" +"Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." #: core/docs/drf/viewsets.py:325 msgid "remove many products from wishlist" @@ -555,28 +557,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrování podle jedné nebo více dvojic název/hodnota atributu. \n" "- **Syntaxe**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metody** (pokud je vynecháno, výchozí hodnota je `obsahuje`): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- **Typování hodnot**: Pro booleany, celá čísla, floaty se nejprve zkouší " -"JSON (takže můžete předávat seznamy/dicty), `true`/`false`; jinak se s nimi " -"zachází jako s řetězci. \n" -"- **Base64**: předpona `b64-` pro bezpečné zakódování surové hodnoty do URL " -"base64. \n" +"- **Metody** (pokud je vynecháno, výchozí hodnota je `obsahuje`): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Typování hodnot**: Pro booleany, celá čísla, floaty se nejprve zkouší JSON (takže můžete předávat seznamy/dicty), `true`/`false`; jinak se s nimi zachází jako s řetězci. \n" +"- **Base64**: předpona `b64-` pro bezpečné zakódování surové hodnoty do URL base64. \n" "Příklady: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -631,12 +623,10 @@ msgstr "(přesně) Digitální vs. fyzické" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné " -"řazení použijte předponu `-`. \n" +"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné řazení použijte předponu `-`. \n" "**Povolené:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -812,8 +802,8 @@ msgstr "Atributy" msgid "Quantity" msgstr "Množství" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Slug" @@ -895,7 +885,7 @@ msgstr "Data uložená v mezipaměti" msgid "camelized JSON data from the requested URL" msgstr "Kamelizovaná data JSON z požadované adresy URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Povoleny jsou pouze adresy URL začínající http(s)://." @@ -926,7 +916,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Zadejte prosím order_uuid nebo order_hr_id - vzájemně se vylučují!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Z metody order.buy() pochází nesprávný typ: {type(instance)!s}" @@ -970,17 +960,17 @@ msgstr "Koupit objednávku" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Prosím, pošlete atributy jako řetězec ve formátu attr1=hodnota1," -"attr2=hodnota2." +"Prosím, pošlete atributy jako řetězec ve formátu " +"attr1=hodnota1,attr2=hodnota2." #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "Původní řetězec adresy zadaný uživatelem" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} neexistuje: {uuid}" @@ -993,96 +983,98 @@ msgstr "Limit musí být mezi 1 a 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funguje jako kouzlo" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Atributy" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Seskupené atributy" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Skupiny atributů" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Značky" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Kategorie" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Procento přirážky" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "Které atributy a hodnoty lze použít pro filtrování této kategorie." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." -msgstr "" -"Minimální a maximální ceny produktů v této kategorii, pokud jsou k dispozici." - #: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "" +"Minimální a maximální ceny produktů v této kategorii, pokud jsou k " +"dispozici." + +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Štítky pro tuto kategorii" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Produkty v této kategorii" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Prodejci" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Zeměpisná šířka (souřadnice Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Zeměpisná délka (souřadnice X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Jak na to" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Představuje zpětnou vazbu od uživatele." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Oznámení" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 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:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Seznam objednaných produktů v tomto pořadí" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Fakturační adresa" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1090,730 +1082,735 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Celková cena této objednávky" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Celkové množství objednaných produktů" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Jsou všechny produkty v objednávce digitální" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transakce pro tuto objednávku" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Objednávky" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Adresa URL obrázku" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Obrázky produktu" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Zpětná vazba" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Značka" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Skupiny atributů" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Cena" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Množství" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Počet zpětných vazeb" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Propagační kódy" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Produkty v prodeji" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Propagační akce" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Prodejce" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Produkty uvedené na seznamu přání" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Seznamy přání" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Produkty s příznakem" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Štítky produktu" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Kategorie s příznakem" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Štítky kategorií" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Název projektu" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "E-mail společnosti" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Název společnosti" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Adresa společnosti" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Telefonní číslo společnosti" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Uživatel hostitelského e-mailu" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Maximální částka pro platbu" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Minimální částka pro platbu" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Analytická data" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Reklamní údaje" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Konfigurace" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Kód jazyka" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Název jazyka" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Příznak jazyka, pokud existuje :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Získat seznam podporovaných jazyků" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Výsledky vyhledávání produktů" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Výsledky vyhledávání produktů" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Rodič této skupiny" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Nadřazená skupina atributů" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Název skupiny atributů" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Skupina atributů" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Informace o ověřování" -#: core/models.py:153 +#: core/models.py:155 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:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Procento přirážky prodejce" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Název tohoto prodejce" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Název prodejce" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Interní identifikátor značky produktu" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Název štítku" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Uživatelsky přívětivý název pro značku produktu" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Zobrazení názvu štítku" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Štítek produktu" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "značka kategorie" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "štítky kategorií" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Nahrát obrázek reprezentující tuto kategorii" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Obrázek kategorie" -#: core/models.py:337 +#: core/models.py:338 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:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "Nadřízený této kategorie, který tvoří hierarchickou strukturu." -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Nadřazená kategorie" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Název kategorie" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Uveďte název této kategorie" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Přidejte podrobný popis této kategorie" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Popis kategorie" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "značky, které pomáhají popsat nebo seskupit tuto kategorii" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Priorita" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Název této značky" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Název značky" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Nahrát logo reprezentující tuto značku" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Malý obrázek značky" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Nahrát velké logo reprezentující tuto značku" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Velká image značky" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Přidejte podrobný popis značky" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Popis značky" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Volitelné kategorie, se kterými je tato značka spojena" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Kategorie, do které tento produkt patří" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Volitelně přiřadit tento produkt ke značce" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Značky, které pomáhají popsat nebo seskupit tento produkt" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Označuje, zda je tento produkt dodáván digitálně" - -#: core/models.py:549 -msgid "is product digital" -msgstr "Je produkt digitální" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Uveďte jasný identifikační název výrobku" - -#: core/models.py:556 -msgid "product name" -msgstr "Název produktu" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Přidejte podrobný popis produktu" - -#: core/models.py:562 -msgid "product description" -msgstr "Popis produktu" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Číslo dílu pro tento produkt" - -#: core/models.py:570 -msgid "part number" -msgstr "Číslo dílu" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Kategorie tohoto atributu" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Skupina tohoto atributu" - -#: core/models.py:690 -msgid "string" -msgstr "Řetězec" - -#: core/models.py:691 -msgid "integer" -msgstr "Celé číslo" - -#: core/models.py:692 -msgid "float" -msgstr "Float" - -#: core/models.py:693 -msgid "boolean" -msgstr "Boolean" - -#: core/models.py:694 -msgid "array" -msgstr "Pole" - -#: core/models.py:695 -msgid "object" -msgstr "Objekt" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Typ hodnoty atributu" - -#: core/models.py:698 -msgid "value type" -msgstr "Typ hodnoty" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Název tohoto atributu" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Název atributu" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Atribut" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Atribut této hodnoty" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Související produkt" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "Konkrétní hodnota tohoto atributu" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." - -#: core/models.py:795 -msgid "image alt text" -msgstr "Text alt obrázku" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Nahrát soubor s obrázkem tohoto produktu" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Obrázek produktu" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Určuje pořadí, v jakém se obrázky zobrazují." - -#: core/models.py:806 -msgid "display priority" -msgstr "Priorita zobrazení" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "Výrobek, který tento obrázek představuje" - -#: core/models.py:825 -msgid "product images" -msgstr "Obrázky produktů" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Procentuální sleva na vybrané produkty" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Procento slevy" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Uveďte jedinečný název této propagační akce" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Název akce" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Popis propagace" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Vyberte, které produkty jsou zahrnuty do této akce" - -#: core/models.py:885 -msgid "included products" -msgstr "Zahrnuté produkty" - -#: core/models.py:889 -msgid "promotion" -msgstr "Propagace" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "Prodejce dodávající tento výrobek na sklad" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Přidružený prodejce" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Konečná cena pro zákazníka po přirážkách" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Prodejní cena" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "Produkt spojený s touto skladovou položkou" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Související produkt" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "Cena zaplacená prodejci za tento výrobek" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Kupní cena prodejce" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Dostupné množství produktu na skladě" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Množství na skladě" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU přidělený prodejcem pro identifikaci výrobku" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "SKU prodejce" -#: core/models.py:960 +#: core/models.py:550 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:961 +#: core/models.py:551 msgid "digital file" msgstr "Digitální soubor" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Zápisy do zásob" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Kategorie, do které tento produkt patří" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Volitelně přiřadit tento produkt ke značce" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Značky, které pomáhají popsat nebo seskupit tento produkt" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Označuje, zda je tento produkt dodáván digitálně" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Je produkt digitální" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Uveďte jasný identifikační název výrobku" + +#: core/models.py:632 +msgid "product name" +msgstr "Název produktu" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Přidejte podrobný popis produktu" + +#: core/models.py:638 +msgid "product description" +msgstr "Popis produktu" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Číslo dílu pro tento produkt" + +#: core/models.py:646 +msgid "part number" +msgstr "Číslo dílu" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Kategorie tohoto atributu" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Skupina tohoto atributu" + +#: core/models.py:766 +msgid "string" +msgstr "Řetězec" + +#: core/models.py:767 +msgid "integer" +msgstr "Celé číslo" + +#: core/models.py:768 +msgid "float" +msgstr "Float" + +#: core/models.py:769 +msgid "boolean" +msgstr "Boolean" + +#: core/models.py:770 +msgid "array" +msgstr "Pole" + +#: core/models.py:771 +msgid "object" +msgstr "Objekt" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Typ hodnoty atributu" + +#: core/models.py:774 +msgid "value type" +msgstr "Typ hodnoty" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Název tohoto atributu" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Název atributu" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Atribut" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Atribut této hodnoty" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "Konkrétní hodnota tohoto atributu" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." + +#: core/models.py:871 +msgid "image alt text" +msgstr "Text alt obrázku" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Nahrát soubor s obrázkem tohoto produktu" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Obrázek produktu" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Určuje pořadí, v jakém se obrázky zobrazují." + +#: core/models.py:882 +msgid "display priority" +msgstr "Priorita zobrazení" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "Výrobek, který tento obrázek představuje" + +#: core/models.py:901 +msgid "product images" +msgstr "Obrázky produktů" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Procentuální sleva na vybrané produkty" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Procento slevy" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Uveďte jedinečný název této propagační akce" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Název akce" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Popis propagace" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Vyberte, které produkty jsou zahrnuty do této akce" + +#: core/models.py:961 +msgid "included products" +msgstr "Zahrnuté produkty" + +#: core/models.py:965 +msgid "promotion" +msgstr "Propagace" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Výrobky, které uživatel označil jako požadované" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Uživatel, který vlastní tento seznam přání" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Majitel seznamu přání" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Seznam přání" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} neexistuje: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Dokumentární film" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Dokumentární filmy" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Nevyřešené" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Adresní řádek pro zákazníka" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Adresní řádek" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Ulice" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Okres" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Město" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Region" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Poštovní směrovací číslo" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Země" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokace Bod(Zeměpisná délka, Zeměpisná šířka)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Úplná odpověď JSON z geokodéru pro tuto adresu" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Uložená odpověď JSON ze služby geokódování" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Adresa" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adresy" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Identifikátor propagačního kódu" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "Pevná výše slevy, pokud není použito procento" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Pevná výše slevy" -#: core/models.py:1220 +#: core/models.py:1221 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:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Procentuální sleva" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Časové razítko ukončení platnosti promokódu" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Doba ukončení platnosti" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Časové razítko, od kterého je tento promokód platný" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Čas zahájení platnosti" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Časové razítko použití" -#: core/models.py:1244 +#: core/models.py:1245 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:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Přiřazený uživatel" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Propagační kód" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Propagační kódy" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1821,136 +1818,145 @@ msgstr "" "Měl by být definován pouze jeden typ slevy (částka nebo procento), nikoli " "však oba typy slev nebo žádný z nich." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Promo kód byl již použit" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Neplatný typ slevy pro promocode {self.uuid}" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "Fakturační adresa použitá pro tuto objednávku" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Volitelný promo kód použitý na tuto objednávku" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Použitý promo kód" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "Dodací adresa použitá pro tuto objednávku" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Dodací adresa" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Aktuální stav zakázky v jejím životním cyklu" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Stav objednávky" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "JSON reprezentace atributů objednávky pro tuto objednávku" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "Uživatel, který zadal objednávku" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Uživatel" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Časové razítko, kdy byla objednávka dokončena." -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Kupte si čas" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Lidsky čitelný identifikátor objednávky" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "lidsky čitelné ID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Objednávka" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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." +msgstr "" +"Do objednávky, která není v procesu vyřizování, nelze přidat produkty." -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Do objednávky nelze přidat neaktivní produkty" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} neexistuje s dotazem <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Promo kód neexistuje" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Adresa neexistuje" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Neplatná hodnota síly" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Nelze zakoupit prázdnou objednávku!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "Bez uživatele nelze objednávku zakoupit!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Uživatel bez zůstatku nemůže nakupovat se zůstatkem!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Nedostatek finančních prostředků na dokončení objednávky" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1958,117 +1964,122 @@ 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:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Neplatný způsob platby: {payment_method} z {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Nákupní cena v době objednávky" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Interní připomínky" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Oznámení uživatele" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "JSON reprezentace atributů této položky" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Objednané atributy produktu" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Objednávka rodičů" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Konkrétní produkt spojený s touto objednávkou" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Množství tohoto konkrétního produktu v objednávce" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Množství produktu" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Aktuální stav tohoto produktu v objednávce" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Stav produktové řady" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Orderproduct musí mít přiřazenou objednávku!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "špatně zadaná akce pro zpětnou vazbu: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "nelze poskytnout zpětnou vazbu na objednávku, která nebyla přijata" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Stáhnout" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Ke stažení na" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Komentáře uživatelů o jejich zkušenostech s produktem" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Zpětná vazba" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Související objednávka produktu" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Hodnocení produktu přidělené uživatelem" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Hodnocení produktu" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Zpětná vazba" @@ -2084,7 +2095,7 @@ msgstr "Chyba při vytváření promokódu: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2093,7 +2104,7 @@ msgid "order confirmation" msgstr "Potvrzení objednávky" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2110,8 +2121,7 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Děkujeme vám za vaši objednávku #%(order.pk)s! S potěšením Vám oznamujeme, " @@ -2119,14 +2129,14 @@ msgstr "" "objednávce:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Celkem" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2149,20 +2159,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "S pozdravem,
tým %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Všechna práva vyhrazena" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Dodaná objednávka" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Ahoj %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2171,7 +2181,7 @@ msgstr "" "Úspěšně jsme zpracovali vaši objednávku №%(order_uuid)s! Níže jsou uvedeny " "podrobnosti vaší objednávky:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2179,12 +2189,12 @@ msgstr "" "další\n" " informace" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Hodnota" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2193,7 +2203,7 @@ msgstr "" "V případě dotazů se můžete obrátit na naši podporu na adrese " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "S pozdravem,
tým %(project_name)s" @@ -2205,8 +2215,7 @@ msgstr "Klíč" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Děkujeme vám za vaši objednávku! S potěšením potvrzujeme váš nákup. Níže " @@ -2245,27 +2254,17 @@ msgstr "Jsou vyžadována data i časový limit" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Nesprávná hodnota timeoutu, musí být v rozmezí 0 až 216000 sekund." -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} musí být model" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} musí být objekt seznamu" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Kontakt iniciován" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Potvrzení objednávky" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Dodaná objednávka" @@ -2288,15 +2287,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Nesprávný formát telefonního čísla" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Digitální aktivum můžete stáhnout pouze jednou" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon nebyl nalezen" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 3364a06b..faca5c1b 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 f969839a..2673572f 100644 --- a/core/locale/da_DK/LC_MESSAGES/django.po +++ b/core/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,119 +13,118 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Unikt ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "Unikt ID bruges til sikkert at identificere ethvert databaseobjekt" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Er aktiv" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Hvis det er sat til false, kan dette objekt ikke ses af brugere uden den " "nødvendige tilladelse." -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Oprettet" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Da objektet første gang dukkede op i databasen" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modificeret" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Hvornår objektet sidst blev redigeret" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Oversættelser" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Generelt" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relationer" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadata" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Tidsstempler" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivér udvalgte %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s aktiveret med succes!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Udvalgte varer er blevet aktiveret!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktiver udvalgte %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s deaktiveret med succes." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Udvalgte varer er blevet deaktiveret!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Attributværdi" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Attributværdier" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Billede" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Billeder" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Lager" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Aktier" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Bestil produkt" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Bestil produkter" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Børn" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Konfig" @@ -187,8 +186,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Anvend kun en nøgle til at læse tilladte data fra cachen.\n" -"Anvend nøgle, data og timeout med autentificering for at skrive data til " -"cachen." +"Anvend nøgle, data og timeout med autentificering for at skrive data til cachen." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -245,7 +243,8 @@ msgstr "" "attributter" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -298,10 +297,11 @@ msgstr "" "Omskriv en eksisterende attributværdi, der gemmer ikke-redigerbare filer" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" +"Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare" +" felter" #: core/docs/drf/viewsets.py:124 msgid "list all categories (simple view)" @@ -335,16 +335,17 @@ msgstr "Liste over alle kategorier (enkel visning)" #: core/docs/drf/viewsets.py:152 msgid "for non-staff users, only their own orders are returned." -msgstr "For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." +msgstr "" +"For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Substringsøgning uden brug af store og små bogstaver på tværs af " -"human_readable_id, order_products.product.name og order_products.product." -"partnumber" +"human_readable_id, order_products.product.name og " +"order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -376,13 +377,13 @@ msgstr "Filtrer efter ordrestatus (case-insensitive substring match)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Bestil efter en af: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge " -"(f.eks. '-buy_time')." +"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge" +" (f.eks. '-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -532,7 +533,8 @@ msgstr "Fjern et produkt fra ønskelisten" #: core/docs/drf/viewsets.py:314 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`." +"Fjerner et produkt fra en ønskeliste ved hjælp af den angivne " +"`product_uuid`." #: core/docs/drf/viewsets.py:319 msgid "add many products to wishlist" @@ -559,28 +561,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrer efter et eller flere attributnavn/værdipar. \n" "- **Syntaks**: `attr_name=method-value[;attr2=method2-value2]...`.\n" -"- **Metoder** (standard er `icontains`, hvis udeladt): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Værdiindtastning**: JSON forsøges først (så du kan sende lister/dikter), " -"`true`/`false` for booleans, heltal, floats; ellers behandles de som " -"strenge. \n" -"- **Base64**: præfiks med `b64-` for URL-sikker base64-kodning af den rå " -"værdi. \n" +"- **Metoder** (standard er `icontains`, hvis udeladt): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Værdiindtastning**: JSON forsøges først (så du kan sende lister/dikter), `true`/`false` for booleans, heltal, floats; ellers behandles de som strenge. \n" +"- **Base64**: præfiks med `b64-` for URL-sikker base64-kodning af den rå værdi. \n" "Eksempler på dette: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -635,12 +627,10 @@ msgstr "(præcis) Digital vs. fysisk" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` " -"for faldende. \n" +"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` for faldende. \n" "**Tilladt:** uuid, vurdering, navn, slug, oprettet, ændret, pris, tilfældig" #: core/docs/drf/viewsets.py:441 @@ -814,8 +804,8 @@ msgstr "Egenskaber" msgid "Quantity" msgstr "Mængde" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Snegl" @@ -897,7 +887,7 @@ msgstr "Cachelagrede data" msgid "camelized JSON data from the requested URL" msgstr "Cameliserede JSON-data fra den ønskede URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Kun URL'er, der starter med http(s)://, er tilladt." @@ -928,7 +918,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Angiv enten order_uuid eller order_hr_id - det udelukker hinanden!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Forkert type kom fra metoden order.buy(): {type(instance)!s}" @@ -972,17 +962,17 @@ msgstr "Køb en ordre" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Send venligst attributterne som en streng formateret som attr1=værdi1," -"attr2=værdi2" +"Send venligst attributterne som en streng formateret som " +"attr1=værdi1,attr2=værdi2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "Original adressestreng leveret af brugeren" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} findes ikke: {uuid}" @@ -995,100 +985,102 @@ msgstr "Grænsen skal være mellem 1 og 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fungerer som en charme" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Egenskaber" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Grupperede attributter" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Grupper af attributter" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Kategorier" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Mærker" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Kategorier" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Markup-procentdel" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" -"Hvilke attributter og værdier, der kan bruges til at filtrere denne kategori." +"Hvilke attributter og værdier, der kan bruges til at filtrere denne " +"kategori." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimums- og maksimumspriser for produkter i denne kategori, hvis de er " "tilgængelige." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tags for denne kategori" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Produkter i denne kategori" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Leverandører" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Breddegrad (Y-koordinat)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Længdegrad (X-koordinat)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Sådan gør du" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Repræsenterer feedback fra en bruger." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Meddelelser" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "Download url for dette ordreprodukt, hvis det er relevant" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "En liste over bestillingsprodukter i denne ordre" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Faktureringsadresse" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1096,731 +1088,736 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Samlet pris for denne ordre" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Samlet antal produkter i ordren" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Er alle produkterne i ordren digitale?" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transaktioner for denne ordre" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Bestillinger" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Billed-URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Produktets billeder" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Kategori" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Tilbagemeldinger" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Attributgrupper" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Pris" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Mængde" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Antal tilbagemeldinger" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Produkter" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Promokoder" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Produkter til salg" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Kampagner" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Leverandør" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Produkter på ønskelisten" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Ønskelister" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Mærkede produkter" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Produktmærker" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Tagged kategorier" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Kategoriernes tags" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Projektets navn" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Virksomhedens e-mail" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Virksomhedens navn" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Virksomhedens adresse" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Virksomhedens telefonnummer" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "E-mail-værtsbruger" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Maksimalt beløb til betaling" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Minimumsbeløb for betaling" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Analytiske data" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Data om reklamer" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Sprogkode" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Sprogets navn" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Sprogflag, hvis det findes :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Få en liste over understøttede sprog" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Søgeresultater for produkter" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Søgeresultater for produkter" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Forælder til denne gruppe" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Overordnet attributgruppe" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Attributgruppens navn" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Attributgruppe" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Oplysninger om godkendelse" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "Definer markeringen for produkter, der hentes fra denne leverandør" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Sælgerens markup-procentdel" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Navn på denne leverandør" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Leverandørens navn" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Intern tag-identifikator for produkttagget" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Tag-navn" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Brugervenligt navn til produktmærket" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Navn på tag-visning" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Produktmærke" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "Kategori-tag" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "Kategori-tags" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Upload et billede, der repræsenterer denne kategori" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Kategori billede" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "Definer en markup-procentdel for produkter i denne kategori" -#: core/models.py:346 +#: core/models.py:347 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:347 +#: core/models.py:348 msgid "parent category" msgstr "Overordnet kategori" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Navn på kategori" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Giv et navn til denne kategori" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Tilføj en detaljeret beskrivelse af denne kategori" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Beskrivelse af kategori" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "tags, der hjælper med at beskrive eller gruppere denne kategori" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Prioritet" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Navnet på dette mærke" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Varemærke" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Upload et logo, der repræsenterer dette brand" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Brandets lille image" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Upload et stort logo, der repræsenterer dette brand" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Brandets store image" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Tilføj en detaljeret beskrivelse af brandet" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Varemærkebeskrivelse" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Valgfrie kategorier, som dette brand er forbundet med" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Kategorier" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Kategori, som dette produkt tilhører" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Tilknyt eventuelt dette produkt til et brand" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Tags, der hjælper med at beskrive eller gruppere dette produkt" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Angiver, om dette produkt leveres digitalt" - -#: core/models.py:549 -msgid "is product digital" -msgstr "Er produktet digitalt?" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Giv produktet et klart identificerende navn" - -#: core/models.py:556 -msgid "product name" -msgstr "Produktets navn" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Tilføj en detaljeret beskrivelse af produktet" - -#: core/models.py:562 -msgid "product description" -msgstr "Produktbeskrivelse" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Reservedelsnummer for dette produkt" - -#: core/models.py:570 -msgid "part number" -msgstr "Varenummer" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Kategori for denne attribut" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Gruppe af denne attribut" - -#: core/models.py:690 -msgid "string" -msgstr "Streng" - -#: core/models.py:691 -msgid "integer" -msgstr "Heltal" - -#: core/models.py:692 -msgid "float" -msgstr "Flyder" - -#: core/models.py:693 -msgid "boolean" -msgstr "Boolsk" - -#: core/models.py:694 -msgid "array" -msgstr "Array" - -#: core/models.py:695 -msgid "object" -msgstr "Objekt" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Type af attributtens værdi" - -#: core/models.py:698 -msgid "value type" -msgstr "Værditype" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Navn på denne attribut" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Attributtens navn" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Attribut" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Attribut for denne værdi" - -#: core/models.py:754 -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:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Tilknyttet produkt" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "Den specifikke værdi for denne attribut" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" - -#: core/models.py:795 -msgid "image alt text" -msgstr "Billedets alt-tekst" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Upload billedfilen til dette produkt" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Produktbillede" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Bestemmer den rækkefølge, billederne vises i" - -#: core/models.py:806 -msgid "display priority" -msgstr "Skærm-prioritet" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "Det produkt, som dette billede repræsenterer" - -#: core/models.py:825 -msgid "product images" -msgstr "Produktbilleder" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Procentvis rabat for de valgte produkter" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Rabatprocent" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Giv et unikt navn til denne kampagne" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Navn på kampagne" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Beskrivelse af kampagnen" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" - -#: core/models.py:885 -msgid "included products" -msgstr "Inkluderede produkter" - -#: core/models.py:889 -msgid "promotion" -msgstr "Forfremmelse" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "Den leverandør, der leverer dette produkt, lagerfører" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Tilknyttet leverandør" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Endelig pris til kunden efter tillæg" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Salgspris" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "Det produkt, der er knyttet til denne lagerpost" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Tilknyttet produkt" + +#: core/models.py:533 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:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Leverandørens købspris" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Tilgængelig mængde af produktet på lager" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Antal på lager" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "Leverandørtildelt SKU til identifikation af produktet" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "Leverandørens SKU" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Digital fil knyttet til dette lager, hvis relevant" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Digital fil" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Lagerposteringer" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Kategori, som dette produkt tilhører" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Tilknyt eventuelt dette produkt til et brand" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Tags, der hjælper med at beskrive eller gruppere dette produkt" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Angiver, om dette produkt leveres digitalt" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Er produktet digitalt?" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Giv produktet et klart identificerende navn" + +#: core/models.py:632 +msgid "product name" +msgstr "Produktets navn" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Tilføj en detaljeret beskrivelse af produktet" + +#: core/models.py:638 +msgid "product description" +msgstr "Produktbeskrivelse" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Reservedelsnummer for dette produkt" + +#: core/models.py:646 +msgid "part number" +msgstr "Varenummer" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Kategori for denne attribut" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Gruppe af denne attribut" + +#: core/models.py:766 +msgid "string" +msgstr "Streng" + +#: core/models.py:767 +msgid "integer" +msgstr "Heltal" + +#: core/models.py:768 +msgid "float" +msgstr "Flyder" + +#: core/models.py:769 +msgid "boolean" +msgstr "Boolsk" + +#: core/models.py:770 +msgid "array" +msgstr "Array" + +#: core/models.py:771 +msgid "object" +msgstr "Objekt" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Type af attributtens værdi" + +#: core/models.py:774 +msgid "value type" +msgstr "Værditype" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Navn på denne attribut" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Attributtens navn" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attribut" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Attribut for denne værdi" + +#: core/models.py:830 +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:836 +msgid "the specific value for this attribute" +msgstr "Den specifikke værdi for denne attribut" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" + +#: core/models.py:871 +msgid "image alt text" +msgstr "Billedets alt-tekst" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Upload billedfilen til dette produkt" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Produktbillede" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Bestemmer den rækkefølge, billederne vises i" + +#: core/models.py:882 +msgid "display priority" +msgstr "Skærm-prioritet" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "Det produkt, som dette billede repræsenterer" + +#: core/models.py:901 +msgid "product images" +msgstr "Produktbilleder" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Procentvis rabat for de valgte produkter" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Rabatprocent" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Giv et unikt navn til denne kampagne" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Navn på kampagne" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Beskrivelse af kampagnen" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" + +#: core/models.py:961 +msgid "included products" +msgstr "Inkluderede produkter" + +#: core/models.py:965 +msgid "promotion" +msgstr "Forfremmelse" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Produkter, som brugeren har markeret som ønskede" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Bruger, der ejer denne ønskeliste" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Ønskelistens ejer" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Ønskeliste" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} findes ikke: {product_uuid}." -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Dokumentarfilm" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Uafklaret" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Adresselinje til kunden" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Adresselinje" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Gade" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Distrikt" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "By" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Region" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Postnummer" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Land" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokaliseringspunkt (længdegrad, breddegrad)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Fuldt JSON-svar fra geokoderen for denne adresse" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Gemt JSON-svar fra geokodningstjenesten" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Adresse" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adresser" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Identifikator for kampagnekode" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Fast rabatbeløb" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentvis rabat, hvis det faste beløb ikke bruges" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Procentvis rabat" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Tidsstempel, når promokoden udløber" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Slut gyldighedstid" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Tidsstempel, hvorfra denne promokode er gyldig" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Start gyldighedstid" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Tidsstempel for brug" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Bruger tildelt denne promokode, hvis relevant" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Tildelt bruger" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Kampagnekode" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Kampagnekoder" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1828,136 +1825,147 @@ msgstr "" "Der skal kun defineres én type rabat (beløb eller procent), men ikke begge " "eller ingen af dem." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Promokoden er allerede blevet brugt" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ugyldig rabattype for promokode {self.uuid}." -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "Den faktureringsadresse, der bruges til denne ordre" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Valgfri kampagnekode anvendt på denne ordre" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Anvendt kampagnekode" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "Den leveringsadresse, der er brugt til denne ordre" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Leveringsadresse" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Ordrens aktuelle status i dens livscyklus" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Bestillingsstatus" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 msgid "json structure of notifications to display to users" msgstr "" -"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges " -"tabelvisningen" +"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges" +" tabelvisningen" -#: core/models.py:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "JSON-repræsentation af ordreattributter for denne ordre" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "Den bruger, der har afgivet ordren" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Bruger" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Tidsstemplet for, hvornår ordren blev afsluttet" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Køb tid" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "En menneskeligt læsbar identifikator for ordren" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "menneskeligt læsbart ID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Bestil" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Du kan ikke tilføje inaktive produkter til en ordre" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} findes ikke med forespørgsel <{query}>." -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Promokode findes ikke" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Adressen findes ikke" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Ugyldig kraftværdi" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Du kan ikke købe en tom ordre!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "En bruger uden saldo kan ikke købe med saldo!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Utilstrækkelige midler til at gennemføre ordren" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1965,117 +1973,124 @@ msgstr "" "du kan ikke købe uden registrering, angiv venligst følgende oplysninger: " "kundens navn, kundens e-mail, kundens telefonnummer" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ugyldig betalingsmetode: {payment_method} fra {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Købspris på bestillingstidspunktet" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "Interne kommentarer til administratorer om dette bestilte produkt" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Interne kommentarer" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Notifikationer til brugere" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "JSON-repræsentation af dette elements attributter" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Bestilte produktattributter" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Forældreordre" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Mængde af dette specifikke produkt i ordren" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Produktmængde" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Aktuel status for dette produkt i bestillingen" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Status for produktlinje" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Orderproduct skal have en tilknyttet ordre!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "forkert handling angivet for feedback: {action}." -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Download" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Downloads" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Brugernes kommentarer om deres oplevelse med produktet" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Kommentarer til feedback" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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" +"Henviser til det specifikke produkt i en ordre, som denne feedback handler " +"om" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Relateret ordreprodukt" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Brugertildelt vurdering af produktet" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Produktvurdering" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Feedback" @@ -2092,7 +2107,7 @@ msgstr "Fejl under oprettelse af promokode: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2101,7 +2116,7 @@ msgid "order confirmation" msgstr "Ordrebekræftelse" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2118,22 +2133,21 @@ msgstr "Hej %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Tak for din ordre #%(order.pk)s! Vi er glade for at kunne informere dig om, " "at vi har taget din ordre i brug. Nedenfor er detaljerne om din ordre:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "I alt" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2156,20 +2170,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Med venlig hilsen,
%(config.PROJECT_NAME)s team" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Alle rettigheder forbeholdes" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Order Delivered" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hej %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2178,7 +2192,7 @@ msgstr "" "Vi har behandlet din ordre №%(order_uuid)s! Nedenfor er detaljerne om din " "ordre:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2186,12 +2200,12 @@ msgstr "" "yderligere\n" " oplysninger" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Værdi" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2200,7 +2214,7 @@ msgstr "" "Hvis du har spørgsmål, er du velkommen til at kontakte vores support på " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Med venlig hilsen,
%(project_name)s team" @@ -2212,8 +2226,7 @@ msgstr "Nøgle" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Tak for din bestilling! Vi er glade for at kunne bekræfte dit køb. Nedenfor " @@ -2252,27 +2265,17 @@ msgstr "Både data og timeout er påkrævet" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Ugyldig timeout-værdi, den skal være mellem 0 og 216000 sekunder" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} skal være model" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} skal være et listeobjekt" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Kontakt os indledt" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Ordrebekræftelse" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Ordre leveret" @@ -2289,21 +2292,22 @@ msgstr "Parameteren NOMINATIM_URL skal være konfigureret!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} pixels." +"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} " +"pixels." #: core/validators.py:22 msgid "invalid phone number format" msgstr "Ugyldigt telefonnummerformat" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Du kan kun downloade det digitale aktiv én gang" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "Favicon ikke fundet" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 394ab449..ccfb5bc1 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 cfaadc1b..0c0aca44 100644 --- a/core/locale/de_DE/LC_MESSAGES/django.po +++ b/core/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Eindeutige ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "Eindeutige ID wird zur sicheren Identifizierung jedes Datenbankobjekts " "verwendet" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Ist aktiv" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Wenn auf false gesetzt, kann dieses Objekt von Benutzern ohne die " "erforderliche Berechtigung nicht gesehen werden." -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Erstellt" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Wann das Objekt zum ersten Mal in der Datenbank erschienen ist" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Geändert" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Wann das Objekt zuletzt bearbeitet wurde" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Übersetzungen" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Allgemein" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Beziehungen" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadaten" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Zeitstempel" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s aktivieren" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s erfolgreich aktiviert!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Ausgewählte Artikel wurden aktiviert!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s deaktivieren" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s wurde erfolgreich deaktiviert." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Ausgewählte Artikel wurden deaktiviert!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Attribut Wert" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Attribut Werte" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Bild" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Bilder" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Lagerbestand" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Bestände" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Produkt bestellen" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Produkte bestellen" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Kinder" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Konfigurieren Sie" @@ -188,10 +187,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu " -"lesen.\n" -"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den " -"Cache zu schreiben." +"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu lesen.\n" +"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den Cache zu schreiben." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -248,7 +245,8 @@ msgstr "" "Editierbarkeit" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -278,8 +276,8 @@ msgstr "" #: core/docs/drf/viewsets.py:90 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" +" Daten zu speichern" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -304,7 +302,8 @@ msgstr "" "Editierbarkeit" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -333,8 +332,8 @@ msgstr "" #: core/docs/drf/viewsets.py:144 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: core/docs/drf/viewsets.py:151 msgid "list all orders (simple view)" @@ -347,12 +346,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Groß- und Kleinschreibung unempfindliche Teilstringsuche über " -"human_readable_id, order_products.product.name und order_products.product." -"partnumber" +"human_readable_id, order_products.product.name und " +"order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -388,9 +387,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sortierung nach einem von: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Präfix mit '-' für absteigend " @@ -420,8 +419,8 @@ msgstr "" #: core/docs/drf/viewsets.py:227 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: core/docs/drf/viewsets.py:231 msgid "purchase an order" @@ -444,7 +443,8 @@ msgstr "eine Bestellung kaufen, ohne ein Konto anzulegen" #: core/docs/drf/viewsets.py:246 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer ab." +"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer " +"ab." #: core/docs/drf/viewsets.py:254 msgid "add product to order" @@ -461,8 +461,8 @@ msgstr "" #: core/docs/drf/viewsets.py:260 msgid "add a list of products to order, quantities will not count" msgstr "" -"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht " -"gezählt" +"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht" +" gezählt" #: core/docs/drf/viewsets.py:261 msgid "" @@ -531,8 +531,8 @@ msgstr "" #: core/docs/drf/viewsets.py:303 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" +" Daten zu speichern" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -579,29 +579,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtern Sie nach einem oder mehreren Attributnamen/Wertpaaren. \n" "- **Syntax**: `attr_name=Methode-Wert[;attr2=Methode2-Wert2]...`\n" -"- **Methoden** (Standardwert ist \"icontains\", wenn nicht angegeben): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Wert-Typisierung**: JSON wird zuerst versucht (damit man Listen/Dicts " -"übergeben kann), `true`/`false` für Booleans, Integers, Floats; ansonsten " -"als String behandelt. \n" -"- Base64**: Präfix \"b64-\" für URL-sichere Base64-Kodierung des " -"Rohwertes. \n" +"- **Methoden** (Standardwert ist \"icontains\", wenn nicht angegeben): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Wert-Typisierung**: JSON wird zuerst versucht (damit man Listen/Dicts übergeben kann), `true`/`false` für Booleans, Integers, Floats; ansonsten als String behandelt. \n" +"- Base64**: Präfix \"b64-\" für URL-sichere Base64-Kodierung des Rohwertes. \n" "Beispiele: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -629,7 +618,8 @@ msgstr "(genau) Kategorie UUID" #: core/docs/drf/viewsets.py:378 msgid "(list) Tag names, case-insensitive" -msgstr "(Liste) Tag-Namen, Groß- und Kleinschreibung wird nicht berücksichtigt" +msgstr "" +"(Liste) Tag-Namen, Groß- und Kleinschreibung wird nicht berücksichtigt" #: core/docs/drf/viewsets.py:384 msgid "(gte) Minimum stock price" @@ -657,12 +647,10 @@ msgstr "(genau) Digital vs. physisch" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. " -"Präfix mit \"-\" für absteigend. \n" +"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. Präfix mit \"-\" für absteigend. \n" "**Erlaubt:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -682,8 +670,8 @@ msgstr "Ein Produkt erstellen" #: core/docs/drf/viewsets.py:463 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" -"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer " -"Felder" +"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer" +" Felder" #: core/docs/drf/viewsets.py:478 msgid "" @@ -731,10 +719,10 @@ msgstr "Autovervollständigung der Adresseingabe" #: core/docs/drf/viewsets.py:576 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " -"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans " -"-a core -a geo -a payments -a vibes_auth -a blog" +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans" +" -a core -a geo -a payments -a vibes_auth -a blog" #: core/docs/drf/viewsets.py:582 msgid "limit the results amount, 1 < limit < 10, default: 5" @@ -764,8 +752,8 @@ msgstr "" #: core/docs/drf/viewsets.py:615 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: core/docs/drf/viewsets.py:622 msgid "list all order–product relations (simple view)" @@ -844,8 +832,8 @@ msgstr "Attribute" msgid "Quantity" msgstr "Menge" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Schnecke" @@ -860,8 +848,8 @@ msgstr "Unterkategorien einbeziehen" #: core/filters.py:147 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories " -"zu verwenden" +"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories" +" zu verwenden" #: core/filters.py:280 msgid "Search (ID, product name or part number)" @@ -928,7 +916,7 @@ msgstr "Zwischengespeicherte Daten" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-Daten aus der angeforderten URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Nur URLs, die mit http(s):// beginnen, sind zulässig" @@ -961,7 +949,7 @@ msgstr "" "sich gegenseitig aus!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Von der Methode order.buy() kam der falsche Typ: {type(instance)!s}" @@ -1005,8 +993,8 @@ msgstr "Eine Bestellung kaufen" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"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" @@ -1014,7 +1002,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "Vom Benutzer angegebene Originaladresse" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} existiert nicht: {uuid}" @@ -1027,99 +1015,101 @@ msgstr "Der Grenzwert muss zwischen 1 und 10 liegen." msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funktioniert wie ein Zauber" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Attribute" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Gruppierte Attribute" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Gruppen von Attributen" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Kategorien" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Marken" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Kategorien" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Markup Percentage" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Welche Attribute und Werte können für die Filterung dieser Kategorie " "verwendet werden." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." -msgstr "" -"Mindest- und Höchstpreise für Produkte in dieser Kategorie, sofern verfügbar." - #: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "" +"Mindest- und Höchstpreise für Produkte in dieser Kategorie, sofern " +"verfügbar." + +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tags für diese Kategorie" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Produkte in dieser Kategorie" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Anbieter" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Breitengrad (Y-Koordinate)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Längengrad (X-Koordinate)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Wie" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Stellt das Feedback eines Benutzers dar." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Benachrichtigungen" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "Download-Url für dieses Bestellprodukt, falls zutreffend" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Eine Liste der bestellten Produkte in dieser Reihenfolge" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Rechnungsadresse" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1127,742 +1117,750 @@ msgstr "" "Lieferadresse für diese Bestellung, leer lassen, wenn sie mit der " "Rechnungsadresse übereinstimmt oder nicht zutrifft" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Gesamtpreis für diese Bestellung" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Gesamtmenge der bestellten Produkte" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Sind alle Produkte in der Bestellung digital" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Vorgänge für diesen Auftrag" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Bestellungen" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Bild URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Bilder des Produkts" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Rückmeldungen" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Marke" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Attribut-Gruppen" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Preis" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Menge" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Anzahl der Rückmeldungen" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Produkte" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Zum Verkauf stehende Produkte" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Werbeaktionen" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Anbieter" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Auf dem Wunschzettel stehende Produkte" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Wunschzettel" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Markierte Produkte" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Produkt-Tags" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Markierte Kategorien" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Kategorien'-Tags" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Name des Projekts" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Unternehmen E-Mail" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Name des Unternehmens" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Adresse des Unternehmens" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Telefonnummer des Unternehmens" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "E-Mail-Host-Benutzer" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Höchstbetrag für die Zahlung" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Mindestbetrag für die Zahlung" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Analytische Daten" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Konfiguration" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Sprachcode" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Name der Sprache" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Sprachflagge, falls vorhanden :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Eine Liste der unterstützten Sprachen abrufen" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Suchergebnisse für Produkte" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Suchergebnisse für Produkte" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Elternteil dieser Gruppe" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Übergeordnete Attributgruppe" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Name der Attributgruppe" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Attribut-Gruppe" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Informationen zur Authentifizierung" -#: core/models.py:153 +#: core/models.py:155 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:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Prozentualer Aufschlag des Lieferanten" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Name dieses Anbieters" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Name des Anbieters" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Interner Tag-Identifikator für das Produkt-Tag" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Tag name" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Benutzerfreundlicher Name für den Produktanhänger" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Tag-Anzeigename" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Produkt-Tag" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "Kategorie-Tag" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "Kategorie-Tags" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Laden Sie ein Bild hoch, das diese Kategorie repräsentiert" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Kategorie Bild" -#: core/models.py:337 +#: core/models.py:338 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:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "" "Übergeordneter dieser Kategorie, um eine hierarchische Struktur zu bilden" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Übergeordnete Kategorie" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Name der Kategorie" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Geben Sie einen Namen für diese Kategorie an" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Fügen Sie eine detaillierte Beschreibung für diese Kategorie hinzu" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Beschreibung der Kategorie" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "Tags, die helfen, diese Kategorie zu beschreiben oder zu gruppieren" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Priorität" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Name dieser Marke" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Markenname" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Laden Sie ein Logo hoch, das diese Marke repräsentiert" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Marke kleines Bild" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Laden Sie ein großes Logo hoch, das diese Marke repräsentiert" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Großes Image der Marke" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Fügen Sie eine detaillierte Beschreibung der Marke hinzu" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Beschreibung der Marke" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "" "Optionale Kategorien, mit denen diese Marke in Verbindung gebracht wird" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Kategorien" -#: core/models.py:528 +#: core/models.py:514 +msgid "the vendor supplying this product stock" +msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände" + +#: core/models.py:515 +msgid "associated vendor" +msgstr "Zugehöriger Anbieter" + +#: core/models.py:519 +msgid "final price to the customer after markups" +msgstr "Endpreis für den Kunden nach Aufschlägen" + +#: core/models.py:520 +msgid "selling price" +msgstr "Verkaufspreis" + +#: core/models.py:525 +msgid "the product associated with this stock entry" +msgstr "Das mit diesem Bestandseintrag verbundene Produkt" + +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Zugehöriges Produkt" + +#: core/models.py:533 +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:534 +msgid "vendor purchase price" +msgstr "Einkaufspreis des Verkäufers" + +#: core/models.py:538 +msgid "available quantity of the product in stock" +msgstr "Verfügbare Menge des Produkts auf Lager" + +#: core/models.py:539 +msgid "quantity in stock" +msgstr "Vorrätige Menge" + +#: core/models.py:543 +msgid "vendor-assigned SKU for identifying the product" +msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts" + +#: core/models.py:544 +msgid "vendor sku" +msgstr "SKU des Verkäufers" + +#: core/models.py:550 +msgid "digital file associated with this stock if applicable" +msgstr "" +"Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" + +#: core/models.py:551 +msgid "digital file" +msgstr "Digitale Datei" + +#: core/models.py:560 +msgid "stock entries" +msgstr "Bestandseinträge" + +#: core/models.py:604 msgid "category this product belongs to" msgstr "Kategorie, zu der dieses Produkt gehört" -#: core/models.py:537 +#: core/models.py:613 msgid "optionally associate this product with a brand" msgstr "Optional können Sie dieses Produkt mit einer Marke verknüpfen" -#: core/models.py:543 +#: core/models.py:619 msgid "tags that help describe or group this product" msgstr "Tags, die helfen, dieses Produkt zu beschreiben oder zu gruppieren" -#: core/models.py:548 +#: core/models.py:624 msgid "indicates whether this product is digitally delivered" msgstr "Gibt an, ob dieses Produkt digital geliefert wird" -#: core/models.py:549 +#: core/models.py:625 msgid "is product digital" msgstr "Ist das Produkt digital" -#: core/models.py:555 +#: core/models.py:631 msgid "provide a clear identifying name for the product" -msgstr "Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." +msgstr "" +"Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." -#: core/models.py:556 +#: core/models.py:632 msgid "product name" msgstr "Name des Produkts" -#: core/models.py:561 core/models.py:878 +#: core/models.py:637 core/models.py:954 msgid "add a detailed description of the product" msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu" -#: core/models.py:562 +#: core/models.py:638 msgid "product description" msgstr "Beschreibung des Produkts" -#: core/models.py:569 +#: core/models.py:645 msgid "part number for this product" msgstr "Teilenummer für dieses Produkt" -#: core/models.py:570 +#: core/models.py:646 msgid "part number" msgstr "Teilnummer" -#: core/models.py:676 +#: core/models.py:752 msgid "category of this attribute" msgstr "Kategorie dieses Attributs" -#: core/models.py:684 +#: core/models.py:760 msgid "group of this attribute" msgstr "Gruppe dieses Attributs" -#: core/models.py:690 +#: core/models.py:766 msgid "string" msgstr "Zeichenfolge" -#: core/models.py:691 +#: core/models.py:767 msgid "integer" msgstr "Integer" -#: core/models.py:692 +#: core/models.py:768 msgid "float" msgstr "Schwimmer" -#: core/models.py:693 +#: core/models.py:769 msgid "boolean" msgstr "Boolesche" -#: core/models.py:694 +#: core/models.py:770 msgid "array" msgstr "Array" -#: core/models.py:695 +#: core/models.py:771 msgid "object" msgstr "Objekt" -#: core/models.py:697 +#: core/models.py:773 msgid "type of the attribute's value" msgstr "Typ des Attributwerts" -#: core/models.py:698 +#: core/models.py:774 msgid "value type" msgstr "Werttyp" -#: core/models.py:703 +#: core/models.py:779 msgid "name of this attribute" msgstr "Name dieses Attributs" -#: core/models.py:704 +#: core/models.py:780 msgid "attribute's name" msgstr "Name des Attributs" -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 msgid "attribute" msgstr "Attribut" -#: core/models.py:746 +#: core/models.py:822 msgid "attribute of this value" msgstr "Attribut dieses Wertes" -#: core/models.py:754 +#: core/models.py:830 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:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Zugehöriges Produkt" - -#: core/models.py:760 +#: core/models.py:836 msgid "the specific value for this attribute" msgstr "Der spezifische Wert für dieses Attribut" -#: core/models.py:794 +#: core/models.py:870 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:795 +#: core/models.py:871 msgid "image alt text" msgstr "Bild-Alt-Text" -#: core/models.py:798 +#: core/models.py:874 msgid "upload the image file for this product" msgstr "Laden Sie die Bilddatei für dieses Produkt hoch" -#: core/models.py:799 core/models.py:824 +#: core/models.py:875 core/models.py:900 msgid "product image" msgstr "Produktbild" -#: core/models.py:805 +#: core/models.py:881 msgid "determines the order in which images are displayed" msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden" -#: core/models.py:806 +#: core/models.py:882 msgid "display priority" msgstr "Priorität anzeigen" -#: core/models.py:811 +#: core/models.py:887 msgid "the product that this image represents" msgstr "Das Produkt, das dieses Bild darstellt" -#: core/models.py:825 +#: core/models.py:901 msgid "product images" msgstr "Produktbilder" -#: core/models.py:866 +#: core/models.py:942 msgid "percentage discount for the selected products" msgstr "Prozentualer Rabatt für die ausgewählten Produkte" -#: core/models.py:867 +#: core/models.py:943 msgid "discount percentage" msgstr "Prozentsatz der Ermäßigung" -#: core/models.py:872 +#: core/models.py:948 msgid "provide a unique name for this promotion" msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an" -#: core/models.py:873 +#: core/models.py:949 msgid "promotion name" msgstr "Name der Aktion" -#: core/models.py:879 +#: core/models.py:955 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:884 +#: core/models.py:960 msgid "select which products are included in this promotion" msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind" -#: core/models.py:885 +#: core/models.py:961 msgid "included products" msgstr "Enthaltene Produkte" -#: core/models.py:889 +#: core/models.py:965 msgid "promotion" msgstr "Förderung" -#: core/models.py:924 -msgid "the vendor supplying this product stock" -msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände" - -#: core/models.py:925 -msgid "associated vendor" -msgstr "Zugehöriger Anbieter" - -#: core/models.py:929 -msgid "final price to the customer after markups" -msgstr "Endpreis für den Kunden nach Aufschlägen" - -#: core/models.py:930 -msgid "selling price" -msgstr "Verkaufspreis" - -#: core/models.py:935 -msgid "the product associated with this stock entry" -msgstr "Das mit diesem Bestandseintrag verbundene Produkt" - -#: core/models.py:943 -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:944 -msgid "vendor purchase price" -msgstr "Einkaufspreis des Verkäufers" - -#: core/models.py:948 -msgid "available quantity of the product in stock" -msgstr "Verfügbare Menge des Produkts auf Lager" - -#: core/models.py:949 -msgid "quantity in stock" -msgstr "Vorrätige Menge" - -#: core/models.py:953 -msgid "vendor-assigned SKU for identifying the product" -msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts" - -#: core/models.py:954 -msgid "vendor sku" -msgstr "SKU des Verkäufers" - -#: core/models.py:960 -msgid "digital file associated with this stock if applicable" -msgstr "Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" - -#: core/models.py:961 -msgid "digital file" -msgstr "Digitale Datei" - -#: core/models.py:970 -msgid "stock entries" -msgstr "Bestandseinträge" - -#: core/models.py:989 +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Produkte, die der Benutzer als gewünscht markiert hat" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Benutzer, dem diese Wunschliste gehört" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Besitzer der Wishlist" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Wunschzettel" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} existiert nicht: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Dokumentarfilme" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Ungelöst" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Adresszeile für den Kunden" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Adresszeile" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Straße" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Bezirk" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Stadt" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Region" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Postleitzahl" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Land" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Längengrad, Breitengrad)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Vollständige JSON-Antwort vom Geocoder für diese Adresse" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Gespeicherte JSON-Antwort vom Geokodierungsdienst" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Adresse" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adressen" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Kennung des Promo-Codes" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "" -"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet wird" +"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " +"wird" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Fester Rabattbetrag" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Prozentualer Rabatt" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Zeitstempel, wann der Promocode abläuft" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Ende der Gültigkeitsdauer" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Zeitstempel, ab dem dieser Promocode gültig ist" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Beginn der Gültigkeitsdauer" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Zeitstempel der Verwendung" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Zugewiesener Benutzer" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Promo-Code" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Promo-Codes" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1870,142 +1868,152 @@ msgstr "" "Es sollte nur eine Art von Rabatt definiert werden (Betrag oder " "Prozentsatz), aber nicht beides oder keines von beiden." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Promocode wurde bereits verwendet" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ungültiger Rabatttyp für Promocode {self.uuid}" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "Die für diese Bestellung verwendete Rechnungsadresse" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Optionaler Promo-Code für diese Bestellung" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Angewandter Promo-Code" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "Die für diese Bestellung verwendete Lieferadresse" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Lieferadresse" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Aktueller Status des Auftrags in seinem Lebenszyklus" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Status der Bestellung" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "JSON-Darstellung der Auftragsattribute für diesen Auftrag" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "Der Benutzer, der die Bestellung aufgegeben hat" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Benutzer" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Der Zeitstempel, zu dem der Auftrag abgeschlossen wurde" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Zeit kaufen" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Ein von Menschen lesbarer Identifikator für den Auftrag" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "menschenlesbare ID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Bestellung" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} existiert nicht mit Abfrage <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Promocode existiert nicht" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Adresse ist nicht vorhanden" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Ungültiger Force-Wert" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Sie können keine leere Bestellung kaufen!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" +"Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " +"Bearbeitung ist." + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Ein Benutzer ohne Guthaben kann nicht mit Guthaben kaufen!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Unzureichende Mittel für die Ausführung des Auftrags" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2013,123 +2021,128 @@ msgstr "" "Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden " "Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ungültige Zahlungsmethode: {payment_method} von {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Interne Kommentare" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Benutzerbenachrichtigungen" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "JSON-Darstellung der Attribute dieses Artikels" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Bestellte Produktattribute" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Übergeordneter Auftrag" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Menge dieses spezifischen Produkts in der Bestellung" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Produktmenge" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Aktueller Status dieses Produkts im Auftrag" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Status der Produktlinie" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Das Bestellprodukt muss eine zugehörige Bestellung haben!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "falsche Aktion für die Rückmeldung angegeben: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Bearbeitung ist." -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Herunterladen" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Herunterladen" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Kommentare der Nutzer über ihre Erfahrungen mit dem Produkt" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Kommentare zum Feedback" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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" +"Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese" +" Rückmeldung bezieht" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Produkt zur Bestellung" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Vom Benutzer zugewiesene Bewertung für das Produkt" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Produktbewertung" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Rückmeldung" @@ -2146,7 +2159,7 @@ msgstr "Fehler bei der Erstellung des Promocodes: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2155,7 +2168,7 @@ msgid "order confirmation" msgstr "Bestätigung der Bestellung" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2172,8 +2185,7 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Vielen Dank für Ihre Bestellung #%(order.pk)s! Wir freuen uns, Ihnen " @@ -2181,14 +2193,14 @@ msgstr "" "Nachfolgend finden Sie die Details Ihrer Bestellung:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Insgesamt" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2211,20 +2223,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Mit freundlichen Grüßen,
das %(config.PROJECT_NAME)s Team" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Alle Rechte vorbehalten" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Bestellung Geliefert" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hallo %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2233,7 +2245,7 @@ msgstr "" "Wir haben Ihre Bestellung erfolgreich bearbeitet №%(order_uuid)s! " "Nachstehend finden Sie die Details Ihrer Bestellung:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2241,12 +2253,12 @@ msgstr "" "zusätzliche\n" " Informationen" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Wert" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2255,7 +2267,7 @@ msgstr "" "Wenn Sie Fragen haben, wenden Sie sich bitte an unseren Support unter " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Mit freundlichen Grüßen,
das %(project_name)s Team" @@ -2267,8 +2279,7 @@ msgstr "Schlüssel" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Vielen Dank für Ihre Bestellung! Wir freuen uns, Ihren Kauf zu bestätigen. " @@ -2305,29 +2316,20 @@ msgstr "Sowohl Daten als auch Timeout sind erforderlich" #: core/utils/caching.py:43 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" - -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} muss Modell sein" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} muss ein Listenobjekt sein" +msgstr "" +"Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Kontakt initiiert" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Auftragsbestätigung" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Auftrag ausgeliefert" @@ -2351,15 +2353,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Ungültiges Rufnummernformat" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Sie können das digitale Asset nur einmal herunterladen" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "Favicon nicht gefunden" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 5b92c417..2ca8653c 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 ba53b619..2bced2c4 100644 --- a/core/locale/en_GB/LC_MESSAGES/django.po +++ b/core/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 Egor "fureunoir" Gorbunov # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -17,118 +17,118 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Unique ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "Unique ID is used to surely identify any database object" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Is Active" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"If set to false, this object can't be seen by users without needed permission" +"If set to false, this object can't be seen by users without needed " +"permission" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Created" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "When the object first appeared on the database" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modified" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Translations" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "General" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relations" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadata" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s activated successfully!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Selected items have been activated!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s deactivated successfully." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Selected items have been deactivated!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Image" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Images" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stock" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Stocks" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Order Product" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Order Products" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Children" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Config" @@ -245,7 +245,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" @@ -294,7 +295,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" @@ -332,11 +334,11 @@ msgstr "For non-staff users, only their own orders are returned." #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -368,13 +370,13 @@ msgstr "Filter by order status (case-insensitive substring match)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -540,30 +542,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" #: core/docs/drf/viewsets.py:349 @@ -616,12 +608,10 @@ msgstr "(exact) Digital vs. physical" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -792,8 +782,8 @@ msgstr "Attributes" msgid "Quantity" msgstr "Quantity" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Slug" @@ -874,7 +864,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -905,7 +895,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Please provide either order_uuid or order_hr_id - mutually exclusive!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}" @@ -949,17 +939,17 @@ msgstr "Buy an order" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"Please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "Original address string provided by the user" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} does not exist: {uuid}" @@ -972,96 +962,97 @@ msgstr "Limit must be between 1 and 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Attributes" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Grouped attributes" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Groups of attributes" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Brands" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Categories" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Markup Percentage" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "Which attributes and values can be used for filtering this category." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimum and maximum prices for products in this category, if available." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tags for this category" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Products in this category" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Vendors" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Latitude (Y coordinate)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Longitude (X coordinate)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Comment" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Represents feedback from a user." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Notifications" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Billing address" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1069,728 +1060,733 @@ msgstr "" "Shipping address for this order, leave blank if same as billing address or " "if not applicable" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Total price of this order" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Total quantity of products in order" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transactions for this order" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Orders" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Attribute groups" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Price" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Quantity" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Product" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Tagged categories" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Categories' tags" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Analytics data" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Products search results" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Tag name" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Product tag" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "category tag" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "category tags" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Category image" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Parent category" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Category name" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Category description" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Priority" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Brand name" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Brand description" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Categories" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Category this product belongs to" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Optionally associate this product with a brand" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Tags that help describe or group this product" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Indicates whether this product is digitally delivered" - -#: core/models.py:549 -msgid "is product digital" -msgstr "Is product digital" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Provide a clear identifying name for the product" - -#: core/models.py:556 -msgid "product name" -msgstr "Product name" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Add a detailed description of the product" - -#: core/models.py:562 -msgid "product description" -msgstr "Product description" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Part number for this product" - -#: core/models.py:570 -msgid "part number" -msgstr "Part number" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Category of this attribute" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Group of this attribute" - -#: core/models.py:690 -msgid "string" -msgstr "String" - -#: core/models.py:691 -msgid "integer" -msgstr "Integer" - -#: core/models.py:692 -msgid "float" -msgstr "Float" - -#: core/models.py:693 -msgid "boolean" -msgstr "Boolean" - -#: core/models.py:694 -msgid "array" -msgstr "Array" - -#: core/models.py:695 -msgid "object" -msgstr "Object" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Type of the attribute's value" - -#: core/models.py:698 -msgid "value type" -msgstr "Value type" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Name of this attribute" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Attribute's name" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Attribute" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Attribute of this value" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "The specific product associated with this attribute's value" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Associated product" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "The specific value for this attribute" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "Provide alternative text for the image for accessibility" - -#: core/models.py:795 -msgid "image alt text" -msgstr "Image alt text" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Upload the image file for this product" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Product image" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Determines the order in which images are displayed" - -#: core/models.py:806 -msgid "display priority" -msgstr "Display priority" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "The product that this image represents" - -#: core/models.py:825 -msgid "product images" -msgstr "Product images" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Percentage discount for the selected products" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Discount percentage" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Provide a unique name for this promotion" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Promotion name" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Promotion description" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Select which products are included in this promotion" - -#: core/models.py:885 -msgid "included products" -msgstr "Included products" - -#: core/models.py:889 -msgid "promotion" -msgstr "Promotion" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Selling price" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Associated product" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Digital file" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Category this product belongs to" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Optionally associate this product with a brand" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Tags that help describe or group this product" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Indicates whether this product is digitally delivered" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Is product digital" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Provide a clear identifying name for the product" + +#: core/models.py:632 +msgid "product name" +msgstr "Product name" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Add a detailed description of the product" + +#: core/models.py:638 +msgid "product description" +msgstr "Product description" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Part number for this product" + +#: core/models.py:646 +msgid "part number" +msgstr "Part number" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Category of this attribute" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Group of this attribute" + +#: core/models.py:766 +msgid "string" +msgstr "String" + +#: core/models.py:767 +msgid "integer" +msgstr "Integer" + +#: core/models.py:768 +msgid "float" +msgstr "Float" + +#: core/models.py:769 +msgid "boolean" +msgstr "Boolean" + +#: core/models.py:770 +msgid "array" +msgstr "Array" + +#: core/models.py:771 +msgid "object" +msgstr "Object" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Type of the attribute's value" + +#: core/models.py:774 +msgid "value type" +msgstr "Value type" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Name of this attribute" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Attribute's name" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attribute" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Attribute of this value" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "The specific product associated with this attribute's value" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "The specific value for this attribute" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "Provide alternative text for the image for accessibility" + +#: core/models.py:871 +msgid "image alt text" +msgstr "Image alt text" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Upload the image file for this product" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Product image" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Determines the order in which images are displayed" + +#: core/models.py:882 +msgid "display priority" +msgstr "Display priority" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "The product that this image represents" + +#: core/models.py:901 +msgid "product images" +msgstr "Product images" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Percentage discount for the selected products" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Discount percentage" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Provide a unique name for this promotion" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Promotion name" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Promotion description" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Select which products are included in this promotion" + +#: core/models.py:961 +msgid "included products" +msgstr "Included products" + +#: core/models.py:965 +msgid "promotion" +msgstr "Promotion" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documentary" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Address line" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Street" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "District" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "City" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Region" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Postal code" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Country" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Address" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adresses" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "End validity time" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Promo code" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1798,136 +1794,144 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Order status" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "User" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Buy time" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Order" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "You cannot buy an order without a user!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "A user without a balance cannot buy with balance!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1935,116 +1939,121 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Parent order" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Product line status" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Orderproduct must have an associated order!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "wrong action specified for feedback: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Download" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Downloads" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Related order product" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Product rating" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Feedback" @@ -2060,7 +2069,7 @@ msgstr "Error during promocode creation: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2069,7 +2078,7 @@ msgid "order confirmation" msgstr "Order Confirmation" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2086,22 +2095,21 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Thank you for your order #%(order.pk)s! We are pleased to inform you that we " -"have taken your order into work. Below are the details of your order:" +"Thank you for your order #%(order.pk)s! We are pleased to inform you that we" +" have taken your order into work. Below are the details of your order:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Total" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2124,20 +2132,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Best regards,
the %(config.PROJECT_NAME)s team" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "All rights reserved" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Order Delivered" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2146,7 +2154,7 @@ msgstr "" "We have successfully processed your order №%(order_uuid)s! Below are the " "details of your order:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2154,12 +2162,12 @@ msgstr "" "additional\n" " information" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Value" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2168,7 +2176,7 @@ msgstr "" "If you have any questions, feel free to contact our support at " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Best regards,
the %(project_name)s team" @@ -2180,12 +2188,11 @@ msgstr "Key" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Thank you for your order! We are pleased to confirm your purchase. Below are " -"the details of your order:" +"Thank you for your order! We are pleased to confirm your purchase. Below are" +" the details of your order:" #: core/templates/shipped_order_created_email.html:123 #: core/templates/shipped_order_delivered_email.html:123 @@ -2220,27 +2227,17 @@ msgstr "Both data and timeout are required" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Invalid timeout value, it must be between 0 and 216000 seconds" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} must be model" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} must be list object" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Contact Us initiated" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Order Confirmation" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Order Delivered" @@ -2256,25 +2253,42 @@ 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" -msgstr "Image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "" +"Image dimensions should not exceed w{max_width} x h{max_height} pixels" #: core/validators.py:22 msgid "invalid phone number format" msgstr "Invalid phone number format" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon not found" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, python-brace-format msgid "Geocoding error: {e}" msgstr "Geocoding error: {e}" +#, python-format +#~ msgid "%(verbose_name_plural)s activated successfully!" +#~ msgstr "%(verbose_name_plural)s activated successfully!" + +#, python-format +#~ msgid "%(verbose_name_plural)s deactivated successfully." +#~ msgstr "%(verbose_name_plural)s deactivated successfully." + +#, python-brace-format +#~ msgid "{model} must be model" +#~ msgstr "{model} must be model" + +#, python-brace-format +#~ msgid "{data} must be list object" +#~ msgstr "{data} must be list object" + #~ msgid "I18N" #~ msgstr "Internationalization" diff --git a/core/locale/en_US/LC_MESSAGES/django.mo b/core/locale/en_US/LC_MESSAGES/django.mo index fb9ef2f3..26e1a94b 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 e904e8d9..458929d7 100644 --- a/core/locale/en_US/LC_MESSAGES/django.po +++ b/core/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,118 +13,118 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Unique ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "Unique ID is used to surely identify any database object" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Is Active" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"If set to false, this object can't be seen by users without needed permission" +"If set to false, this object can't be seen by users without needed " +"permission" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Created" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "When the object first appeared on the database" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modified" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Translations" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "General" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relations" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadata" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s activated successfully!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Selected items have been activated!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s deactivated successfully." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Selected items have been deactivated!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Image" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Images" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stock" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Stocks" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Order Product" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Order Products" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Children" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Config" @@ -241,7 +241,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" @@ -290,7 +291,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" @@ -328,11 +330,11 @@ msgstr "For non-staff users, only their own orders are returned." #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -364,13 +366,13 @@ msgstr "Filter by order status (case-insensitive substring match)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -536,26 +538,17 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…`\n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" @@ -611,12 +604,10 @@ msgstr "(exact) Digital vs. physical" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -787,8 +778,8 @@ msgstr "Attributes" msgid "Quantity" msgstr "Quantity" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Slug" @@ -869,7 +860,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -900,7 +891,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Please provide either order_uuid or order_hr_id - mutually exclusive!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Wrong type came from order.buy() method: {type(instance)!s}" @@ -944,17 +935,17 @@ msgstr "Buy an order" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"Please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "Original address string provided by the user" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} does not exist: {uuid}" @@ -967,96 +958,97 @@ msgstr "Limit must be between 1 and 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Attributes" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Grouped attributes" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Groups of attributes" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Brands" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Categories" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Markup Percentage" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "Which attributes and values can be used for filtering this category." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimum and maximum prices for products in this category, if available." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tags for this category" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Products in this category" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Vendors" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Latitude (Y coordinate)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Longitude (X coordinate)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "How to" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Represents feedback from a user." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Notifications" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "Download url for this order product if applicable" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Billing address" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1064,728 +1056,733 @@ msgstr "" "Shipping address for this order, leave blank if same as billing address or " "if not applicable" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Total price of this order" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Total quantity of products in order" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transactions for this order" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Orders" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Attribute groups" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Price" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Quantity" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Products" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Product" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Wishlists" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Tagged categories" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Categories' tags" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Project name" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Company Email" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Company Name" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Company Address" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Company Phone Number" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Email host user" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Maximum amount for payment" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Minimum amount for payment" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Analytics data" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Language code" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Language name" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Language flag, if exists :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Get a list of supported languages" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Products search results" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Products search results" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Tag name" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Product tag" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "category tag" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "category tags" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Category image" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Parent category" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Category name" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Category description" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Priority" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Brand name" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Brand description" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Categories" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Category this product belongs to" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Optionally associate this product with a brand" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Tags that help describe or group this product" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Indicates whether this product is digitally delivered" - -#: core/models.py:549 -msgid "is product digital" -msgstr "Is product digital" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Provide a clear identifying name for the product" - -#: core/models.py:556 -msgid "product name" -msgstr "Product name" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Add a detailed description of the product" - -#: core/models.py:562 -msgid "product description" -msgstr "Product description" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Part number for this product" - -#: core/models.py:570 -msgid "part number" -msgstr "Part number" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Category of this attribute" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Group of this attribute" - -#: core/models.py:690 -msgid "string" -msgstr "String" - -#: core/models.py:691 -msgid "integer" -msgstr "Integer" - -#: core/models.py:692 -msgid "float" -msgstr "Float" - -#: core/models.py:693 -msgid "boolean" -msgstr "Boolean" - -#: core/models.py:694 -msgid "array" -msgstr "Array" - -#: core/models.py:695 -msgid "object" -msgstr "Object" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Type of the attribute's value" - -#: core/models.py:698 -msgid "value type" -msgstr "Value type" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Name of this attribute" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Attribute's name" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Attribute" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Attribute of this value" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "The specific product associated with this attribute's value" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Associated product" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "The specific value for this attribute" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "Provide alternative text for the image for accessibility" - -#: core/models.py:795 -msgid "image alt text" -msgstr "Image alt text" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Upload the image file for this product" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Product image" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Determines the order in which images are displayed" - -#: core/models.py:806 -msgid "display priority" -msgstr "Display priority" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "The product that this image represents" - -#: core/models.py:825 -msgid "product images" -msgstr "Product images" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Percentage discount for the selected products" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Discount percentage" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Provide a unique name for this promotion" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Promotion name" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Promotion description" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Select which products are included in this promotion" - -#: core/models.py:885 -msgid "included products" -msgstr "Included products" - -#: core/models.py:889 -msgid "promotion" -msgstr "Promotion" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Selling price" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Associated product" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Digital file" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Category this product belongs to" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Optionally associate this product with a brand" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Tags that help describe or group this product" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Indicates whether this product is digitally delivered" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Is product digital" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Provide a clear identifying name for the product" + +#: core/models.py:632 +msgid "product name" +msgstr "Product name" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Add a detailed description of the product" + +#: core/models.py:638 +msgid "product description" +msgstr "Product description" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Part number for this product" + +#: core/models.py:646 +msgid "part number" +msgstr "Part number" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Category of this attribute" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Group of this attribute" + +#: core/models.py:766 +msgid "string" +msgstr "String" + +#: core/models.py:767 +msgid "integer" +msgstr "Integer" + +#: core/models.py:768 +msgid "float" +msgstr "Float" + +#: core/models.py:769 +msgid "boolean" +msgstr "Boolean" + +#: core/models.py:770 +msgid "array" +msgstr "Array" + +#: core/models.py:771 +msgid "object" +msgstr "Object" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Type of the attribute's value" + +#: core/models.py:774 +msgid "value type" +msgstr "Value type" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Name of this attribute" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Attribute's name" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attribute" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Attribute of this value" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "The specific product associated with this attribute's value" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "The specific value for this attribute" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "Provide alternative text for the image for accessibility" + +#: core/models.py:871 +msgid "image alt text" +msgstr "Image alt text" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Upload the image file for this product" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Product image" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Determines the order in which images are displayed" + +#: core/models.py:882 +msgid "display priority" +msgstr "Display priority" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "The product that this image represents" + +#: core/models.py:901 +msgid "product images" +msgstr "Product images" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Percentage discount for the selected products" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Discount percentage" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Provide a unique name for this promotion" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Promotion name" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Promotion description" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Select which products are included in this promotion" + +#: core/models.py:961 +msgid "included products" +msgstr "Included products" + +#: core/models.py:965 +msgid "promotion" +msgstr "Promotion" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documentary" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Address line" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Street" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "District" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "City" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Region" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Postal code" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Country" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Address" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adresses" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "End validity time" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Promo code" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1793,136 +1790,144 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Order status" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "User" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Buy time" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Order" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "You cannot buy an order without a user!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "A user without a balance cannot buy with balance!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1930,116 +1935,121 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Parent order" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Product line status" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Orderproduct must have an associated order!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "wrong action specified for feedback: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Download" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Downloads" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Related order product" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Product rating" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Feedback" @@ -2055,7 +2065,7 @@ msgstr "Error during promocode creation: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2064,7 +2074,7 @@ msgid "order confirmation" msgstr "Order Confirmation" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2081,22 +2091,21 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Thank you for your order #%(order.pk)s! We are pleased to inform you that we " -"have taken your order into work. Below are the details of your order:" +"Thank you for your order #%(order.pk)s! We are pleased to inform you that we" +" have taken your order into work. Below are the details of your order:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Total" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2119,20 +2128,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Best regards,
the %(config.PROJECT_NAME)s team" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "All rights reserved" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Order Delivered" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2141,7 +2150,7 @@ msgstr "" "We have successfully processed your order №%(order_uuid)s! Below are the " "details of your order:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2149,12 +2158,12 @@ msgstr "" "additional\n" " information" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Value" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2163,7 +2172,7 @@ msgstr "" "If you have any questions, feel free to contact our support at " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Best regards,
the %(project_name)s team" @@ -2175,12 +2184,11 @@ msgstr "Key" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Thank you for your order! We are pleased to confirm your purchase. Below are " -"the details of your order:" +"Thank you for your order! We are pleased to confirm your purchase. Below are" +" the details of your order:" #: core/templates/shipped_order_created_email.html:123 #: core/templates/shipped_order_delivered_email.html:123 @@ -2215,27 +2223,17 @@ msgstr "Both data and timeout are required" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Invalid timeout value, it must be between 0 and 216000 seconds" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} must be model" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} must be list object" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Contact Us initiated" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Order Confirmation" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Order Delivered" @@ -2251,21 +2249,22 @@ 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" -msgstr "Image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "" +"Image dimensions should not exceed w{max_width} x h{max_height} pixels" #: core/validators.py:22 msgid "invalid phone number format" msgstr "Invalid phone number format" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon not found" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 85c222c7..1d0ab6d3 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 d236fe42..012aa8c7 100644 --- a/core/locale/es_ES/LC_MESSAGES/django.po +++ b/core/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Identificación única" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "El identificador único se utiliza para identificar con seguridad cualquier " "objeto de la base de datos" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Está activo" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Si se establece en false, este objeto no puede ser visto por los usuarios " "sin el permiso necesario" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Creado" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Cuando el objeto apareció por primera vez en la base de datos" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modificado" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Cuándo se editó el objeto por última vez" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Traducciones" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "General" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relaciones" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadatos" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Marcas de tiempo" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activar %(verbose_name_plural)s seleccionados" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "¡%(verbose_name_plural)s activado con éxito!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Los artículos seleccionados se han activado." -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desactivar %(verbose_name_plural)s seleccionados" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s desactivado con éxito." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Los artículos seleccionados se han desactivado." -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Atributo Valor" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Valores de los atributos" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Imagen" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Imágenes" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stock" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Acciones" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Pedir un producto" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Pedir productos" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Niños" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Configurar" @@ -189,8 +188,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar sólo una clave para leer datos permitidos de la caché.\n" -"Aplicar clave, datos y tiempo de espera con autenticación para escribir " -"datos en la caché." +"Aplicar clave, datos y tiempo de espera con autenticación para escribir datos en la caché." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -222,8 +220,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Compra un pedido como empresa, utilizando los `productos` proporcionados con " -"`product_uuid` y `attributes`." +"Compra un pedido como empresa, utilizando los `productos` proporcionados con" +" `product_uuid` y `attributes`." #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -246,7 +244,8 @@ 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:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -274,7 +273,8 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: core/docs/drf/viewsets.py:90 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no editables" +"Reescribir algunos campos de un atributo existente guardando los no " +"editables" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -297,10 +297,11 @@ 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:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" +"Reescribir algunos campos de un valor de atributo existente guardando los no" +" editables" #: core/docs/drf/viewsets.py:124 msgid "list all categories (simple view)" @@ -340,12 +341,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Búsqueda de subcadenas sin distinción entre mayúsculas y minúsculas en " -"human_readable_id, order_products.product.name y order_products.product." -"partnumber" +"human_readable_id, order_products.product.name y " +"order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -366,8 +367,8 @@ msgstr "Filtrar por ID de pedido exacto legible por el ser humano" #: core/docs/drf/viewsets.py:185 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a " -"mayúsculas y minúsculas)" +"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a" +" mayúsculas y minúsculas)" #: core/docs/drf/viewsets.py:190 msgid "Filter by user's UUID" @@ -381,9 +382,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordenar por: uuid, human_readable_id, user_email, user, status, created, " "modified, buy_time, random. Utilice el prefijo '-' para orden descendente " @@ -518,7 +519,8 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: core/docs/drf/viewsets.py:303 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no editables" +"Reescribir algunos campos de un atributo existente guardando los no " +"editables" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -565,31 +567,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrar por uno o varios pares nombre/valor de atributo. \n" "- Sintaxis**: `nombre_attr=método-valor[;attr2=método2-valor2]...`.\n" -"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Tipificación de valores**: Se intenta primero JSON (para poder pasar " -"listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso " -"contrario se trata como cadena. \n" -"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin " -"procesar. \n" +"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Tipificación de valores**: Se intenta primero JSON (para poder pasar listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso contrario se trata como cadena. \n" +"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin procesar. \n" "Ejemplos: \n" -"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", " -"\"bluetooth\"]`,\n" +"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." #: core/docs/drf/viewsets.py:349 @@ -644,12 +635,10 @@ msgstr "(exacto) Digital frente a físico" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` " -"para que sea descendente. \n" +"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` para que sea descendente. \n" "**Permitido:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -825,8 +814,8 @@ msgstr "Atributos" msgid "Quantity" msgstr "Cantidad" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Babosa" @@ -840,7 +829,8 @@ msgstr "Incluir subcategorías" #: core/filters.py:147 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "Debe haber un category_uuid para usar la bandera include_subcategories" +msgstr "" +"Debe haber un category_uuid para usar la bandera include_subcategories" #: core/filters.py:280 msgid "Search (ID, product name or part number)" @@ -907,7 +897,7 @@ msgstr "Datos en caché" msgid "camelized JSON data from the requested URL" msgstr "Datos JSON camelizados de la URL solicitada" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Sólo se permiten URL que empiecen por http(s)://." @@ -938,9 +928,10 @@ 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:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" +msgstr "" +"Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" #: core/graphene/mutations.py:233 msgid "perform an action on a list of products in the order" @@ -982,17 +973,17 @@ msgstr "Comprar un pedido" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Por favor, envíe los atributos como una cadena formateada como attr1=valor1," -"attr2=valor2" +"Por favor, envíe los atributos como una cadena formateada como " +"attr1=valor1,attr2=valor2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "Cadena de dirección original proporcionada por el usuario" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} no existe: {uuid}" @@ -1005,99 +996,101 @@ msgstr "El límite debe estar entre 1 y 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona a las mil maravillas" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Atributos" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Atributos agrupados" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Categorías" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Marcas" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Categorías" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Porcentaje de recargo" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Qué atributos y valores se pueden utilizar para filtrar esta categoría." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Precios mínimo y máximo de los productos de esta categoría, si están " "disponibles." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Etiquetas para esta categoría" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Productos de esta categoría" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Vendedores" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Latitud (coordenada Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Longitud (coordenada X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Cómo" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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." +"Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está " +"configurado." -#: core/graphene/object_types.py:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Representa la opinión de un usuario." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Notificaciones" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "Descargar url para este producto de pedido si procede" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Una lista de los productos del pedido" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Dirección de facturación" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1105,734 +1098,739 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Precio total de este pedido" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Cantidad total de productos del pedido" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "¿Están todos los productos en el pedido digital" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transacciones para este pedido" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Pedidos" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "URL de la imagen" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Imágenes del producto" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Categoría" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Comentarios" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Precio" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Cantidad" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Número de reacciones" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Productos" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Códigos promocionales" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Productos a la venta" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promociones" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Vendedor" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Producto" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Productos deseados" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Listas de deseos" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Productos con etiqueta" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Etiquetas del producto" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Categorías" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Etiquetas de las categorías" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Nombre del proyecto" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Correo electrónico de la empresa" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Nombre de la empresa" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Dirección de la empresa" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Teléfono de la empresa" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Correo electrónico del usuario anfitrión" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Importe máximo de pago" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Importe mínimo de pago" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Datos analíticos" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Datos publicitarios" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configuración" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Código de idioma" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Nombre de la lengua" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Bandera de idioma, si existe :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Obtener una lista de los idiomas admitidos" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Resultados de la búsqueda de productos" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Resultados de la búsqueda de productos" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Padre de este grupo" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Grupo de atributos padre" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Nombre del grupo de atributos" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Información de autenticación" -#: core/models.py:153 +#: core/models.py:155 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:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Porcentaje de margen del vendedor" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Nombre de este vendedor" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Nombre del vendedor" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Identificador interno de la etiqueta del producto" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Nombre de la etiqueta" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Nombre fácil de usar para la etiqueta del producto" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Nombre de la etiqueta" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Etiqueta del producto" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "etiqueta de categoría" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "etiquetas de categoría" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Cargar una imagen que represente esta categoría" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Categoría imagen" -#: core/models.py:337 +#: core/models.py:338 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:346 +#: core/models.py:347 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:347 +#: core/models.py:348 msgid "parent category" msgstr "Categoría de padres" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Nombre de la categoría" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Indique un nombre para esta categoría" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Añadir una descripción detallada para esta categoría" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Descripción de la categoría" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "etiquetas que ayudan a describir o agrupar esta categoría" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Prioridad" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Nombre de esta marca" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Marca" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Cargar un logotipo que represente a esta marca" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Marca pequeña imagen" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Sube un logotipo grande que represente a esta marca" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Gran imagen de marca" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Añadir una descripción detallada de la marca" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Descripción de la marca" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Categorías opcionales a las que se asocia esta marca" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Categorías" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Categoría a la que pertenece este producto" +#: core/models.py:514 +msgid "the vendor supplying this product stock" +msgstr "El vendedor que suministra este producto dispone de" -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Si lo desea, puede asociar este producto a una marca" +#: core/models.py:515 +msgid "associated vendor" +msgstr "Proveedor asociado" -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Etiquetas que ayudan a describir o agrupar este producto" +#: core/models.py:519 +msgid "final price to the customer after markups" +msgstr "Precio final al cliente después de márgenes" -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Indica si este producto se entrega digitalmente" +#: core/models.py:520 +msgid "selling price" +msgstr "Precio de venta" -#: core/models.py:549 -msgid "is product digital" -msgstr "¿Es digital el producto?" +#: core/models.py:525 +msgid "the product associated with this stock entry" +msgstr "El producto asociado a esta entrada en stock" -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Proporcionar un nombre que identifique claramente el producto" - -#: core/models.py:556 -msgid "product name" -msgstr "Nombre del producto" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Añada una descripción detallada del producto" - -#: core/models.py:562 -msgid "product description" -msgstr "Descripción del producto" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Número de pieza de este producto" - -#: core/models.py:570 -msgid "part number" -msgstr "Número de pieza" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Categoría de este atributo" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Grupo de este atributo" - -#: core/models.py:690 -msgid "string" -msgstr "Cadena" - -#: core/models.py:691 -msgid "integer" -msgstr "Entero" - -#: core/models.py:692 -msgid "float" -msgstr "Flotador" - -#: core/models.py:693 -msgid "boolean" -msgstr "Booleano" - -#: core/models.py:694 -msgid "array" -msgstr "Matriz" - -#: core/models.py:695 -msgid "object" -msgstr "Objeto" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Tipo del valor del atributo" - -#: core/models.py:698 -msgid "value type" -msgstr "Tipo de valor" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Nombre de este atributo" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Nombre del atributo" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Atributo" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Atributo de este valor" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "El producto específico asociado al valor de este atributo" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 msgid "associated product" msgstr "Producto asociado" +#: core/models.py:533 +msgid "the price paid to the vendor for this product" +msgstr "El precio pagado al vendedor por este producto" + +#: core/models.py:534 +msgid "vendor purchase price" +msgstr "Precio de compra al vendedor" + +#: core/models.py:538 +msgid "available quantity of the product in stock" +msgstr "Cantidad disponible del producto en stock" + +#: core/models.py:539 +msgid "quantity in stock" +msgstr "Cantidad en stock" + +#: core/models.py:543 +msgid "vendor-assigned SKU for identifying the product" +msgstr "SKU asignada por el proveedor para identificar el producto" + +#: core/models.py:544 +msgid "vendor sku" +msgstr "SKU del vendedor" + +#: core/models.py:550 +msgid "digital file associated with this stock if applicable" +msgstr "Archivo digital asociado a esta acción, si procede" + +#: core/models.py:551 +msgid "digital file" +msgstr "Archivo digital" + +#: core/models.py:560 +msgid "stock entries" +msgstr "Entradas en existencias" + +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Categoría a la que pertenece este producto" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Si lo desea, puede asociar este producto a una marca" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Etiquetas que ayudan a describir o agrupar este producto" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Indica si este producto se entrega digitalmente" + +#: core/models.py:625 +msgid "is product digital" +msgstr "¿Es digital el producto?" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Proporcionar un nombre que identifique claramente el producto" + +#: core/models.py:632 +msgid "product name" +msgstr "Nombre del producto" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Añada una descripción detallada del producto" + +#: core/models.py:638 +msgid "product description" +msgstr "Descripción del producto" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Número de pieza de este producto" + +#: core/models.py:646 +msgid "part number" +msgstr "Número de pieza" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Categoría de este atributo" + #: core/models.py:760 +msgid "group of this attribute" +msgstr "Grupo de este atributo" + +#: core/models.py:766 +msgid "string" +msgstr "Cadena" + +#: core/models.py:767 +msgid "integer" +msgstr "Entero" + +#: core/models.py:768 +msgid "float" +msgstr "Flotador" + +#: core/models.py:769 +msgid "boolean" +msgstr "Booleano" + +#: core/models.py:770 +msgid "array" +msgstr "Matriz" + +#: core/models.py:771 +msgid "object" +msgstr "Objeto" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Tipo del valor del atributo" + +#: core/models.py:774 +msgid "value type" +msgstr "Tipo de valor" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Nombre de este atributo" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Nombre del atributo" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Atributo" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Atributo de este valor" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "El producto específico asociado al valor de este atributo" + +#: core/models.py:836 msgid "the specific value for this attribute" msgstr "El valor específico de este atributo" -#: core/models.py:794 +#: core/models.py:870 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:795 +#: core/models.py:871 msgid "image alt text" msgstr "Texto alternativo de la imagen" -#: core/models.py:798 +#: core/models.py:874 msgid "upload the image file for this product" msgstr "Cargar el archivo de imagen para este producto" -#: core/models.py:799 core/models.py:824 +#: core/models.py:875 core/models.py:900 msgid "product image" msgstr "Imagen del producto" -#: core/models.py:805 +#: core/models.py:881 msgid "determines the order in which images are displayed" msgstr "Determina el orden de visualización de las imágenes" -#: core/models.py:806 +#: core/models.py:882 msgid "display priority" msgstr "Prioridad de visualización" -#: core/models.py:811 +#: core/models.py:887 msgid "the product that this image represents" msgstr "El producto que representa esta imagen" -#: core/models.py:825 +#: core/models.py:901 msgid "product images" msgstr "Imágenes de productos" -#: core/models.py:866 +#: core/models.py:942 msgid "percentage discount for the selected products" msgstr "Porcentaje de descuento para los productos seleccionados" -#: core/models.py:867 +#: core/models.py:943 msgid "discount percentage" msgstr "Porcentaje de descuento" -#: core/models.py:872 +#: core/models.py:948 msgid "provide a unique name for this promotion" msgstr "Proporcione un nombre único para esta promoción" -#: core/models.py:873 +#: core/models.py:949 msgid "promotion name" msgstr "Nombre de la promoción" -#: core/models.py:879 +#: core/models.py:955 msgid "promotion description" msgstr "Descripción de la promoción" -#: core/models.py:884 +#: core/models.py:960 msgid "select which products are included in this promotion" msgstr "Seleccione los productos incluidos en esta promoción" -#: core/models.py:885 +#: core/models.py:961 msgid "included products" msgstr "Productos incluidos" -#: core/models.py:889 +#: core/models.py:965 msgid "promotion" msgstr "Promoción" -#: core/models.py:924 -msgid "the vendor supplying this product stock" -msgstr "El vendedor que suministra este producto dispone de" - -#: core/models.py:925 -msgid "associated vendor" -msgstr "Proveedor asociado" - -#: core/models.py:929 -msgid "final price to the customer after markups" -msgstr "Precio final al cliente después de márgenes" - -#: core/models.py:930 -msgid "selling price" -msgstr "Precio de venta" - -#: core/models.py:935 -msgid "the product associated with this stock entry" -msgstr "El producto asociado a esta entrada en stock" - -#: core/models.py:943 -msgid "the price paid to the vendor for this product" -msgstr "El precio pagado al vendedor por este producto" - -#: core/models.py:944 -msgid "vendor purchase price" -msgstr "Precio de compra al vendedor" - -#: core/models.py:948 -msgid "available quantity of the product in stock" -msgstr "Cantidad disponible del producto en stock" - -#: core/models.py:949 -msgid "quantity in stock" -msgstr "Cantidad en stock" - -#: core/models.py:953 -msgid "vendor-assigned SKU for identifying the product" -msgstr "SKU asignada por el proveedor para identificar el producto" - -#: core/models.py:954 -msgid "vendor sku" -msgstr "SKU del vendedor" - -#: core/models.py:960 -msgid "digital file associated with this stock if applicable" -msgstr "Archivo digital asociado a esta acción, si procede" - -#: core/models.py:961 -msgid "digital file" -msgstr "Archivo digital" - -#: core/models.py:970 -msgid "stock entries" -msgstr "Entradas en existencias" - -#: core/models.py:989 +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Productos que el usuario ha marcado como deseados" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Usuario propietario de esta lista de deseos" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Propietario de Wishlist" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Lista de deseos" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} no existe: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documental" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Sin resolver" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Dirección del cliente" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Dirección" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Calle" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Distrito" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Ciudad" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Región" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Promo code" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "País" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocalización Punto(Longitud, Latitud)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Respuesta JSON completa del geocodificador para esta dirección" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Respuesta JSON almacenada del servicio de geocodificación" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Dirección" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Direcciones" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:1213 +#: core/models.py:1214 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:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Importe fijo del descuento" -#: core/models.py:1220 +#: core/models.py:1221 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:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Porcentaje de descuento" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Fecha de caducidad del promocode" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Hora de fin de validez" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Fecha a partir de la cual es válido este promocode" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Hora de inicio de validez" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Marca de tiempo de uso" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Usuario asignado a este promocode si procede" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Usuario asignado" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Promo code" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1840,138 +1838,146 @@ msgstr "" "Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no " "ambos ni ninguno." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "El código promocional ya ha sido utilizado" -#: core/models.py:1288 +#: core/models.py:1289 #, 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:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "La dirección de facturación utilizada para este pedido" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "La dirección de envío utilizada para este pedido" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Dirección de envío" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Estado actual del pedido en su ciclo de vida" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Estado del pedido" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 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:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "El usuario que realizó el pedido" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Usuario" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Fecha de finalización de la orden" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Comprar tiempo" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Un identificador legible por el ser humano para la orden" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "ID legible por humanos" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Pida" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "No se pueden añadir productos inactivos al pedido" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} no existe con la consulta <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Promocode no existe" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "La dirección no existe" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Valor de fuerza no válido" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "No se puede comprar un pedido vacío." -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "No se puede comprar un pedido sin un usuario." + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "¡Un usuario sin saldo no puede comprar con saldo!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Fondos insuficientes para completar el pedido" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1979,119 +1985,124 @@ 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:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Forma de pago no válida: ¡{payment_method} de {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Precio de compra en el momento del pedido" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarios internos para los administradores sobre este producto solicitado" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Comentarios internos" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Notificaciones a los usuarios" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "Representación JSON de los atributos de este elemento" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Atributos ordenados del producto" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Referencia al pedido principal que contiene este producto" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Orden de los padres" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "El producto específico asociado a esta línea de pedido" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Cantidad de este producto específico en el pedido" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Cantidad de productos" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Estado actual de este producto en el pedido" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Estado de la línea de productos" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "El pedido-producto debe tener un pedido asociado." + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "acción incorrecta especificada para la retroalimentación: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "no se puede comentar un pedido no recibido" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Descargar" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Descargas" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Comentarios de los usuarios sobre su experiencia con el producto" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Comentarios" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Producto relacionado con el pedido" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Valoración del producto asignada por el usuario" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Valoración del producto" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Comentarios" @@ -2108,7 +2119,7 @@ msgstr "Error durante la creación del promocode: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2117,7 +2128,7 @@ msgid "order confirmation" msgstr "Confirmación de pedido" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2134,22 +2145,21 @@ msgstr "Hola %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "¡Gracias por su pedido #%(order.pk)s! Nos complace informarle de que hemos " "recibido su pedido. A continuación encontrará los detalles de su pedido:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Total" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2172,20 +2182,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Saludos cordiales,
el equipo de %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Todos los derechos reservados" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Pedido entregado" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hola %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2194,7 +2204,7 @@ msgstr "" "¡Hemos procesado correctamente su pedido №%(order_uuid)s! A continuación " "encontrará los detalles de su pedido:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2202,12 +2212,12 @@ msgstr "" "información adicional\n" " información adicional" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Valor" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2216,7 +2226,7 @@ msgstr "" "Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro " "servicio de asistencia en %(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Saludos cordiales,
el equipo de %(project_name)s" @@ -2228,8 +2238,7 @@ msgstr "Clave" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Gracias por su pedido. Nos complace confirmarle su compra. A continuación " @@ -2269,27 +2278,17 @@ msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" "Valor de tiempo de espera no válido, debe estar entre 0 y 216000 segundos." -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} debe ser modelo" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} debe ser un objeto de lista" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Contacto iniciado" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmación de pedido" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Pedido entregado" @@ -2313,15 +2312,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Formato de número de teléfono no válido" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Sólo puede descargar el activo digital una vez" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon no encontrado" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 7efaee64..4dc7dd4c 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 a9a3ee62..73b3824d 100644 --- a/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/core/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Unique ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "L'identifiant unique est utilisé pour identifier de manière sûre tout objet " "de la base de données." -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Est actif" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Si la valeur est fixée à false, cet objet ne peut pas être vu par les " "utilisateurs qui n'ont pas l'autorisation nécessaire." -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Créée" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Date de la première apparition de l'objet dans la base de données" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modifié" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Date de la dernière modification de l'objet" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Traductions" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Général" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relations" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Métadonnées" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Horodatage" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activer les %(verbose_name_plural)s sélectionnés" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s activé avec succès !" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Les articles sélectionnés ont été activés !" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Désactiver les %(verbose_name_plural)s sélectionnés" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "Désactivation réussie de %(verbose_name_plural)s." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Les articles sélectionnés ont été désactivés !" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Valeur de l'attribut" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Valeurs des attributs" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Image" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Images" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stock" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Stocks" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Commander un produit" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Commander des produits" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Les enfants" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Config" @@ -188,10 +187,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Appliquer uniquement une clé pour lire les données autorisées dans la " -"mémoire cache.\n" -"Appliquer une clé, des données et un délai d'attente avec authentification " -"pour écrire des données dans la mémoire cache." +"Appliquer uniquement une clé pour lire les données autorisées dans la mémoire cache.\n" +"Appliquer une clé, des données et un délai d'attente avec authentification pour écrire des données dans la mémoire cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -249,7 +246,8 @@ msgstr "" "modifiables" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -278,8 +276,8 @@ msgstr "" #: core/docs/drf/viewsets.py:90 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" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" +" non modifiables" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -304,7 +302,8 @@ msgstr "" "modifiables" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -347,11 +346,11 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Recherche insensible à la casse dans human_readable_id, order_products." -"product.name, et order_products.product.partnumber" +"Recherche insensible à la casse dans human_readable_id, " +"order_products.product.name, et order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -387,13 +386,13 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordonner par l'un des éléments suivants : uuid, human_readable_id, " -"user_email, user, status, created, modified, buy_time, random. Préfixer avec " -"'-' pour l'ordre décroissant (par exemple '-buy_time')." +"user_email, user, status, created, modified, buy_time, random. Préfixer avec" +" '-' pour l'ordre décroissant (par exemple '-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -431,8 +430,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est " -"complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " +"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est" +" complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " "utilisé, une transaction est initiée." #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 @@ -492,8 +491,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Supprime une liste de produits d'une commande en utilisant le `product_uuid` " -"et les `attributs` fournis." +"Supprime une liste de produits d'une commande en utilisant le `product_uuid`" +" et les `attributs` fournis." #: core/docs/drf/viewsets.py:281 msgid "list all wishlists (simple view)" @@ -529,8 +528,8 @@ msgstr "" #: core/docs/drf/viewsets.py:303 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" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" +" non modifiables" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -577,29 +576,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtre sur une ou plusieurs paires nom/valeur d'attribut. \n" "- **Syntaxe** : `nom_attr=méthode-valeur[;attr2=méthode2-valeur2]...`\n" -"- **Méthodes** (la valeur par défaut est `icontains` si elle est omise) : " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Type de valeur** : JSON est essayé en premier (pour que vous puissiez " -"passer des listes/dicts), `true`/`false` pour les booléens, les entiers, les " -"flottants ; sinon traité comme une chaîne de caractères. \n" -"- **Base64** : préfixe avec `b64-` pour encoder la valeur brute en base64 de " -"manière sûre pour l'URL. \n" +"- **Méthodes** (la valeur par défaut est `icontains` si elle est omise) : `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Type de valeur** : JSON est essayé en premier (pour que vous puissiez passer des listes/dicts), `true`/`false` pour les booléens, les entiers, les flottants ; sinon traité comme une chaîne de caractères. \n" +"- **Base64** : préfixe avec `b64-` pour encoder la valeur brute en base64 de manière sûre pour l'URL. \n" "Exemples : \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -654,12 +642,10 @@ msgstr "(exact) Numérique ou physique" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un " -"tri descendant. \n" +"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un tri descendant. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -838,8 +824,8 @@ msgstr "Attributs" msgid "Quantity" msgstr "Quantité" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Limace" @@ -922,7 +908,7 @@ msgstr "Données mises en cache" msgid "camelized JSON data from the requested URL" msgstr "Données JSON camélisées provenant de l'URL demandée" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Seuls les URL commençant par http(s):// sont autorisés." @@ -955,7 +941,7 @@ msgstr "" "mutuellement !" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 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}" @@ -1000,8 +986,8 @@ msgstr "Acheter une commande" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Veuillez envoyer les attributs sous la forme d'une chaîne formatée comme " "attr1=valeur1,attr2=valeur2." @@ -1010,7 +996,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "Chaîne d'adresse originale fournie par l'utilisateur" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} n'existe pas : {uuid}" @@ -1023,835 +1009,844 @@ msgstr "La limite doit être comprise entre 1 et 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fonctionne comme un charme" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Attributs" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Attributs groupés" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Groupes d'attributs" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Catégories" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Marques" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Catégories" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Markup Percentage" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Quels attributs et valeurs peuvent être utilisés pour filtrer cette " "catégorie." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Prix minimum et maximum pour les produits de cette catégorie, s'ils sont " "disponibles." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tags pour cette catégorie" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Produits dans cette catégorie" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Vendeurs" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Latitude (coordonnée Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Longitude (coordonnée X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Comment" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Représente le retour d'information d'un utilisateur." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Notifications" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 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:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Une liste des produits commandés dans cette commande" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Adresse de facturation" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" 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" +"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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Prix total de la commande" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Quantité totale de produits dans la commande" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Tous les produits de la commande sont-ils numériques ?" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transactions pour cette commande" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Commandes" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Image URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Images du produit" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Catégorie" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Retour d'information" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Marque" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Groupes d'attributs" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Prix" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Quantité" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Nombre de retours d'information" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Produits" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Produits en vente" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Vendeur" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Produit" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Produits en liste de souhaits" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Liste de souhaits" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Produits marqués" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Étiquettes du produit" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Catégories marquées" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Tags des catégories" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Nom du projet" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Courriel de l'entreprise" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Nom de l'entreprise" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Adresse de l'entreprise" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Numéro de téléphone de l'entreprise" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Utilisateur de l'hôte de messagerie" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Montant maximum du paiement" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Montant minimum pour le paiement" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Données analytiques" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Advertisement data" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configuration" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Code langue" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Nom de la langue" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Drapeau linguistique, s'il existe :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Obtenir la liste des langues prises en charge" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Résultats de la recherche de produits" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Résultats de la recherche de produits" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Parent de ce groupe" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Groupe d'attributs parent" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Nom du groupe d'attributs" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Groupe d'attributs" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Informations sur l'authentification" -#: core/models.py:153 +#: core/models.py:155 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:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Pourcentage de marge du vendeur" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Nom de ce vendeur" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Nom du vendeur" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Identifiant interne de l'étiquette du produit" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Nom du jour" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Nom convivial pour l'étiquette du produit" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Nom d'affichage de l'étiquette" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Étiquette du produit" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "étiquette de catégorie" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "balises de catégorie" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Télécharger une image représentant cette catégorie" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Image de catégorie" -#: core/models.py:337 +#: core/models.py:338 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:346 +#: core/models.py:347 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:347 +#: core/models.py:348 msgid "parent category" msgstr "Catégorie de parents" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Nom de la catégorie" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Donnez un nom à cette catégorie" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Ajouter une description détaillée pour cette catégorie" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Description de la catégorie" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "les étiquettes qui aident à décrire ou à regrouper cette catégorie" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Priorité" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Nom de cette marque" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Nom de marque" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Télécharger un logo représentant cette marque" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Petite image de marque" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Télécharger un grand logo représentant cette marque" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Une grande image de marque" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Ajouter une description détaillée de la marque" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Description de la marque" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Catégories facultatives auxquelles cette marque est associée" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Catégories" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Catégorie à laquelle appartient ce produit" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Possibilité d'associer ce produit à une marque" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Étiquettes permettant de décrire ou de regrouper ce produit" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Indique si ce produit est livré numériquement" - -#: core/models.py:549 -msgid "is product digital" -msgstr "Le produit est-il numérique ?" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Fournir un nom d'identification clair pour le produit" - -#: core/models.py:556 -msgid "product name" -msgstr "Nom du produit" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Ajouter une description détaillée du produit" - -#: core/models.py:562 -msgid "product description" -msgstr "Description du produit" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Numéro de pièce pour ce produit" - -#: core/models.py:570 -msgid "part number" -msgstr "Numéro de pièce" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Catégorie de cet attribut" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Groupe de cet attribut" - -#: core/models.py:690 -msgid "string" -msgstr "Chaîne" - -#: core/models.py:691 -msgid "integer" -msgstr "Entier" - -#: core/models.py:692 -msgid "float" -msgstr "Flotteur" - -#: core/models.py:693 -msgid "boolean" -msgstr "Booléen" - -#: core/models.py:694 -msgid "array" -msgstr "Tableau" - -#: core/models.py:695 -msgid "object" -msgstr "Objet" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Type de la valeur de l'attribut" - -#: core/models.py:698 -msgid "value type" -msgstr "Type de valeur" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Nom de cet attribut" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Nom de l'attribut" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Attribut" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Attribut de cette valeur" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "Le produit spécifique associé à la valeur de cet attribut" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Produit associé" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "La valeur spécifique de cet attribut" - -#: core/models.py:794 -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:795 -msgid "image alt text" -msgstr "Texte alt de l'image" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Télécharger le fichier image pour ce produit" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Image du produit" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Détermine l'ordre d'affichage des images" - -#: core/models.py:806 -msgid "display priority" -msgstr "Priorité à l'affichage" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "Le produit que cette image représente" - -#: core/models.py:825 -msgid "product images" -msgstr "Images du produit" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Pourcentage de réduction pour les produits sélectionnés" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Pourcentage de réduction" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Donnez un nom unique à cette promotion" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Nom de la promotion" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Promotion description" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Sélectionnez les produits inclus dans cette promotion" - -#: core/models.py:885 -msgid "included products" -msgstr "Produits inclus" - -#: core/models.py:889 -msgid "promotion" -msgstr "Promotion" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "Le vendeur qui fournit ce stock de produits" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Vendeur associé" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Prix final pour le client après majoration" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Prix de vente" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "Le produit associé à cette entrée de stock" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Produit associé" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "Le prix payé au vendeur pour ce produit" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Prix d'achat du vendeur" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Quantité disponible du produit en stock" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Quantité en stock" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU attribué par le fournisseur pour identifier le produit" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "UGS du vendeur" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Fichier numérique associé à ce stock, le cas échéant" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Fichier numérique" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Entrées de stock" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Catégorie à laquelle appartient ce produit" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Possibilité d'associer ce produit à une marque" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Étiquettes permettant de décrire ou de regrouper ce produit" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Indique si ce produit est livré numériquement" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Le produit est-il numérique ?" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Fournir un nom d'identification clair pour le produit" + +#: core/models.py:632 +msgid "product name" +msgstr "Nom du produit" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Ajouter une description détaillée du produit" + +#: core/models.py:638 +msgid "product description" +msgstr "Description du produit" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Numéro de pièce pour ce produit" + +#: core/models.py:646 +msgid "part number" +msgstr "Numéro de pièce" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Catégorie de cet attribut" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Groupe de cet attribut" + +#: core/models.py:766 +msgid "string" +msgstr "Chaîne" + +#: core/models.py:767 +msgid "integer" +msgstr "Entier" + +#: core/models.py:768 +msgid "float" +msgstr "Flotteur" + +#: core/models.py:769 +msgid "boolean" +msgstr "Booléen" + +#: core/models.py:770 +msgid "array" +msgstr "Tableau" + +#: core/models.py:771 +msgid "object" +msgstr "Objet" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Type de la valeur de l'attribut" + +#: core/models.py:774 +msgid "value type" +msgstr "Type de valeur" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Nom de cet attribut" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Nom de l'attribut" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attribut" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Attribut de cette valeur" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "Le produit spécifique associé à la valeur de cet attribut" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "La valeur spécifique de cet attribut" + +#: core/models.py:870 +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:871 +msgid "image alt text" +msgstr "Texte alt de l'image" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Télécharger le fichier image pour ce produit" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Image du produit" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Détermine l'ordre d'affichage des images" + +#: core/models.py:882 +msgid "display priority" +msgstr "Priorité à l'affichage" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "Le produit que cette image représente" + +#: core/models.py:901 +msgid "product images" +msgstr "Images du produit" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Pourcentage de réduction pour les produits sélectionnés" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Pourcentage de réduction" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Donnez un nom unique à cette promotion" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Nom de la promotion" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Promotion description" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Sélectionnez les produits inclus dans cette promotion" + +#: core/models.py:961 +msgid "included products" +msgstr "Produits inclus" + +#: core/models.py:965 +msgid "promotion" +msgstr "Promotion" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Produits que l'utilisateur a marqués comme souhaités" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Utilisateur qui possède cette liste de souhaits" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Propriétaire de la liste de souhaits" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Liste de souhaits" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} n'existe pas : {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Non résolu" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Ligne d'adresse du client" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Ligne d'adresse" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Rue" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "District" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Ville" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Région" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Code postal" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Pays" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Point de géolocalisation (longitude, latitude)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Réponse JSON complète du géocodeur pour cette adresse" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Réponse JSON stockée du service de géocodage" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Adresse" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adresses" -#: core/models.py:1205 -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:1206 +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:1207 msgid "promo code identifier" msgstr "Identifiant du code promotionnel" -#: core/models.py:1213 -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:1214 +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:1215 msgid "fixed discount amount" msgstr "Montant de l'escompte fixe" -#: core/models.py:1220 -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:1221 +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:1222 msgid "percentage discount" msgstr "Pourcentage de réduction" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Date d'expiration du code promotionnel" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Heure de fin de validité" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Date à partir de laquelle ce code promotionnel est valable" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Heure de début de validité" -#: core/models.py:1238 +#: core/models.py:1239 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é." +"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore" +" été utilisé." -#: core/models.py:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Horodatage de l'utilisation" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Utilisateur assigné à ce code promo, le cas échéant" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Utilisateur assigné" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Code promo" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Codes promotionnels" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1859,143 +1854,154 @@ msgstr "" "Un seul type de remise doit être défini (montant ou pourcentage), mais pas " "les deux ni aucun des deux." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Le code promotionnel a déjà été utilisé" -#: core/models.py:1288 +#: core/models.py:1289 #, 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:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "L'adresse de facturation utilisée pour cette commande" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Code promo optionnel appliqué à cette commande" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Code promo appliqué" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "L'adresse de livraison utilisée pour cette commande" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Adresse de livraison" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Statut actuel de la commande dans son cycle de vie" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Statut de la commande" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "Représentation JSON des attributs de cette commande" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "L'utilisateur qui a passé la commande" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Utilisateur" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "L'heure à laquelle la commande a été finalisée." -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Temps d'achat" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Un identifiant lisible par l'homme pour la commande" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "ID lisible par l'homme" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Commande" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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." +"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en " +"cours." -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} n'existe pas avec la requête <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Le code promotionnel n'existe pas" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "L'adresse n'existe pas" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Valeur de force non valide" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Vous ne pouvez pas acheter une commande vide !" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" +"Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " +"cours." + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Un utilisateur sans solde ne peut pas acheter avec un solde !" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Insuffisance de fonds pour compléter la commande" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2004,7 +2010,7 @@ msgstr "" "informations suivantes : nom du client, courriel du client, numéro de " "téléphone du client" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2012,114 +2018,120 @@ msgstr "" "Méthode de paiement non valide : {payment_method} de " "{available_payment_methods} !" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Prix d'achat au moment de la commande" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" -msgstr "Commentaires internes pour les administrateurs sur ce produit commandé" +msgstr "" +"Commentaires internes pour les administrateurs sur ce produit commandé" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Commentaires internes" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Notifications aux utilisateurs" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "Représentation JSON des attributs de cet élément" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Attributs du produit ordonnés" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Référence à l'ordre parent qui contient ce produit" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Ordonnance parentale" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Le produit spécifique associé à cette ligne de commande" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Quantité de ce produit spécifique dans la commande" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Quantité de produits" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Statut actuel de ce produit dans la commande" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Statut de la ligne de produits" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Le produit doit être associé à une commande !" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "mauvaise action spécifiée pour le retour d'information : {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" "Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " "cours." -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Télécharger" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Téléchargements" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Commentaires des utilisateurs sur leur expérience du produit" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Commentaires" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Produit de commande apparenté" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Note attribuée par l'utilisateur au produit" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Evaluation du produit" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Retour d'information" @@ -2136,7 +2148,7 @@ msgstr "Erreur lors de la création du promocode : {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2145,7 +2157,7 @@ msgid "order confirmation" msgstr "Confirmation de commande" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2162,8 +2174,7 @@ msgstr "Bonjour %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Merci pour votre commande #%(order.pk)s ! Nous avons le plaisir de vous " @@ -2171,14 +2182,14 @@ msgstr "" "dessous les détails de votre commande :" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Total" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2201,20 +2212,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Meilleures salutations,
l'équipe de %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Tous droits réservés" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Commande livrée" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Bonjour %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2223,7 +2234,7 @@ msgstr "" "Nous avons traité avec succès votre commande №%(order_uuid)s ! Vous " "trouverez ci-dessous les détails de votre commande :" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2231,12 +2242,12 @@ msgstr "" "informations\n" " complémentaires" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Valeur" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2245,7 +2256,7 @@ msgstr "" "Si vous avez des questions, n'hésitez pas à contacter notre service " "d'assistance à %(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Meilleures salutations,
l'équipe de %(project_name)s" @@ -2257,8 +2268,7 @@ msgstr "Clé" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Nous vous remercions pour votre commande ! Nous avons le plaisir de " @@ -2297,30 +2307,20 @@ msgstr "Les données et le délai d'attente sont tous deux nécessaires" #: core/utils/caching.py:43 msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre " -"0 et 216000 secondes." - -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} doit être le modèle" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} doit être un objet de liste" +"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre" +" 0 et 216000 secondes." #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Nous contacter initié" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmation de commande" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Commande livrée" @@ -2344,15 +2344,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Format de numéro de téléphone non valide" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Vous ne pouvez télécharger le bien numérique qu'une seule fois" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon introuvable" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 845780f1..4c537cbd 100644 --- a/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/core/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,117 +16,115 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" "if set to false, this object can't be seen by users without needed permission" msgstr "" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" +#: core/admin.py:90 +msgid "selected items have been activated." msgstr "" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." +#: core/admin.py:95 +msgid "selected items have been deactivated." msgstr "" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "" @@ -750,8 +748,8 @@ msgstr "" msgid "Quantity" msgstr "" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 core/models.py:471 +#: core/models.py:662 msgid "Slug" msgstr "" @@ -832,7 +830,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -863,7 +861,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" @@ -915,7 +913,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "" @@ -928,1066 +926,1082 @@ msgstr "" msgid "elasticsearch - works like a charm" msgstr "" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" -#: core/graphene/object_types.py:133 +#: core/graphene/object_types.py:135 msgid "minimum and maximum prices for products in this category, if available." msgstr "" -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" -#: core/graphene/object_types.py:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "" -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "" - -#: core/models.py:549 -msgid "is product digital" -msgstr "" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "" - -#: core/models.py:556 -msgid "product name" -msgstr "" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "" - -#: core/models.py:562 -msgid "product description" -msgstr "" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "" - -#: core/models.py:570 -msgid "part number" -msgstr "" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "" - -#: core/models.py:690 -msgid "string" -msgstr "" - -#: core/models.py:691 -msgid "integer" -msgstr "" - -#: core/models.py:692 -msgid "float" -msgstr "" - -#: core/models.py:693 -msgid "boolean" -msgstr "" - -#: core/models.py:694 -msgid "array" -msgstr "" - -#: core/models.py:695 -msgid "object" -msgstr "" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "" - -#: core/models.py:698 -msgid "value type" -msgstr "" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "" - -#: core/models.py:795 -msgid "image alt text" -msgstr "" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "" - -#: core/models.py:806 -msgid "display priority" -msgstr "" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "" - -#: core/models.py:825 -msgid "product images" -msgstr "" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "" - -#: core/models.py:873 -msgid "promotion name" -msgstr "" - -#: core/models.py:879 -msgid "promotion description" -msgstr "" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "" - -#: core/models.py:885 -msgid "included products" -msgstr "" - -#: core/models.py:889 -msgid "promotion" -msgstr "" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 core/models.py:1775 +msgid "associated product" +msgstr "" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "" + +#: core/models.py:625 +msgid "is product digital" +msgstr "" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "" + +#: core/models.py:632 +msgid "product name" +msgstr "" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "" + +#: core/models.py:638 +msgid "product description" +msgstr "" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "" + +#: core/models.py:646 +msgid "part number" +msgstr "" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "" + +#: core/models.py:766 +msgid "string" +msgstr "" + +#: core/models.py:767 +msgid "integer" +msgstr "" + +#: core/models.py:768 +msgid "float" +msgstr "" + +#: core/models.py:769 +msgid "boolean" +msgstr "" + +#: core/models.py:770 +msgid "array" +msgstr "" + +#: core/models.py:771 +msgid "object" +msgstr "" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "" + +#: core/models.py:774 +msgid "value type" +msgstr "" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "" + +#: core/models.py:871 +msgid "image alt text" +msgstr "" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "" + +#: core/models.py:882 +msgid "display priority" +msgstr "" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "" + +#: core/models.py:901 +msgid "product images" +msgstr "" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "" + +#: core/models.py:949 +msgid "promotion name" +msgstr "" + +#: core/models.py:955 +msgid "promotion description" +msgstr "" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "" + +#: core/models.py:961 +msgid "included products" +msgstr "" + +#: core/models.py:965 +msgid "promotion" +msgstr "" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "" -#: core/models.py:1205 +#: core/models.py:1206 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "" -#: core/models.py:1238 +#: core/models.py:1239 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "" -#: core/models.py:1403 +#: core/models.py:1404 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1437 +#: core/models.py:1438 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "" -#: core/models.py:1540 +#: core/models.py:1541 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1733 +#: core/models.py:1740 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "" -#: core/models.py:1891 +#: core/models.py:1904 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "" -#: core/models.py:1929 +#: core/models.py:1942 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "" @@ -2002,7 +2016,7 @@ msgstr "" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2011,7 +2025,7 @@ msgid "order confirmation" msgstr "" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2034,14 +2048,14 @@ msgid "" msgstr "" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2062,45 +2076,45 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "" -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" msgstr "" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "" @@ -2148,27 +2162,17 @@ msgstr "" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "" @@ -2190,15 +2194,15 @@ msgstr "" msgid "invalid phone number format" msgstr "" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 ee9a0fc6..7004431a 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 bf2a393d..39d40324 100644 --- a/core/locale/it_IT/LC_MESSAGES/django.po +++ b/core/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "ID univoco" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "L'ID univoco viene utilizzato per identificare con certezza qualsiasi " "oggetto del database." -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "È attivo" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"Se impostato a false, questo oggetto non può essere visto dagli utenti senza " -"i necessari permessi." +"Se impostato a false, questo oggetto non può essere visto dagli utenti senza" +" i necessari permessi." -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Creato" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Quando l'oggetto è apparso per la prima volta nel database" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modificato" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Quando l'oggetto è stato modificato per l'ultima volta" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Traduzioni" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Generale" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relazioni" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadati" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Timestamp" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Attivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s attivato con successo!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Gli articoli selezionati sono stati attivati!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Disattivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s disattivato con successo." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Gli articoli selezionati sono stati disattivati!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Valore dell'attributo" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Valori degli attributi" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Immagine" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Immagini" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stock" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Le scorte" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Ordina il prodotto" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Ordinare i prodotti" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "I bambini" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Configurazione" @@ -189,8 +188,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Applicare solo una chiave per leggere i dati consentiti dalla cache.\n" -"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella " -"cache." +"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -247,7 +245,8 @@ msgstr "" "Riscrivere un gruppo di attributi esistente salvando i non modificabili" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -302,7 +301,8 @@ msgstr "" "modificabili" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -331,8 +331,8 @@ msgstr "" #: core/docs/drf/viewsets.py:144 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: core/docs/drf/viewsets.py:151 msgid "list all orders (simple view)" @@ -346,12 +346,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Ricerca di sottostringhe senza distinzione di maiuscole e minuscole tra " -"human_readable_id, order_products.product.name e order_products.product." -"partnumber" +"human_readable_id, order_products.product.name e " +"order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -387,9 +387,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordinare per uno dei seguenti criteri: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefisso con '-' per la " @@ -419,8 +419,8 @@ msgstr "" #: core/docs/drf/viewsets.py:227 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: core/docs/drf/viewsets.py:231 msgid "purchase an order" @@ -433,8 +433,8 @@ msgid "" "transaction is initiated." msgstr "" "Finalizza l'acquisto dell'ordine. Se si utilizza `forza_bilancio`, " -"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza " -"`forza_pagamento`, viene avviata una transazione." +"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza" +" `forza_pagamento`, viene avviata una transazione." #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 msgid "purchase an order without account creation" @@ -502,8 +502,8 @@ msgstr "Elenco di tutti gli attributi (vista semplice)" #: core/docs/drf/viewsets.py:282 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." +"Per gli utenti che non fanno parte del personale, vengono restituite solo le" +" loro liste dei desideri." #: core/docs/drf/viewsets.py:286 msgid "retrieve a single wishlist (detailed view)" @@ -576,28 +576,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrare in base a una o più coppie nome/valore dell'attributo. \n" "- **Sintassi**: `nome_attraverso=metodo-valore[;attr2=metodo2-valore2]...`\n" -"- **Metodi** (predefiniti a `icontains` se omessi): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- **Tipo di valore**: JSON viene tentato per primo (in modo da poter passare " -"liste/dict), `true`/`false` per booleani, interi, float; altrimenti viene " -"trattato come stringa. \n" -"- **Base64**: prefisso con `b64-` per codificare in base64 il valore " -"grezzo. \n" +"- **Metodi** (predefiniti a `icontains` se omessi): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Tipo di valore**: JSON viene tentato per primo (in modo da poter passare liste/dict), `true`/`false` per booleani, interi, float; altrimenti viene trattato come stringa. \n" +"- **Base64**: prefisso con `b64-` per codificare in base64 il valore grezzo. \n" "Esempi: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -653,12 +643,10 @@ msgstr "(esatto) Digitale e fisico" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per " -"l'ordinamento discendente. \n" +"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per l'ordinamento discendente. \n" "**Consentito:** uuid, rating, nome, slug, creato, modificato, prezzo, casuale" #: core/docs/drf/viewsets.py:441 @@ -677,7 +665,8 @@ msgstr "Creare un prodotto" #: core/docs/drf/viewsets.py:463 msgid "rewrite an existing product, preserving non-editable fields" -msgstr "Riscrivere un prodotto esistente, preservando i campi non modificabili" +msgstr "" +"Riscrivere un prodotto esistente, preservando i campi non modificabili" #: core/docs/drf/viewsets.py:478 msgid "" @@ -755,8 +744,8 @@ msgstr "" #: core/docs/drf/viewsets.py:615 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: core/docs/drf/viewsets.py:622 msgid "list all order–product relations (simple view)" @@ -834,8 +823,8 @@ msgstr "Attributi" msgid "Quantity" msgstr "Quantità" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Lumaca" @@ -917,7 +906,7 @@ msgstr "Dati in cache" msgid "camelized JSON data from the requested URL" msgstr "Dati JSON camelizzati dall'URL richiesto" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Sono consentiti solo gli URL che iniziano con http(s)://" @@ -949,9 +938,10 @@ msgstr "" "Si prega di fornire order_uuid o order_hr_id, che si escludono a vicenda!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" +msgstr "" +"Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" #: core/graphene/mutations.py:233 msgid "perform an action on a list of products in the order" @@ -993,17 +983,17 @@ msgstr "Acquistare un ordine" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Inviare gli attributi come stringa formattata come attr1=valore1," -"attr2=valore2" +"Inviare gli attributi come stringa formattata come " +"attr1=valore1,attr2=valore2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "Stringa di indirizzo originale fornita dall'utente" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} non esiste: {uuid}" @@ -1016,98 +1006,99 @@ msgstr "Il limite deve essere compreso tra 1 e 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch: funziona a meraviglia" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Attributi" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Attributi raggruppati" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Gruppi di attributi" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Categorie" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Marche" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Categorie" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Percentuale di markup" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Quali attributi e valori possono essere utilizzati per filtrare questa " "categoria." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Prezzi minimi e massimi per i prodotti di questa categoria, se disponibili." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tag per questa categoria" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Prodotti in questa categoria" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Venditori" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Latitudine (coordinata Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Longitudine (coordinata X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Come" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Rappresenta il feedback di un utente." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Notifiche" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 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:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Un elenco di prodotti ordinati in questo ordine" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Indirizzo di fatturazione" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1115,875 +1106,889 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Prezzo totale dell'ordine" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Quantità totale di prodotti in ordine" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Tutti i prodotti sono presenti nell'ordine digitale" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transazioni per questo ordine" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Ordini" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "URL immagine" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Immagini del prodotto" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Feedback" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Marchio" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Gruppi di attributi" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Prezzo" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Quantità" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Numero di feedback" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Prodotti" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Codici promozionali" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Prodotti in vendita" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promozioni" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Venditore" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Prodotto" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Prodotti desiderati" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Liste dei desideri" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Prodotti contrassegnati" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Tag del prodotto" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Contrassegnato dalle categorie" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Tag delle categorie" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Nome del progetto" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Email aziendale" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Nome della società" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Indirizzo dell'azienda" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Numero di telefono dell'azienda" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Utente host dell'e-mail" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Importo massimo per il pagamento" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Importo minimo per il pagamento" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Dati analitici" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Dati pubblicitari" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configurazione" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Codice lingua" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Nome della lingua" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Bandiera della lingua, se esiste :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Ottenere un elenco delle lingue supportate" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Risultati della ricerca dei prodotti" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Risultati della ricerca dei prodotti" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Genitore di questo gruppo" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Gruppo di attributi padre" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Nome del gruppo di attributi" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Gruppo di attributi" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Informazioni sull'autenticazione" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "Definire il markup per i prodotti recuperati da questo fornitore" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Percentuale di ricarico del fornitore" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Nome del fornitore" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Nome del fornitore" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Identificatore interno dell'etichetta del prodotto" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Nome del tag" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Nome intuitivo per l'etichetta del prodotto" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Nome del tag" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Etichetta del prodotto" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "tag categoria" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "tag di categoria" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Caricare un'immagine che rappresenti questa categoria" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Categoria immagine" -#: core/models.py:337 +#: core/models.py:338 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:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "Genitore di questa categoria per formare una struttura gerarchica" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Categoria di genitori" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Nome della categoria" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Indicare un nome per questa categoria" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Aggiungere una descrizione dettagliata per questa categoria" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Descrizione della categoria" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "tag che aiutano a descrivere o raggruppare questa categoria" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Priorità" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Nome del marchio" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Nome del marchio" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Caricare un logo che rappresenti questo marchio" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Immagine piccola del marchio" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Caricare un grande logo che rappresenti questo marchio" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Grande immagine del marchio" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Aggiungere una descrizione dettagliata del marchio" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Descrizione del marchio" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Categorie opzionali a cui questo marchio è associato" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Categorie" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Categoria a cui appartiene questo prodotto" +#: core/models.py:514 +msgid "the vendor supplying this product stock" +msgstr "Il venditore che fornisce questo stock di prodotti" -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Associare facoltativamente questo prodotto a un marchio" +#: core/models.py:515 +msgid "associated vendor" +msgstr "Venditore associato" -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Tag che aiutano a descrivere o raggruppare questo prodotto" +#: core/models.py:519 +msgid "final price to the customer after markups" +msgstr "Prezzo finale al cliente dopo i ricarichi" -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Indica se il prodotto è consegnato in formato digitale" +#: core/models.py:520 +msgid "selling price" +msgstr "Prezzo di vendita" -#: core/models.py:549 -msgid "is product digital" -msgstr "Il prodotto è digitale" +#: core/models.py:525 +msgid "the product associated with this stock entry" +msgstr "Il prodotto associato a questa voce di magazzino" -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Fornire un nome identificativo chiaro per il prodotto" - -#: core/models.py:556 -msgid "product name" -msgstr "Nome del prodotto" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Aggiungere una descrizione dettagliata del prodotto" - -#: core/models.py:562 -msgid "product description" -msgstr "Descrizione del prodotto" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Numero di parte per questo prodotto" - -#: core/models.py:570 -msgid "part number" -msgstr "Numero di parte" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Categoria di questo attributo" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Gruppo di questo attributo" - -#: core/models.py:690 -msgid "string" -msgstr "Stringa" - -#: core/models.py:691 -msgid "integer" -msgstr "Intero" - -#: core/models.py:692 -msgid "float" -msgstr "Galleggiante" - -#: core/models.py:693 -msgid "boolean" -msgstr "Booleano" - -#: core/models.py:694 -msgid "array" -msgstr "Array" - -#: core/models.py:695 -msgid "object" -msgstr "Oggetto" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Tipo di valore dell'attributo" - -#: core/models.py:698 -msgid "value type" -msgstr "Tipo di valore" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Nome dell'attributo" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Nome dell'attributo" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Attributo" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Attributo di questo valore" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "Il prodotto specifico associato al valore di questo attributo" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 msgid "associated product" msgstr "Prodotto associato" +#: core/models.py:533 +msgid "the price paid to the vendor for this product" +msgstr "Il prezzo pagato al venditore per questo prodotto" + +#: core/models.py:534 +msgid "vendor purchase price" +msgstr "Prezzo di acquisto del fornitore" + +#: core/models.py:538 +msgid "available quantity of the product in stock" +msgstr "Quantità disponibile del prodotto in magazzino" + +#: core/models.py:539 +msgid "quantity in stock" +msgstr "Quantità in magazzino" + +#: core/models.py:543 +msgid "vendor-assigned SKU for identifying the product" +msgstr "SKU assegnato dal fornitore per identificare il prodotto" + +#: core/models.py:544 +msgid "vendor sku" +msgstr "SKU del venditore" + +#: core/models.py:550 +msgid "digital file associated with this stock if applicable" +msgstr "File digitale associato a questo stock, se applicabile" + +#: core/models.py:551 +msgid "digital file" +msgstr "File digitale" + +#: core/models.py:560 +msgid "stock entries" +msgstr "Voci di magazzino" + +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Categoria a cui appartiene questo prodotto" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Associare facoltativamente questo prodotto a un marchio" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Tag che aiutano a descrivere o raggruppare questo prodotto" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Indica se il prodotto è consegnato in formato digitale" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Il prodotto è digitale" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Fornire un nome identificativo chiaro per il prodotto" + +#: core/models.py:632 +msgid "product name" +msgstr "Nome del prodotto" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Aggiungere una descrizione dettagliata del prodotto" + +#: core/models.py:638 +msgid "product description" +msgstr "Descrizione del prodotto" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Numero di parte per questo prodotto" + +#: core/models.py:646 +msgid "part number" +msgstr "Numero di parte" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Categoria di questo attributo" + #: core/models.py:760 +msgid "group of this attribute" +msgstr "Gruppo di questo attributo" + +#: core/models.py:766 +msgid "string" +msgstr "Stringa" + +#: core/models.py:767 +msgid "integer" +msgstr "Intero" + +#: core/models.py:768 +msgid "float" +msgstr "Galleggiante" + +#: core/models.py:769 +msgid "boolean" +msgstr "Booleano" + +#: core/models.py:770 +msgid "array" +msgstr "Array" + +#: core/models.py:771 +msgid "object" +msgstr "Oggetto" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Tipo di valore dell'attributo" + +#: core/models.py:774 +msgid "value type" +msgstr "Tipo di valore" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Nome dell'attributo" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Nome dell'attributo" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attributo" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Attributo di questo valore" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "Il prodotto specifico associato al valore di questo attributo" + +#: core/models.py:836 msgid "the specific value for this attribute" msgstr "Il valore specifico per questo attributo" -#: core/models.py:794 +#: core/models.py:870 msgid "provide alternative text for the image for accessibility" msgstr "" "Fornire un testo alternativo per l'immagine ai fini dell'accessibilità." -#: core/models.py:795 +#: core/models.py:871 msgid "image alt text" msgstr "Testo alt dell'immagine" -#: core/models.py:798 +#: core/models.py:874 msgid "upload the image file for this product" msgstr "Caricare il file immagine per questo prodotto" -#: core/models.py:799 core/models.py:824 +#: core/models.py:875 core/models.py:900 msgid "product image" msgstr "Immagine del prodotto" -#: core/models.py:805 +#: core/models.py:881 msgid "determines the order in which images are displayed" msgstr "Determina l'ordine di visualizzazione delle immagini" -#: core/models.py:806 +#: core/models.py:882 msgid "display priority" msgstr "Priorità del display" -#: core/models.py:811 +#: core/models.py:887 msgid "the product that this image represents" msgstr "Il prodotto che questa immagine rappresenta" -#: core/models.py:825 +#: core/models.py:901 msgid "product images" msgstr "Immagini del prodotto" -#: core/models.py:866 +#: core/models.py:942 msgid "percentage discount for the selected products" msgstr "Percentuale di sconto per i prodotti selezionati" -#: core/models.py:867 +#: core/models.py:943 msgid "discount percentage" msgstr "Percentuale di sconto" -#: core/models.py:872 +#: core/models.py:948 msgid "provide a unique name for this promotion" msgstr "Fornite un nome unico per questa promozione" -#: core/models.py:873 +#: core/models.py:949 msgid "promotion name" msgstr "Nome della promozione" -#: core/models.py:879 +#: core/models.py:955 msgid "promotion description" msgstr "Descrizione della promozione" -#: core/models.py:884 +#: core/models.py:960 msgid "select which products are included in this promotion" msgstr "Selezionare i prodotti inclusi in questa promozione" -#: core/models.py:885 +#: core/models.py:961 msgid "included products" msgstr "Prodotti inclusi" -#: core/models.py:889 +#: core/models.py:965 msgid "promotion" msgstr "Promozione" -#: core/models.py:924 -msgid "the vendor supplying this product stock" -msgstr "Il venditore che fornisce questo stock di prodotti" - -#: core/models.py:925 -msgid "associated vendor" -msgstr "Venditore associato" - -#: core/models.py:929 -msgid "final price to the customer after markups" -msgstr "Prezzo finale al cliente dopo i ricarichi" - -#: core/models.py:930 -msgid "selling price" -msgstr "Prezzo di vendita" - -#: core/models.py:935 -msgid "the product associated with this stock entry" -msgstr "Il prodotto associato a questa voce di magazzino" - -#: core/models.py:943 -msgid "the price paid to the vendor for this product" -msgstr "Il prezzo pagato al venditore per questo prodotto" - -#: core/models.py:944 -msgid "vendor purchase price" -msgstr "Prezzo di acquisto del fornitore" - -#: core/models.py:948 -msgid "available quantity of the product in stock" -msgstr "Quantità disponibile del prodotto in magazzino" - -#: core/models.py:949 -msgid "quantity in stock" -msgstr "Quantità in magazzino" - -#: core/models.py:953 -msgid "vendor-assigned SKU for identifying the product" -msgstr "SKU assegnato dal fornitore per identificare il prodotto" - -#: core/models.py:954 -msgid "vendor sku" -msgstr "SKU del venditore" - -#: core/models.py:960 -msgid "digital file associated with this stock if applicable" -msgstr "File digitale associato a questo stock, se applicabile" - -#: core/models.py:961 -msgid "digital file" -msgstr "File digitale" - -#: core/models.py:970 -msgid "stock entries" -msgstr "Voci di magazzino" - -#: core/models.py:989 +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Prodotti che l'utente ha contrassegnato come desiderati" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Utente che possiede questa wishlist" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Proprietario della lista dei desideri" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Lista dei desideri" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} non esiste: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documentario" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentari" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Non risolto" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Indirizzo del cliente" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Linea di indirizzo" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Via" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Distretto" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Città" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Regione" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Codice postale" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Paese" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Punto di geolocalizzazione(Longitudine, Latitudine)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Risposta JSON completa di geocoder per questo indirizzo" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Risposta JSON memorizzata dal servizio di geocodifica" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Indirizzo" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Indirizzi" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Identificatore del codice promozionale" -#: core/models.py:1213 -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:1214 +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:1215 msgid "fixed discount amount" msgstr "Importo fisso dello sconto" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Sconto percentuale" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Data di scadenza del codice promozionale" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Tempo di validità finale" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Data a partire dalla quale il codice promozionale è valido" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Ora di inizio validità" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Timestamp d'uso" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Utente assegnato a questo codice promozionale, se applicabile" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Utente assegnato" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Codice promozionale" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Codici promozionali" -#: core/models.py:1260 +#: core/models.py:1261 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." +"È necessario definire un solo tipo di sconto (importo o percentuale), ma non" +" entrambi o nessuno." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Il codice promozionale è già stato utilizzato" -#: core/models.py:1288 +#: core/models.py:1289 #, 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:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "L'indirizzo di fatturazione utilizzato per questo ordine" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Codice promozionale opzionale applicato a questo ordine" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Codice promozionale applicato" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "L'indirizzo di spedizione utilizzato per questo ordine" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Indirizzo di spedizione" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Stato attuale dell'ordine nel suo ciclo di vita" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Stato dell'ordine" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "Rappresentazione JSON degli attributi dell'ordine per questo ordine" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "L'utente che ha effettuato l'ordine" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Utente" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Il timestamp del momento in cui l'ordine è stato finalizzato" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Acquista tempo" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Un identificatore leggibile dall'uomo per l'ordine" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "ID leggibile dall'uomo" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Ordine" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Non è possibile aggiungere prodotti a un ordine che non sia in sospeso." -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Non è possibile aggiungere all'ordine prodotti inattivi" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "" "Non è possibile aggiungere più prodotti di quelli disponibili in magazzino" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} non esiste con la query <{query}>." -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Il codice promozionale non esiste" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "L'indirizzo non esiste" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Valore di forza non valido" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Non è possibile acquistare un ordine vuoto!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "Non è possibile acquistare un ordine senza un utente!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Un utente senza saldo non può acquistare con il saldo!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Fondi insufficienti per completare l'ordine" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1992,7 +1997,7 @@ msgstr "" "seguenti informazioni: nome del cliente, e-mail del cliente, numero di " "telefono del cliente" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2000,110 +2005,115 @@ msgstr "" "Metodo di pagamento non valido: {payment_method} da " "{available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Prezzo di acquisto al momento dell'ordine" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "Commenti interni per gli amministratori su questo prodotto ordinato" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Commenti interni" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Notifiche degli utenti" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "Rappresentazione JSON degli attributi di questo elemento" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Attributi del prodotto ordinati" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Riferimento all'ordine padre che contiene questo prodotto" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Ordine dei genitori" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Il prodotto specifico associato a questa riga d'ordine" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Quantità di questo prodotto specifico nell'ordine" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Quantità di prodotto" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Stato attuale di questo prodotto nell'ordine" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Stato della linea di prodotti" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "L'ordine-prodotto deve avere un ordine associato!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "azione errata specificata per il feedback: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "non è possibile dare un riscontro a un ordine non ricevuto" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Scaricare" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Scaricamento" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Commenti degli utenti sulla loro esperienza con il prodotto" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Commenti di feedback" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Prodotto correlato all'ordine" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Valutazione del prodotto assegnata dall'utente" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Valutazione del prodotto" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Feedback" @@ -2111,8 +2121,8 @@ msgstr "Feedback" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"per aggiungere un feedback è necessario fornire un commento, una valutazione " -"e l'uuid del prodotto dell'ordine." +"per aggiungere un feedback è necessario fornire un commento, una valutazione" +" e l'uuid del prodotto dell'ordine." #: core/signals.py:62 msgid "error during promocode creation: {e!s}" @@ -2120,7 +2130,7 @@ msgstr "Errore durante la creazione del codice promozionale: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2129,7 +2139,7 @@ msgid "order confirmation" msgstr "Conferma dell'ordine" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2146,8 +2156,7 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Grazie per il vostro ordine #%(order.pk)s! Siamo lieti di informarla che " @@ -2155,14 +2164,14 @@ msgstr "" "del vostro ordine:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Totale" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2176,8 +2185,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." msgstr "" -"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero " -"%(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:133 #, python-format @@ -2185,20 +2194,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Cordiali saluti,
il team %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Tutti i diritti riservati" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Ordine consegnato" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2207,7 +2216,7 @@ msgstr "" "Abbiamo elaborato con successo il suo ordine №%(order_uuid)s! Di seguito " "sono riportati i dettagli del suo ordine:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2215,21 +2224,21 @@ msgstr "" "ulteriori\n" " informazioni" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Valore" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero " -"%(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:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Cordiali saluti,
il team %(project_name)s" @@ -2241,8 +2250,7 @@ msgstr "Chiave" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Grazie per il vostro ordine! Siamo lieti di confermare il suo acquisto. Di " @@ -2282,27 +2290,17 @@ msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" "Valore di timeout non valido, deve essere compreso tra 0 e 216000 secondi." -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} deve essere un modello" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} deve essere un oggetto elenco" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Contatti avviati" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Conferma d'ordine" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Ordine consegnato" @@ -2319,22 +2317,22 @@ msgstr "Il parametro NOMINATIM_URL deve essere configurato!" #, 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" +"Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height}" +" pixel" #: core/validators.py:22 msgid "invalid phone number format" msgstr "Formato del numero di telefono non valido" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "È possibile scaricare l'asset digitale una sola volta" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon non trovata" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 683bc591..688be8c7 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 3e9f234c..152e9ece 100644 --- a/core/locale/ja_JP/LC_MESSAGES/django.po +++ b/core/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,120 +13,116 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "ユニークID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" -msgstr "" -"ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" +msgstr "ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "アクティブ" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" -msgstr "" -"falseに設定された場合、このオブジェクトは必要なパーミッションのないユーザーに" -"は見えない。" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "falseに設定された場合、このオブジェクトは必要なパーミッションのないユーザーには見えない。" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "作成" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "そのオブジェクトが初めてデータベースに登場した時" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "変形" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "オブジェクトの最終編集日時" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "翻訳" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "一般" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "関係" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "メタデータ" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "タイムスタンプ" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "選択した %(verbose_name_plural)s をアクティブにする。" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)sは正常に起動しました!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "選択した項目がアクティブになりました!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "選択された %(verbose_name_plural)s を非アクティブにする。" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)sは正常に停止しました。" +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "選択されたアイテムは無効化されました!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "属性値" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "属性値" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "画像" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "画像" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "在庫" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "株式" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "商品のご注文" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "商品のご注文" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "子供たち" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "コンフィグ" @@ -188,8 +184,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "許可されたデータをキャッシュから読み出すには、キーのみを適用する。\n" -"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用" -"する。" +"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用する。" #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -219,9 +214,7 @@ msgstr "ビジネスとして注文を購入する" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "" -"提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスと" -"して注文を購入する。" +msgstr "提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスとして注文を購入する。" #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -244,10 +237,9 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "既存の属性グループを書き換えて、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" -msgstr "" -"既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存す" -"る。" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:70 msgid "list all attributes (simple view)" @@ -271,8 +263,7 @@ msgstr "既存の属性を書き換える。" #: core/docs/drf/viewsets.py:90 msgid "rewrite some fields of an existing attribute saving non-editables" -msgstr "" -"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -295,9 +286,9 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "既存の属性値を書き換える。" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" -msgstr "" -"既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" #: core/docs/drf/viewsets.py:124 msgid "list all categories (simple view)" @@ -333,11 +324,10 @@ msgstr "スタッフ以外のユーザーについては、自分の注文のみ #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"human_readable_id、order_products.product.name、order_products.product." -"partnumberの大文字小文字を区別しない部分文字列検索" +"human_readable_id、order_products.product.name、order_products.product.partnumberの大文字小文字を区別しない部分文字列検索" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -357,8 +347,7 @@ msgstr "人間が読み取れる正確な注文IDによるフィルタリング" #: core/docs/drf/viewsets.py:185 msgid "Filter by user's email (case-insensitive exact match)" -msgstr "" -"ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" +msgstr "ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" #: core/docs/drf/viewsets.py:190 msgid "Filter by user's UUID" @@ -366,19 +355,15 @@ msgstr "ユーザーのUUIDによるフィルタリング" #: core/docs/drf/viewsets.py:195 msgid "Filter by order status (case-insensitive substring match)" -msgstr "" -"注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッ" -"チ)" +msgstr "注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッチ)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"uuid、human_readable_id、user_email、user、status、created、modified、" -"buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつ" -"ける(例:'-buy_time')。" +"uuid、human_readable_id、user_email、user、status、created、modified、buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつける(例:'-buy_time')。" #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -414,9 +399,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用し" -"て購入が完了します。 `force_payment` が使用された場合、トランザクションが開始" -"されます。" +"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用して購入が完了します。 `force_payment` " +"が使用された場合、トランザクションが開始されます。" #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 msgid "purchase an order without account creation" @@ -434,8 +418,7 @@ msgstr "注文に商品を追加する" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" +msgstr "指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" #: core/docs/drf/viewsets.py:260 msgid "add a list of products to order, quantities will not count" @@ -445,9 +428,7 @@ msgstr "数量はカウントされません。" msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定された `product_uuid` と `attributes` を使用して、注文に商品のリストを追" -"加する。" +msgstr "指定された `product_uuid` と `attributes` を使用して、注文に商品のリストを追加する。" #: core/docs/drf/viewsets.py:266 msgid "remove product from order" @@ -457,9 +438,7 @@ msgstr "注文から商品を削除する" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定された `product_uuid` と `attributes` を使用して、注文から商品を削除す" -"る。" +msgstr "指定された `product_uuid` と `attributes` を使用して、注文から商品を削除する。" #: core/docs/drf/viewsets.py:272 msgid "remove product from order, quantities will not count" @@ -469,9 +448,7 @@ msgstr "注文から商品を削除すると、数量はカウントされませ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "" -"指定された `product_uuid` と `attributes` を用いて、注文から商品のリストを削" -"除する。" +msgstr "指定された `product_uuid` と `attributes` を用いて、注文から商品のリストを削除する。" #: core/docs/drf/viewsets.py:281 msgid "list all wishlists (simple view)" @@ -503,8 +480,7 @@ msgstr "既存の属性を書き換える。" #: core/docs/drf/viewsets.py:303 msgid "rewrite some fields of an existing wishlist saving non-editables" -msgstr "" -"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -520,8 +496,7 @@ msgstr "ウィッシュリストから商品を削除する" #: core/docs/drf/viewsets.py:314 msgid "removes a product from an wishlist using the provided `product_uuid`" -msgstr "" -"指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" +msgstr "指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" #: core/docs/drf/viewsets.py:319 msgid "add many products to wishlist" @@ -529,8 +504,7 @@ msgstr "ウィッシュリストに多くの商品を追加する" #: core/docs/drf/viewsets.py:320 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "" -"指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" +msgstr "指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" #: core/docs/drf/viewsets.py:325 msgid "remove many products from wishlist" @@ -539,34 +513,24 @@ msgstr "注文から商品を削除する" #: core/docs/drf/viewsets.py:326 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "" -"指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" +msgstr "指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" #: core/docs/drf/viewsets.py:333 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "1つまたは複数の属性名/値のペアでフィルタリングします。 \n" "- シンタックス**:attr_name=method-value[;attr2=method2-value2]...`。\n" -"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場" -"合は文字列として扱う。 \n" -"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとして" -"つけると、生の値を URL-safe base64-encode することができる。 \n" +"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場合は文字列として扱う。 \n" +"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとしてつけると、生の値を URL-safe base64-encode することができる。 \n" "例 \n" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\", \"bluetooth\"]`、\n" "b64-description=icontains-aGVhdC1jb2xk`。" @@ -621,12 +585,10 @@ msgstr "(正確には)デジタルとフィジカル" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスと" -"してつける。 \n" +"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスとしてつける。 \n" "**許可:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -650,9 +612,7 @@ msgstr "編集不可能なフィールドを保持したまま、既存の製品 #: core/docs/drf/viewsets.py:478 msgid "" "update some fields of an existing product, preserving non-editable fields" -msgstr "" -"編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新す" -"る。" +msgstr "編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新する。" #: core/docs/drf/viewsets.py:493 msgid "delete a product" @@ -693,8 +653,8 @@ msgstr "オートコンプリート住所入力" #: core/docs/drf/viewsets.py:576 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l n-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a payments -a vibes_auth -a blog" @@ -724,9 +684,7 @@ msgstr "既存のフィードバックを書き換える。" #: core/docs/drf/viewsets.py:615 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "" -"既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保" -"存する。" +msgstr "既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:622 msgid "list all order–product relations (simple view)" @@ -804,8 +762,8 @@ msgstr "属性" msgid "Quantity" msgstr "数量" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "スラッグ" @@ -819,8 +777,7 @@ msgstr "サブカテゴリーを含む" #: core/filters.py:147 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "" -"include_subcategoriesフラグを使うには、category_uuidがなければならない。" +msgstr "include_subcategoriesフラグを使うには、category_uuidがなければならない。" #: core/filters.py:280 msgid "Search (ID, product name or part number)" @@ -887,7 +844,7 @@ msgstr "キャッシュ・データ" msgid "camelized JSON data from the requested URL" msgstr "リクエストされたURLからキャメル化されたJSONデータ" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "http(s)://で始まるURLのみが許可されます。" @@ -918,7 +875,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "order_uuidまたはorder_hr_idを入力してください!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "order.buy()メソッドから間違った型が来た:{type(instance)!s}。" @@ -962,16 +919,15 @@ msgstr "注文する" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" -msgstr "" -"属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "ユーザーが提供したオリジナルのアドレス文字列" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} は存在しません:{uuid} は存在しません。" @@ -984,1082 +940,1092 @@ msgstr "上限は1から10の間でなければならない" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 魅力のように動作" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "属性" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "グループ化された属性" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "属性のグループ" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "カテゴリー" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "ブランド" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "カテゴリー" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "マークアップ率" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "このカテゴリのフィルタリングに使用できる属性と値。" -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "このカテゴリーの商品の最低価格と最高価格がある場合。" -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "このカテゴリのタグ" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "このカテゴリの製品" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "ベンダー" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "緯度(Y座標)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "経度(X座標)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "どのように" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "1から10までの評価値(設定されていない場合は0)。" -#: core/graphene/object_types.py:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "ユーザーからのフィードバックを表す。" -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "お知らせ" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "該当する場合は、この注文商品のダウンロードURLを入力してください。" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "注文商品のリスト" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "請求先住所" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "請求先住所と同じ場合、または該当しない場合は空白にしてください。" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "この注文の合計金額" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "注文商品の総数量" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "ご注文の商品はすべてデジタルですか?" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "この注文の取引" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "受注状況" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "画像URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "製品画像" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "カテゴリー" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "フィードバック" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "ブランド" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "属性グループ" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "価格" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "数量" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "フィードバック数" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "製品紹介" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "プロモコード" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "販売商品" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "プロモーション" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "ベンダー" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "製品" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "ウィッシュリスト掲載商品" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "ウィッシュリスト" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "タグ別アーカイブ" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "商品タグ" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "タグ別アーカイブ" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "カテゴリー' タグ" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "プロジェクト名" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "会社Eメール" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "会社名" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "会社住所" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "会社電話番号" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 msgid "email from, sometimes it must be used instead of host user value" msgstr "'email from' は、ホストユーザの値の代わりに使用されることがあります。" -#: core/graphene/object_types.py:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "メールホストユーザー" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "支払限度額" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "最低支払額" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "分析データ" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "広告データ" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "構成" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "言語コード" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "言語名" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "言語フラグがある場合 :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "サポートされている言語のリストを取得する" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "製品検索結果" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "製品検索結果" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "このグループの親" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "親属性グループ" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "属性グループ名" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "属性グループ" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "ベンダーのAPI通信に必要な認証情報とエンドポイントを保存する。" -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "認証情報" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "このベンダーから取得した商品のマークアップを定義する。" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "ベンダーのマークアップ率" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "このベンダーの名前" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "ベンダー名" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "商品タグの内部タグ識別子" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "タグ名" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "商品タグのユーザーフレンドリーな名前" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "タグ表示名" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "商品タグ" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "カテゴリタグ" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "カテゴリータグ" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "このカテゴリーを表す画像をアップロードする" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "カテゴリーイメージ" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "このカテゴリの商品のマークアップ率を定義する" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "階層構造を形成するこのカテゴリの親" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "親カテゴリー" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "カテゴリー名" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "このカテゴリの名前を入力してください。" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "このカテゴリの詳細説明を追加する" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "カテゴリー説明" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "このカテゴリーを説明またはグループ化するのに役立つタグ" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "優先順位" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "ブランド名" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "ブランド名" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "このブランドを代表するロゴをアップロードする" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "小さなブランドイメージ" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "このブランドを象徴する大きなロゴをアップロードする" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "大きなブランドイメージ" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "ブランドの詳細な説明を加える" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "ブランド説明" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "このブランドが関連するオプション・カテゴリー" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "カテゴリー" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "この製品が属するカテゴリ" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "オプションでこの製品をブランドと関連付ける" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "この商品の説明やグループ分けに役立つタグ" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "この製品がデジタル配信されるかどうかを示す" - -#: core/models.py:549 -msgid "is product digital" -msgstr "製品はデジタルか" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "製品の明確な識別名を提供する" - -#: core/models.py:556 -msgid "product name" -msgstr "商品名" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "商品の詳細説明を追加する" - -#: core/models.py:562 -msgid "product description" -msgstr "商品説明" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "この製品の品番" - -#: core/models.py:570 -msgid "part number" -msgstr "品番" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "この属性のカテゴリー" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "この属性のグループ" - -#: core/models.py:690 -msgid "string" -msgstr "ストリング" - -#: core/models.py:691 -msgid "integer" -msgstr "整数" - -#: core/models.py:692 -msgid "float" -msgstr "フロート" - -#: core/models.py:693 -msgid "boolean" -msgstr "ブーリアン" - -#: core/models.py:694 -msgid "array" -msgstr "配列" - -#: core/models.py:695 -msgid "object" -msgstr "対象" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "属性値のタイプ" - -#: core/models.py:698 -msgid "value type" -msgstr "値の種類" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "この属性の名前" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "属性名" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "属性" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "この値の属性" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "この属性の値に関連する特定の製品" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "関連製品" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "この属性の具体的な値" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "アクセシビリティのために、画像に代替テキストを提供する。" - -#: core/models.py:795 -msgid "image alt text" -msgstr "画像のaltテキスト" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "この商品の画像ファイルをアップロードする" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "商品画像" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "画像の表示順を決める" - -#: core/models.py:806 -msgid "display priority" -msgstr "表示優先度" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "この画像が表す製品" - -#: core/models.py:825 -msgid "product images" -msgstr "商品画像" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "選択した商品の割引率" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "割引率" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "このプロモーションのユニークな名前を入力してください。" - -#: core/models.py:873 -msgid "promotion name" -msgstr "プロモーション名" - -#: core/models.py:879 -msgid "promotion description" -msgstr "プロモーション内容" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "キャンペーン対象商品をお選びください。" - -#: core/models.py:885 -msgid "included products" -msgstr "含まれる製品" - -#: core/models.py:889 -msgid "promotion" -msgstr "プロモーション" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "この製品の在庫を供給しているベンダー" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "関連ベンダー" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "マークアップ後の顧客への最終価格" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "販売価格" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "このストックエントリーに関連する製品" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "関連製品" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "この製品に対してベンダーに支払われた価格" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "ベンダーの購入価格" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "在庫数" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "在庫数" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "製品を識別するためにベンダーが割り当てたSKU" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "ベンダーのSKU" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "この銘柄に関連するデジタルファイル(該当する場合" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "デジタルファイル" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "ストックエントリー" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "この製品が属するカテゴリ" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "オプションでこの製品をブランドと関連付ける" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "この商品の説明やグループ分けに役立つタグ" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "この製品がデジタル配信されるかどうかを示す" + +#: core/models.py:625 +msgid "is product digital" +msgstr "製品はデジタルか" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "製品の明確な識別名を提供する" + +#: core/models.py:632 +msgid "product name" +msgstr "商品名" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "商品の詳細説明を追加する" + +#: core/models.py:638 +msgid "product description" +msgstr "商品説明" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "この製品の品番" + +#: core/models.py:646 +msgid "part number" +msgstr "品番" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "この属性のカテゴリー" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "この属性のグループ" + +#: core/models.py:766 +msgid "string" +msgstr "ストリング" + +#: core/models.py:767 +msgid "integer" +msgstr "整数" + +#: core/models.py:768 +msgid "float" +msgstr "フロート" + +#: core/models.py:769 +msgid "boolean" +msgstr "ブーリアン" + +#: core/models.py:770 +msgid "array" +msgstr "配列" + +#: core/models.py:771 +msgid "object" +msgstr "対象" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "属性値のタイプ" + +#: core/models.py:774 +msgid "value type" +msgstr "値の種類" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "この属性の名前" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "属性名" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "属性" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "この値の属性" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "この属性の値に関連する特定の製品" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "この属性の具体的な値" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "アクセシビリティのために、画像に代替テキストを提供する。" + +#: core/models.py:871 +msgid "image alt text" +msgstr "画像のaltテキスト" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "この商品の画像ファイルをアップロードする" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "商品画像" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "画像の表示順を決める" + +#: core/models.py:882 +msgid "display priority" +msgstr "表示優先度" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "この画像が表す製品" + +#: core/models.py:901 +msgid "product images" +msgstr "商品画像" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "選択した商品の割引率" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "割引率" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "このプロモーションのユニークな名前を入力してください。" + +#: core/models.py:949 +msgid "promotion name" +msgstr "プロモーション名" + +#: core/models.py:955 +msgid "promotion description" +msgstr "プロモーション内容" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "キャンペーン対象商品をお選びください。" + +#: core/models.py:961 +msgid "included products" +msgstr "含まれる製品" + +#: core/models.py:965 +msgid "promotion" +msgstr "プロモーション" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "ユーザーが欲しいとマークした商品" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "このウィッシュリストを所有しているユーザー" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "ウィッシュリストのオーナー" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "ウィッシュリスト" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name}が存在しません:{product_uuid}が存在しません。" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "ドキュメンタリー" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "ドキュメンタリー" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "未解決" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "お客様の住所" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "住所" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "ストリート" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "地区" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "都市" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "地域" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "郵便番号" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "国名" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "ジオロケーションポイント(経度、緯度)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "この住所に対するジオコーダーからの完全なJSON応答" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "ジオコーディング・サービスからの保存されたJSONレスポンス" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "住所" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "住所" -#: core/models.py:1205 +#: core/models.py:1206 msgid "unique code used by a user to redeem a discount" msgstr "ユーザーが割引を利用する際に使用する固有のコード" -#: core/models.py:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "プロモコード識別子" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "パーセントを使用しない場合に適用される固定割引額" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "固定割引額" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "定額を使用しない場合に適用される割引率" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "割引率" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "プロモコードの有効期限が切れるタイムスタンプ" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "終了有効時間" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "このプロモコードが有効なタイムスタンプ" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "開始有効時間" -#: core/models.py:1238 +#: core/models.py:1239 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白" -#: core/models.py:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "使用タイムスタンプ" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "該当する場合、このプロモコードに割り当てられたユーザー" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "担当ユーザー" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "プロモコード" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "プロモコード" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "" -"割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちら" -"も定義してはならない。" +msgstr "割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちらも定義してはならない。" -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "プロモコードはすでに使用されています" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "プロモコード {self.uuid} の割引タイプが無効です。" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "この注文に使用される請求先住所" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "この注文に適用されるプロモコード" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "プロモーションコード適用" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "この注文に使用された配送先住所" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "配送先住所" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "ライフサイクルにおける現在の注文状況" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "注文状況" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 msgid "json structure of notifications to display to users" -msgstr "" -"ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" +msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" -#: core/models.py:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "この注文の注文属性のJSON表現" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "注文を行ったユーザー" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "ユーザー" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "注文が確定したタイムスタンプ" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "時間を買う" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "オーダーの人間が読み取り可能な識別子。" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "人間が読めるID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "オーダー" -#: core/models.py:1403 +#: core/models.py:1404 msgid "a user must have only one pending order at a time" msgstr "ユーザーは一度に1つの未決注文しか持つことができません!" -#: core/models.py:1437 +#: core/models.py:1438 msgid "you cannot add products to an order that is not a pending one" msgstr "保留中の注文以外の注文に商品を追加することはできません。" -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "アクティブでない商品を注文に追加することはできません。" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "在庫以上の商品を追加することはできません。" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 msgid "you cannot remove products from an order that is not a pending one" msgstr "保留中の注文以外の注文から商品を削除することはできません。" -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "クエリ<{query}>で{name}が存在しません。" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "プロモコードが存在しない" -#: core/models.py:1540 +#: core/models.py:1541 msgid "you can only buy physical products with shipping address specified" msgstr "配送先住所が指定された現物商品のみ購入可能!" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "アドレスが存在しない" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "現在ご購入いただけません。数分後にもう一度お試しください。" -#: core/models.py:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "無効なフォース値" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "空注文はできません!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "ユーザーがいない注文は購入できない!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "残高のないユーザーは、残高で購入することはできない!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "注文を完了するための資金不足" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -msgstr "" -"ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お" -"客様のお名前、お客様のEメール、お客様の電話番号" +msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お客様のお名前、お客様のEメール、お客様の電話番号" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "" -"支払方法が無効です:{available_payment_methods}からの{payment_method}が無効で" -"す!" +msgstr "支払方法が無効です:{available_payment_methods}からの{payment_method}が無効です!" -#: core/models.py:1733 +#: core/models.py:1740 msgid "the price paid by the customer for this product at purchase time" msgstr "この商品の購入時に顧客が支払った価格" -#: core/models.py:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "注文時の購入価格" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "この注文商品に関する管理者への内部コメント" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "社内コメント" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "ユーザー通知" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "このアイテムの属性のJSON表現" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "製品属性の順序" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "この商品を含む親注文への参照" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "親注文" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "この注文ラインに関連する特定の製品" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "注文に含まれる特定の商品の数量" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "製品数量" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "この商品の現在のご注文状況" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "製品ラインの状況" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Orderproductには関連する注文がなければならない!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "フィードバックに指定されたアクションが間違っています:{action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "受信していない注文をフィードバックすることはできません。" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "ダウンロード" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "ダウンロード" -#: core/models.py:1891 +#: core/models.py:1904 msgid "you can not download a digital asset for a non-finished order" msgstr "未完成の注文のデジタル資産をダウンロードすることはできません。" -#: core/models.py:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "ユーザーから寄せられた製品使用体験に関するコメント" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "フィードバック・コメント" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "このフィードバックが対象としている注文の特定の製品を参照する。" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "関連注文商品" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "ユーザーによる製品の評価" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "製品評価" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "フィードバック" #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." -msgstr "" -"フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力す" -"る必要があります。" +msgstr "フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力する必要があります。" #: core/signals.py:62 msgid "error during promocode creation: {e!s}" @@ -2067,7 +2033,7 @@ msgstr "プロモコード作成中にエラーが発生しました:{e!s}で #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2076,7 +2042,7 @@ msgid "order confirmation" msgstr "ご注文の確認" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2093,22 +2059,19 @@ msgstr "こんにちは、%(order.user.first_name)sです、" #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" -msgstr "" -"ご注文ありがとうございます#%(order.pk)s!ご注文を承りましたことをお知らせいた" -"します。以下、ご注文の詳細です:" +msgstr "ご注文ありがとうございます#%(order.pk)s!ご注文を承りましたことをお知らせいたします。以下、ご注文の詳細です:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "合計" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2121,9 +2084,7 @@ msgstr "合計価格" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "" -"ご不明な点がございましたら、%(config.EMAIL_HOST_USER)sまでお気軽にお問い合わ" -"せください。" +msgstr "ご不明な点がございましたら、%(config.EMAIL_HOST_USER)sまでお気軽にお問い合わせください。" #: core/templates/digital_order_created_email.html:133 #, python-format @@ -2131,28 +2092,27 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "よろしくお願いします、
%(config.PROJECT_NAME)sのチーム。" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "無断複写・転載を禁じます。" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "注文の配達" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "こんにちは、%(user_first_name)sです、" -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" -msgstr "" -"ご注文の№%(order_uuid)sが正常に処理されました!以下はご注文の詳細です:" +msgstr "ご注文の№%(order_uuid)sが正常に処理されました!以下はご注文の詳細です:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2160,21 +2120,19 @@ msgstr "" "追加\n" " 追加情報" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "価値" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." -msgstr "" -"ご不明な点がございましたら、%(contact_email)sまでお気軽にお問い合わせくださ" -"い。" +msgstr "ご不明な点がございましたら、%(contact_email)sまでお気軽にお問い合わせください。" -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "よろしくお願いします、
%(project_name)sのチーム。" @@ -2186,12 +2144,9 @@ msgstr "キー" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" -msgstr "" -"ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の" -"詳細です:" +msgstr "ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の詳細です:" #: core/templates/shipped_order_created_email.html:123 #: core/templates/shipped_order_delivered_email.html:123 @@ -2226,27 +2181,17 @@ msgstr "データとタイムアウトの両方が必要" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "無効なタイムアウト値です。" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model}はモデルでなければならない" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data}はリストオブジェクトでなければならない" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | お問い合わせ| お問い合わせ" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME}|注文確認| 注文確認" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME}|プロジェクト名| 注文の配信" @@ -2268,15 +2213,15 @@ msgstr "画像の寸法は、w{max_width} x h{max_height}ピクセルを超え msgid "invalid phone number format" msgstr "無効な電話番号形式" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "デジタルアセットのダウンロードは1回限りです。" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "ファビコンが見つかりません" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 845780f1..4c537cbd 100644 --- a/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/core/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,117 +16,115 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" "if set to false, this object can't be seen by users without needed permission" msgstr "" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" +#: core/admin.py:90 +msgid "selected items have been activated." msgstr "" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." +#: core/admin.py:95 +msgid "selected items have been deactivated." msgstr "" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "" @@ -750,8 +748,8 @@ msgstr "" msgid "Quantity" msgstr "" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 core/models.py:471 +#: core/models.py:662 msgid "Slug" msgstr "" @@ -832,7 +830,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -863,7 +861,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "" @@ -915,7 +913,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "" @@ -928,1066 +926,1082 @@ msgstr "" msgid "elasticsearch - works like a charm" msgstr "" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" -#: core/graphene/object_types.py:133 +#: core/graphene/object_types.py:135 msgid "minimum and maximum prices for products in this category, if available." msgstr "" -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" -#: core/graphene/object_types.py:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "" -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -#: core/graphene/object_types.py:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "" - -#: core/models.py:549 -msgid "is product digital" -msgstr "" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "" - -#: core/models.py:556 -msgid "product name" -msgstr "" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "" - -#: core/models.py:562 -msgid "product description" -msgstr "" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "" - -#: core/models.py:570 -msgid "part number" -msgstr "" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "" - -#: core/models.py:690 -msgid "string" -msgstr "" - -#: core/models.py:691 -msgid "integer" -msgstr "" - -#: core/models.py:692 -msgid "float" -msgstr "" - -#: core/models.py:693 -msgid "boolean" -msgstr "" - -#: core/models.py:694 -msgid "array" -msgstr "" - -#: core/models.py:695 -msgid "object" -msgstr "" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "" - -#: core/models.py:698 -msgid "value type" -msgstr "" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "" - -#: core/models.py:795 -msgid "image alt text" -msgstr "" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "" - -#: core/models.py:806 -msgid "display priority" -msgstr "" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "" - -#: core/models.py:825 -msgid "product images" -msgstr "" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "" - -#: core/models.py:873 -msgid "promotion name" -msgstr "" - -#: core/models.py:879 -msgid "promotion description" -msgstr "" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "" - -#: core/models.py:885 -msgid "included products" -msgstr "" - -#: core/models.py:889 -msgid "promotion" -msgstr "" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 core/models.py:1775 +msgid "associated product" +msgstr "" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "" + +#: core/models.py:625 +msgid "is product digital" +msgstr "" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "" + +#: core/models.py:632 +msgid "product name" +msgstr "" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "" + +#: core/models.py:638 +msgid "product description" +msgstr "" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "" + +#: core/models.py:646 +msgid "part number" +msgstr "" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "" + +#: core/models.py:766 +msgid "string" +msgstr "" + +#: core/models.py:767 +msgid "integer" +msgstr "" + +#: core/models.py:768 +msgid "float" +msgstr "" + +#: core/models.py:769 +msgid "boolean" +msgstr "" + +#: core/models.py:770 +msgid "array" +msgstr "" + +#: core/models.py:771 +msgid "object" +msgstr "" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "" + +#: core/models.py:774 +msgid "value type" +msgstr "" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "" + +#: core/models.py:871 +msgid "image alt text" +msgstr "" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "" + +#: core/models.py:882 +msgid "display priority" +msgstr "" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "" + +#: core/models.py:901 +msgid "product images" +msgstr "" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "" + +#: core/models.py:949 +msgid "promotion name" +msgstr "" + +#: core/models.py:955 +msgid "promotion description" +msgstr "" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "" + +#: core/models.py:961 +msgid "included products" +msgstr "" + +#: core/models.py:965 +msgid "promotion" +msgstr "" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "" -#: core/models.py:1205 +#: core/models.py:1206 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "" -#: core/models.py:1238 +#: core/models.py:1239 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "" -#: core/models.py:1403 +#: core/models.py:1404 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1437 +#: core/models.py:1438 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "" -#: core/models.py:1540 +#: core/models.py:1541 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1733 +#: core/models.py:1740 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "" -#: core/models.py:1891 +#: core/models.py:1904 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "" -#: core/models.py:1929 +#: core/models.py:1942 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "" @@ -2002,7 +2016,7 @@ msgstr "" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2011,7 +2025,7 @@ msgid "order confirmation" msgstr "" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2034,14 +2048,14 @@ msgid "" msgstr "" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2062,45 +2076,45 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "" -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" msgstr "" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "" @@ -2148,27 +2162,17 @@ msgstr "" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "" @@ -2190,15 +2194,15 @@ msgstr "" msgid "invalid phone number format" msgstr "" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 a8a6ee7b..3c58af88 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 aa77a4ec..76b5829c 100644 --- a/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/core/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,119 +13,118 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Uniek ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "Unieke ID wordt gebruikt om elk databaseobject te identificeren" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Is actief" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Als false is ingesteld, kan dit object niet worden gezien door gebruikers " "zonder de benodigde toestemming" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Gemaakt" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Wanneer het object voor het eerst in de database verscheen" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Gewijzigd" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Wanneer het object voor het laatst bewerkt is" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Vertalingen" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Algemeen" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relaties" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metagegevens" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Tijdstempels" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activeer geselecteerde %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s met succes geactiveerd!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Geselecteerde items zijn geactiveerd!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactiveer geselecteerde %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s met succes gedeactiveerd." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Geselecteerde items zijn gedeactiveerd!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Attribuut Waarde" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Attribuutwaarden" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Afbeelding" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Afbeeldingen" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Voorraad" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Aandelen" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Product bestellen" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Producten bestellen" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Kinderen" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Config" @@ -187,8 +186,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Alleen een sleutel gebruiken om toegestane gegevens uit de cache te lezen.\n" -"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de " -"cache te schrijven." +"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de cache te schrijven." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -246,7 +244,8 @@ msgstr "" "opslaan" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -301,7 +300,8 @@ msgstr "" "attributen worden opgeslagen" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -339,15 +339,16 @@ msgstr "Alle categorieën weergeven (eenvoudige weergave)" #: core/docs/drf/viewsets.py:152 msgid "for non-staff users, only their own orders are returned." msgstr "" -"Voor niet-personeelsleden worden alleen hun eigen bestellingen geretourneerd." +"Voor niet-personeelsleden worden alleen hun eigen bestellingen " +"geretourneerd." #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Hoofdlettergevoelig substring zoeken in human_readable_id, order_products." -"product.name en order_products.product.partnumber" +"Hoofdlettergevoelig substring zoeken in human_readable_id, " +"order_products.product.name en order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -380,13 +381,13 @@ msgstr "Filter op bestelstatus (hoofdlettergevoelige substringmatch)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sorteer op een van: uuid, human_readable_id, user_email, gebruiker, status, " -"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend " -"(bijv. '-buy_time')." +"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend" +" (bijv. '-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -435,7 +436,8 @@ msgstr "een bestelling kopen zonder een account aan te maken" #: core/docs/drf/viewsets.py:246 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"Rondt de aankoop van de bestelling af voor een niet-geregistreerde gebruiker." +"Rondt de aankoop van de bestelling af voor een niet-geregistreerde " +"gebruiker." #: core/docs/drf/viewsets.py:254 msgid "add product to order" @@ -569,28 +571,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter op een of meer attribuutnaam-/waardeparen. \n" "- **Syntaxis**: `attr_name=methode-waarde[;attr2=methode2-waarde2]...`\n" -"- **Methodes** (standaard op `icontains` indien weggelaten): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Waarde typen**: JSON wordt eerst geprobeerd (zodat je lijsten/dicten kunt " -"doorgeven), `true`/`false` voor booleans, integers, floats; anders behandeld " -"als string. \n" -"- **Base64**: prefix met `b64-` om URL-veilige base64-encodering van de ruwe " -"waarde. \n" +"- **Methodes** (standaard op `icontains` indien weggelaten): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Waarde typen**: JSON wordt eerst geprobeerd (zodat je lijsten/dicten kunt doorgeven), `true`/`false` voor booleans, integers, floats; anders behandeld als string. \n" +"- **Base64**: prefix met `b64-` om URL-veilige base64-encodering van de ruwe waarde. \n" "Voorbeelden: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -645,14 +637,11 @@ msgstr "(exact) Digitaal vs. fysiek" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" 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" +"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:441 msgid "retrieve a single product (detailed view)" @@ -760,7 +749,8 @@ msgstr "alle order-productrelaties weergeven (eenvoudige weergave)" #: core/docs/drf/viewsets.py:629 msgid "retrieve a single order–product relation (detailed view)" -msgstr "een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" +msgstr "" +"een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" #: core/docs/drf/viewsets.py:636 msgid "create a new order–product relation" @@ -830,8 +820,8 @@ msgstr "Attributen" msgid "Quantity" msgstr "Hoeveelheid" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Slak" @@ -913,7 +903,7 @@ msgstr "Gecachte gegevens" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-gegevens van de opgevraagde URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Alleen URL's die beginnen met http(s):// zijn toegestaan" @@ -944,7 +934,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Geef order_uuid of order_hr_id - wederzijds exclusief!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Verkeerd type kwam uit order.buy() methode: {type(instance)!s}" @@ -988,8 +978,8 @@ msgstr "Een bestelling kopen" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"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" @@ -997,7 +987,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "Originele adresstring geleverd door de gebruiker" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} bestaat niet: {uuid}" @@ -1010,99 +1000,100 @@ msgstr "Limiet moet tussen 1 en 10 liggen" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - werkt als een charme" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Attributen" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Gegroepeerde kenmerken" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Groepen van kenmerken" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Categorieën" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Merken" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Categorieën" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Opwaarderingspercentage" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Welke attributen en waarden kunnen worden gebruikt om deze categorie te " "filteren." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimale en maximale prijzen voor producten in deze categorie, indien " "beschikbaar." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tags voor deze categorie" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Producten in deze categorie" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Verkopers" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Breedtegraad (Y-coördinaat)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Lengtegraad (X-coördinaat)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Hoe" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Vertegenwoordigt feedback van een gebruiker." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Meldingen" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "Download url voor dit bestelproduct indien van toepassing" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Een lijst met bestelde producten in deze bestelling" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Factuuradres" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1110,877 +1101,893 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Totale prijs van deze bestelling" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Totale hoeveelheid producten in bestelling" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Zijn alle producten in de bestelling digitaal" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transacties voor deze bestelling" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Bestellingen" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Afbeelding URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Afbeeldingen van het product" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Reacties" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Merk" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Attribuutgroepen" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Prijs" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Hoeveelheid" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Aantal terugkoppelingen" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Producten" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Producten te koop" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promoties" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Verkoper" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Product" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Gewenste producten" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Verlanglijst" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Getagde producten" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Product tags" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Getagde categorieën" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Categorieën' tags" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Naam project" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Bedrijf E-mail" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Bedrijfsnaam" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Adres" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Telefoonnummer bedrijf" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Gebruiker e-mail hosten" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Maximumbedrag voor betaling" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Minimumbedrag voor betaling" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Analytics-gegevens" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Advertentiegegevens" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configuratie" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Taalcode" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Naam van de taal" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Taalvlag, indien aanwezig :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Een lijst met ondersteunde talen opvragen" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Producten zoekresultaten" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Zoekresultaten" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Ouder van deze groep" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Ouderattribuutgroep" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Naam attribuutgroep" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Attribuutgroep" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Authenticatie-info" -#: core/models.py:153 +#: core/models.py:155 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:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Verkoper winstpercentage" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Naam van deze verkoper" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Naam verkoper" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Interne tagidentifier voor de producttag" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Tag naam" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Gebruiksvriendelijke naam voor de producttag" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Tag weergavenaam" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Productlabel" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "categorie tag" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "categorie tags" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Upload een afbeelding die deze categorie vertegenwoordigt" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Categorie afbeelding" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "Definieer een toeslagpercentage voor producten in deze categorie" -#: core/models.py:346 +#: core/models.py:347 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:347 +#: core/models.py:348 msgid "parent category" msgstr "Oudercategorie" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Naam categorie" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Geef deze categorie een naam" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Voeg een gedetailleerde beschrijving toe voor deze categorie" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Categorie beschrijving" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "tags die deze categorie helpen beschrijven of groeperen" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Prioriteit" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Naam van dit merk" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Merknaam" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Upload een logo dat dit merk vertegenwoordigt" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Klein merkimago" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Upload een groot logo dat dit merk vertegenwoordigt" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Groot merkimago" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Een gedetailleerde beschrijving van het merk toevoegen" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Merknaam" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Optionele categorieën waarmee dit merk wordt geassocieerd" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Categorieën" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Categorie waartoe dit product behoort" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Dit product optioneel koppelen aan een merk" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Tags die dit product helpen beschrijven of groeperen" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Geeft aan of dit product digitaal wordt geleverd" - -#: core/models.py:549 -msgid "is product digital" -msgstr "Is product digitaal" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Zorg voor een duidelijke identificerende naam voor het product" - -#: core/models.py:556 -msgid "product name" -msgstr "Naam product" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Voeg een gedetailleerde beschrijving van het product toe" - -#: core/models.py:562 -msgid "product description" -msgstr "Productbeschrijving" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Onderdeelnummer voor dit product" - -#: core/models.py:570 -msgid "part number" -msgstr "Onderdeelnummer" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Categorie van dit kenmerk" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Groep van dit kenmerk" - -#: core/models.py:690 -msgid "string" -msgstr "String" - -#: core/models.py:691 -msgid "integer" -msgstr "Integer" - -#: core/models.py:692 -msgid "float" -msgstr "Vlotter" - -#: core/models.py:693 -msgid "boolean" -msgstr "Booleaans" - -#: core/models.py:694 -msgid "array" -msgstr "Array" - -#: core/models.py:695 -msgid "object" -msgstr "Object" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Type waarde van het kenmerk" - -#: core/models.py:698 -msgid "value type" -msgstr "Waardetype" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Naam van dit kenmerk" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Naam attribuut" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Attribuut" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Attribuut van deze waarde" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Bijbehorend product" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "De specifieke waarde voor dit kenmerk" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" - -#: core/models.py:795 -msgid "image alt text" -msgstr "Alt-tekst afbeelding" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Upload het afbeeldingsbestand voor dit product" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Product afbeelding" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" - -#: core/models.py:806 -msgid "display priority" -msgstr "Prioriteit weergeven" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "Het product dat deze afbeelding vertegenwoordigt" - -#: core/models.py:825 -msgid "product images" -msgstr "Product afbeeldingen" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Kortingspercentage voor de geselecteerde producten" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Kortingspercentage" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Geef deze promotie een unieke naam" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Naam promotie" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Promotie beschrijving" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Selecteer welke producten onder deze promotie vallen" - -#: core/models.py:885 -msgid "included products" -msgstr "Meegeleverde producten" - -#: core/models.py:889 -msgid "promotion" -msgstr "Promotie" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "De verkoper die dit product levert" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Geassocieerde verkoper" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Eindprijs voor de klant na winstmarges" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Verkoopprijs" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "Het product dat bij deze voorraadvermelding hoort" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Bijbehorend product" + +#: core/models.py:533 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:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Aankoopprijs verkoper" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Beschikbare hoeveelheid van het product in voorraad" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Hoeveelheid op voorraad" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "Door de verkoper toegewezen SKU om het product te identificeren" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "Verkoper SKU" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Digitaal bestand" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Voorraadboekingen" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Categorie waartoe dit product behoort" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Dit product optioneel koppelen aan een merk" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Tags die dit product helpen beschrijven of groeperen" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Geeft aan of dit product digitaal wordt geleverd" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Is product digitaal" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Zorg voor een duidelijke identificerende naam voor het product" + +#: core/models.py:632 +msgid "product name" +msgstr "Naam product" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Voeg een gedetailleerde beschrijving van het product toe" + +#: core/models.py:638 +msgid "product description" +msgstr "Productbeschrijving" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Onderdeelnummer voor dit product" + +#: core/models.py:646 +msgid "part number" +msgstr "Onderdeelnummer" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Categorie van dit kenmerk" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Groep van dit kenmerk" + +#: core/models.py:766 +msgid "string" +msgstr "String" + +#: core/models.py:767 +msgid "integer" +msgstr "Integer" + +#: core/models.py:768 +msgid "float" +msgstr "Vlotter" + +#: core/models.py:769 +msgid "boolean" +msgstr "Booleaans" + +#: core/models.py:770 +msgid "array" +msgstr "Array" + +#: core/models.py:771 +msgid "object" +msgstr "Object" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Type waarde van het kenmerk" + +#: core/models.py:774 +msgid "value type" +msgstr "Waardetype" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Naam van dit kenmerk" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Naam attribuut" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Attribuut" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Attribuut van deze waarde" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "De specifieke waarde voor dit kenmerk" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" + +#: core/models.py:871 +msgid "image alt text" +msgstr "Alt-tekst afbeelding" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Upload het afbeeldingsbestand voor dit product" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Product afbeelding" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" + +#: core/models.py:882 +msgid "display priority" +msgstr "Prioriteit weergeven" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "Het product dat deze afbeelding vertegenwoordigt" + +#: core/models.py:901 +msgid "product images" +msgstr "Product afbeeldingen" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Kortingspercentage voor de geselecteerde producten" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Kortingspercentage" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Geef deze promotie een unieke naam" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Naam promotie" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Promotie beschrijving" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Selecteer welke producten onder deze promotie vallen" + +#: core/models.py:961 +msgid "included products" +msgstr "Meegeleverde producten" + +#: core/models.py:965 +msgid "promotion" +msgstr "Promotie" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Gebruiker die eigenaar is van deze verlanglijst" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Eigenaar verlanglijstje" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Verlanglijst" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} bestaat niet: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documentaire" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Onopgelost" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Adresregel voor de klant" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Adresregel" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Straat" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "District" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Stad" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Regio" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Postcode" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Land" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocatie Punt (lengtegraad, breedtegraad)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Volledig JSON-antwoord van geocoder voor dit adres" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Opgeslagen JSON-antwoord van de geocoderingsservice" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Adres" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adressen" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Promo code identificatie" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "" "Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Vast kortingsbedrag" -#: core/models.py:1220 +#: core/models.py:1221 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:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Kortingspercentage" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Tijdstempel wanneer de promocode verloopt" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Geldigheidsduur einde" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Tijdstempel vanaf wanneer deze promocode geldig is" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Begin geldigheidsduur" -#: core/models.py:1238 +#: core/models.py:1239 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet gebruikt" +"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet " +"gebruikt" -#: core/models.py:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Gebruik tijdstempel" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Toegewezen gebruiker" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Kortingscode" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Actiecodes" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage), " -"maar niet beide of geen van beide." +"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," +" maar niet beide of geen van beide." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Promocode is al gebruikt" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ongeldig kortingstype voor promocode {self.uuid}" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "Het factuuradres dat voor deze bestelling is gebruikt" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Optionele promotiecode toegepast op deze bestelling" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Kortingscode toegepast" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "Het verzendadres dat voor deze bestelling is gebruikt" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Verzendadres" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Huidige status van de order in zijn levenscyclus" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Bestelstatus" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "JSON-weergave van bestelattributen voor deze bestelling" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "De gebruiker die de bestelling heeft geplaatst" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Gebruiker" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "De tijdstempel waarop de bestelling is afgerond" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Tijd kopen" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Een menselijk leesbare identificatiecode voor de bestelling" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "menselijk leesbare ID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Bestel" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} bestaat niet met query <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Promocode bestaat niet" -#: core/models.py:1540 +#: core/models.py:1541 msgid "you can only buy physical products with shipping address specified" msgstr "Je kunt alleen fysieke producten kopen met opgegeven verzendadres!" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Adres bestaat niet" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Ongeldige krachtwaarde" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Je kunt geen lege bestelling kopen!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Een gebruiker zonder saldo kan niet kopen met saldo!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Onvoldoende fondsen om de bestelling te voltooien" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1988,120 +1995,126 @@ msgstr "" "u niet kunt kopen zonder registratie, geef dan de volgende informatie: " "klantnaam, e-mail klant, telefoonnummer klant" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Ongeldige betalingsmethode: {payment_method} van {available_payment_methods}!" +"Ongeldige betalingsmethode: {payment_method} van " +"{available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Aankoopprijs bij bestelling" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "Interne opmerkingen voor beheerders over dit bestelde product" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Interne opmerkingen" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Meldingen van gebruikers" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "JSON weergave van de attributen van dit item" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Geordende producteigenschappen" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Ouderlijk bevel" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Het specifieke product dat bij deze bestelregel hoort" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Hoeveelheid van dit specifieke product in de bestelling" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Hoeveelheid product" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Huidige status van dit product in de bestelling" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Status productlijn" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Orderproduct moet een bijbehorende order hebben!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "verkeerde actie opgegeven voor feedback: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " -"is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Downloaden" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Downloads" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Opmerkingen van gebruikers over hun ervaring met het product" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Reacties" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Gerelateerd product bestellen" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Door de gebruiker toegekende waardering voor het product" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Productbeoordeling" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Feedback" @@ -2118,7 +2131,7 @@ msgstr "Fout tijdens aanmaken promocode: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2127,7 +2140,7 @@ msgid "order confirmation" msgstr "Orderbevestiging" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2144,8 +2157,7 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Hartelijk dank voor uw bestelling #%(order.pk)s! We zijn blij om u te " @@ -2153,14 +2165,14 @@ msgstr "" "vindt u de gegevens van uw bestelling:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Totaal" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2183,20 +2195,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Vriendelijke groeten,
het %(config.PROJECT_NAME)s-team" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Alle rechten voorbehouden" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Bestelling geleverd" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Hallo %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2205,7 +2217,7 @@ msgstr "" "We hebben uw bestelling succesvol verwerkt №%(order_uuid)s! Hieronder vindt " "u de details van uw bestelling:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2213,12 +2225,12 @@ msgstr "" "aanvullende\n" " informatie" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Waarde" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2227,7 +2239,7 @@ msgstr "" "Als je vragen hebt, kun je contact opnemen met onze klantenservice op " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Vriendelijke groeten,
het %(project_name)s-team" @@ -2239,8 +2251,7 @@ msgstr "Sleutel" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Bedankt voor uw bestelling! We zijn blij om uw aankoop te bevestigen. " @@ -2277,29 +2288,20 @@ msgstr "Zowel gegevens als time-out zijn vereist" #: core/utils/caching.py:43 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" - -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} moet model zijn" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} moet een lijstobject zijn" +msgstr "" +"Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Neem contact met ons op" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME}. | Orderbevestiging" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME}. | Geleverd" @@ -2323,15 +2325,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Ongeldig formaat telefoonnummer" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "U kunt het digitale goed maar één keer downloaden" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon niet gevonden" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 50475887..f9d90ec6 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 6ce27b6d..20f50432 100644 --- a/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/core/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Unikalny identyfikator" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "Unikalny identyfikator służy do jednoznacznej identyfikacji dowolnego " "obiektu bazy danych" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Jest aktywny" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Jeśli ustawione na false, obiekt ten nie może być widoczny dla użytkowników " "bez wymaganych uprawnień." -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Utworzony" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Kiedy obiekt po raz pierwszy pojawił się w bazie danych" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Zmodyfikowany" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Kiedy obiekt był ostatnio edytowany" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Tłumaczenia" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Ogólne" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relacje" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadane" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Znaczniki czasu" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktywuj wybrane %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s aktywowany pomyślnie!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Wybrane elementy zostały aktywowane!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezaktywacja wybranych %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "Funkcja %(verbose_name_plural)s została pomyślnie dezaktywowana." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Wybrane elementy zostały dezaktywowane!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Wartość atrybutu" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Wartości atrybutów" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Obraz" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Obrazy" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stan magazynowy" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Akcje" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Zamów produkt" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Zamawianie produktów" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Dzieci" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Konfiguracja" @@ -189,8 +188,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Zastosuj tylko klucz, aby odczytać dozwolone dane z pamięci podręcznej.\n" -"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w " -"pamięci podręcznej." +"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w pamięci podręcznej." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -247,7 +245,8 @@ msgstr "" "nieedytowalnych" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -302,7 +301,8 @@ msgstr "" "nieedytowalnych" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -345,11 +345,11 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id, " -"order_products.product.name i order_products.product.partnumber." +"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id," +" order_products.product.name i order_products.product.partnumber." #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -382,14 +382,14 @@ msgstr "Filtrowanie według identyfikatora UUID użytkownika" #: core/docs/drf/viewsets.py:195 msgid "Filter by order status (case-insensitive substring match)" msgstr "" -"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem " -"wielkości liter)" +"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem" +" wielkości liter)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Kolejność według jednego z: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefiks z \"-\" dla malejącego " @@ -569,28 +569,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrowanie według jednej lub więcej par atrybut/wartość. \n" "- Składnia**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metody** (domyślnie `icontains` jeśli pominięte): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Wpisywanie wartości**: JSON jest próbowany jako pierwszy (więc można " -"przekazywać listy/dykty), `true`/`false` dla booleans, integers, floats; w " -"przeciwnym razie traktowane jako string. \n" -"- Base64**: prefiks z `b64-` do bezpiecznego dla adresów URL kodowania " -"base64 surowej wartości. \n" +"- **Metody** (domyślnie `icontains` jeśli pominięte): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Wpisywanie wartości**: JSON jest próbowany jako pierwszy (więc można przekazywać listy/dykty), `true`/`false` dla booleans, integers, floats; w przeciwnym razie traktowane jako string. \n" +"- Base64**: prefiks z `b64-` do bezpiecznego dla adresów URL kodowania base64 surowej wartości. \n" "Przykłady: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -645,12 +635,10 @@ msgstr "(dokładnie) Cyfrowe vs. fizyczne" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla " -"sortowania malejącego. \n" +"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla sortowania malejącego. \n" "**Dozwolone:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -828,8 +816,8 @@ msgstr "Atrybuty" msgid "Quantity" msgstr "Ilość" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Ślimak" @@ -910,7 +898,7 @@ msgstr "Dane w pamięci podręcznej" msgid "camelized JSON data from the requested URL" msgstr "Kamelizowane dane JSON z żądanego adresu URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Dozwolone są tylko adresy URL zaczynające się od http(s)://" @@ -941,7 +929,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Podaj albo order_uuid albo order_hr_id - wzajemnie się wykluczają!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Nieprawidłowy typ pochodzi z metody order.buy(): {type(instance)!s}" @@ -985,8 +973,8 @@ msgstr "Kup zamówienie" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Prześlij atrybuty jako ciąg znaków sformatowany w następujący sposób: " "attr1=value1,attr2=value2" @@ -995,7 +983,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "Oryginalny ciąg adresu podany przez użytkownika" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} nie istnieje: {uuid}" @@ -1008,97 +996,98 @@ msgstr "Limit musi wynosić od 1 do 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - działa jak urok" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Atrybuty" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Atrybuty pogrupowane" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Grupy atrybutów" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Marki" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Kategorie" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Procentowy narzut" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Które atrybuty i wartości mogą być używane do filtrowania tej kategorii." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimalne i maksymalne ceny produktów w tej kategorii, jeśli są dostępne." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tagi dla tej kategorii" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Produkty w tej kategorii" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Sprzedawcy" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Szerokość geograficzna (współrzędna Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Długość geograficzna (współrzędna X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Jak" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Reprezentuje informacje zwrotne od użytkownika." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Powiadomienia" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 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:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Lista zamówionych produktów w tym zamówieniu" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Adres rozliczeniowy" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1106,732 +1095,737 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Całkowita cena tego zamówienia" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Całkowita ilość produktów w zamówieniu" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Czy wszystkie produkty w zamówieniu są cyfrowe?" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transakcje dla tego zamówienia" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Zamówienia" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "Adres URL obrazu" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Zdjęcia produktu" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Kategoria" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Informacje zwrotne" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Marka" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Grupy atrybutów" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Cena" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Ilość" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Liczba informacji zwrotnych" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Produkty" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Promocodes" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Produkty w sprzedaży" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promocje" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Sprzedawca" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Produkty z listy życzeń" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Listy życzeń" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Produkty Tagged" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Tagi produktu" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Kategorie oznaczone tagami" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Tagi kategorii" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Nazwa projektu" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Firmowy adres e-mail" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Nazwa firmy" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Adres firmy" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Numer telefonu firmy" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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" +msgstr "\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" -#: core/graphene/object_types.py:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Użytkownik hosta poczty e-mail" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Maksymalna kwota płatności" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Minimalna kwota płatności" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Dane analityczne" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Dane reklamowe" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Konfiguracja" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Kod języka" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Nazwa języka" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Flaga języka, jeśli istnieje :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Pobierz listę obsługiwanych języków" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Wyniki wyszukiwania produktów" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Wyniki wyszukiwania produktów" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Rodzic tej grupy" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Grupa atrybutów nadrzędnych" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Nazwa grupy atrybutów" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Grupa atrybutów" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Informacje o uwierzytelnianiu" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "Definiowanie znaczników dla produktów pobranych od tego dostawcy" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Procentowa marża sprzedawcy" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Nazwa tego sprzedawcy" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Nazwa sprzedawcy" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Wewnętrzny identyfikator tagu produktu" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Nazwa tagu" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Przyjazna dla użytkownika nazwa etykiety produktu" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Wyświetlana nazwa znacznika" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Etykieta produktu" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "tag kategorii" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "tagi kategorii" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Prześlij obraz reprezentujący tę kategorię" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Obraz kategorii" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "Zdefiniuj procentowy narzut dla produktów w tej kategorii." -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "Rodzic tej kategorii w celu utworzenia struktury hierarchicznej" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Kategoria nadrzędna" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Nazwa kategorii" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Podaj nazwę dla tej kategorii" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Dodaj szczegółowy opis dla tej kategorii" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Opis kategorii" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "tagi, które pomagają opisać lub pogrupować tę kategorię" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Priorytet" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Nazwa tej marki" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Nazwa marki" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Prześlij logo reprezentujące tę markę" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Mały wizerunek marki" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Prześlij duże logo reprezentujące tę markę" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Duży wizerunek marki" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Dodaj szczegółowy opis marki" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Opis marki" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Opcjonalne kategorie, z którymi powiązana jest ta marka" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Kategoria, do której należy ten produkt" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Opcjonalnie można powiązać ten produkt z marką" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Tagi, które pomagają opisać lub pogrupować ten produkt" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Wskazuje, czy produkt jest dostarczany cyfrowo." - -#: core/models.py:549 -msgid "is product digital" -msgstr "Czy produkt jest cyfrowy?" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Wyraźna nazwa identyfikująca produkt" - -#: core/models.py:556 -msgid "product name" -msgstr "Nazwa produktu" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Dodaj szczegółowy opis produktu" - -#: core/models.py:562 -msgid "product description" -msgstr "Opis produktu" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Numer części dla tego produktu" - -#: core/models.py:570 -msgid "part number" -msgstr "Numer części" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Kategoria tego atrybutu" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Grupa tego atrybutu" - -#: core/models.py:690 -msgid "string" -msgstr "String" - -#: core/models.py:691 -msgid "integer" -msgstr "Integer" - -#: core/models.py:692 -msgid "float" -msgstr "Pływak" - -#: core/models.py:693 -msgid "boolean" -msgstr "Wartość logiczna" - -#: core/models.py:694 -msgid "array" -msgstr "Tablica" - -#: core/models.py:695 -msgid "object" -msgstr "Obiekt" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Typ wartości atrybutu" - -#: core/models.py:698 -msgid "value type" -msgstr "Typ wartości" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Nazwa tego atrybutu" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Nazwa atrybutu" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Atrybut" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Atrybut tej wartości" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "Konkretny produkt powiązany z wartością tego atrybutu" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Produkt powiązany" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "Konkretna wartość dla tego atrybutu" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" - -#: core/models.py:795 -msgid "image alt text" -msgstr "Tekst alternatywny obrazu" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Prześlij plik obrazu dla tego produktu" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Obraz produktu" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Określa kolejność wyświetlania obrazów" - -#: core/models.py:806 -msgid "display priority" -msgstr "Priorytet wyświetlania" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "Produkt, który przedstawia ten obraz" - -#: core/models.py:825 -msgid "product images" -msgstr "Zdjęcia produktów" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Rabat procentowy na wybrane produkty" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Procent rabatu" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Podaj unikalną nazwę tej promocji" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Nazwa promocji" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Opis promocji" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Wybierz produkty objęte promocją" - -#: core/models.py:885 -msgid "included products" -msgstr "Dołączone produkty" - -#: core/models.py:889 -msgid "promotion" -msgstr "Promocja" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "Sprzedawca dostarczający ten produkt" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Powiązany sprzedawca" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Ostateczna cena dla klienta po uwzględnieniu marży" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Cena sprzedaży" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "Produkt powiązany z tym wpisem magazynowym" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Produkt powiązany" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "Cena zapłacona sprzedawcy za ten produkt" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Cena zakupu przez sprzedawcę" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Dostępna ilość produktu w magazynie" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Ilość w magazynie" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "Jednostki SKU przypisane przez dostawcę w celu identyfikacji produktu" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "SKU sprzedawcy" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Plik cyfrowy powiązany z tymi zapasami, jeśli dotyczy" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Plik cyfrowy" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Zapisy magazynowe" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Kategoria, do której należy ten produkt" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Opcjonalnie można powiązać ten produkt z marką" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Tagi, które pomagają opisać lub pogrupować ten produkt" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Wskazuje, czy produkt jest dostarczany cyfrowo." + +#: core/models.py:625 +msgid "is product digital" +msgstr "Czy produkt jest cyfrowy?" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Wyraźna nazwa identyfikująca produkt" + +#: core/models.py:632 +msgid "product name" +msgstr "Nazwa produktu" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Dodaj szczegółowy opis produktu" + +#: core/models.py:638 +msgid "product description" +msgstr "Opis produktu" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Numer części dla tego produktu" + +#: core/models.py:646 +msgid "part number" +msgstr "Numer części" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Kategoria tego atrybutu" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Grupa tego atrybutu" + +#: core/models.py:766 +msgid "string" +msgstr "String" + +#: core/models.py:767 +msgid "integer" +msgstr "Integer" + +#: core/models.py:768 +msgid "float" +msgstr "Pływak" + +#: core/models.py:769 +msgid "boolean" +msgstr "Wartość logiczna" + +#: core/models.py:770 +msgid "array" +msgstr "Tablica" + +#: core/models.py:771 +msgid "object" +msgstr "Obiekt" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Typ wartości atrybutu" + +#: core/models.py:774 +msgid "value type" +msgstr "Typ wartości" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Nazwa tego atrybutu" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Nazwa atrybutu" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Atrybut" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Atrybut tej wartości" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "Konkretny produkt powiązany z wartością tego atrybutu" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "Konkretna wartość dla tego atrybutu" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "" +"Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" + +#: core/models.py:871 +msgid "image alt text" +msgstr "Tekst alternatywny obrazu" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Prześlij plik obrazu dla tego produktu" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Obraz produktu" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Określa kolejność wyświetlania obrazów" + +#: core/models.py:882 +msgid "display priority" +msgstr "Priorytet wyświetlania" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "Produkt, który przedstawia ten obraz" + +#: core/models.py:901 +msgid "product images" +msgstr "Zdjęcia produktów" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Rabat procentowy na wybrane produkty" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Procent rabatu" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Podaj unikalną nazwę tej promocji" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Nazwa promocji" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Opis promocji" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Wybierz produkty objęte promocją" + +#: core/models.py:961 +msgid "included products" +msgstr "Dołączone produkty" + +#: core/models.py:965 +msgid "promotion" +msgstr "Promocja" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Produkty, które użytkownik oznaczył jako poszukiwane" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Użytkownik posiadający tę listę życzeń" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Właściciel listy życzeń" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Lista życzeń" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} nie istnieje: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Film dokumentalny" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Filmy dokumentalne" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Nierozwiązany" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Linia adresu dla klienta" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Linia adresowa" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "ul." -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Okręg" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Miasto" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Region" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Kod pocztowy" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Kraj" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Pełna odpowiedź JSON z geokodera dla tego adresu" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Przechowywana odpowiedź JSON z usługi geokodowania" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Adres" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adresy" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Identyfikator kodu promocyjnego" -#: core/models.py:1213 +#: core/models.py:1214 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:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Stała kwota rabatu" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Rabat procentowy" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Końcowy czas ważności" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Czas rozpoczęcia ważności" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Znacznik czasu użycia" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Przypisany użytkownik" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Kod promocyjny" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Kody promocyjne" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1839,140 +1833,151 @@ msgstr "" "Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale " "nie oba lub żaden z nich." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Kod promocyjny został już wykorzystany" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}." -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "Adres rozliczeniowy użyty dla tego zamówienia" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Opcjonalny kod promocyjny zastosowany do tego zamówienia" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Zastosowany kod promocyjny" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "Adres wysyłki użyty dla tego zamówienia" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Adres wysyłki" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Aktualny status zamówienia w jego cyklu życia" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Status zamówienia" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "Reprezentacja JSON atrybutów zamówienia dla tego zamówienia" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "Użytkownik, który złożył zamówienie" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Użytkownik" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Znacznik czasu, kiedy zamówienie zostało sfinalizowane" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Kup czas" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Czytelny dla człowieka identyfikator zamówienia" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "Identyfikator czytelny dla człowieka" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Zamówienie" -#: core/models.py:1403 +#: core/models.py:1404 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!" +msgstr "" +"Użytkownik może mieć tylko jedno oczekujące zlecenie w danym momencie!" -#: core/models.py:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Nie można dodać nieaktywnych produktów do zamówienia" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nie istnieje z zapytaniem <{query}>." -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Kod promocyjny nie istnieje" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Adres nie istnieje" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Nieprawidłowa wartość siły" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Nie można kupić pustego zamówienia!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" +"Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " +"oczekującym." + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Użytkownik bez salda nie może kupować za saldo!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Niewystarczające środki do zrealizowania zamówienia" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1981,7 +1986,7 @@ msgstr "" "informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu " "klienta." -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -1989,113 +1994,119 @@ msgstr "" "Nieprawidłowa metoda płatności: {payment_method} z " "{available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Cena zakupu w momencie zamówienia" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "" -"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego produktu" +"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego " +"produktu" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Uwagi wewnętrzne" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Powiadomienia użytkownika" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "Reprezentacja JSON atrybutów tego elementu" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Zamówione atrybuty produktu" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Zamówienie nadrzędne" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Konkretny produkt powiązany z tą linią zamówienia" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Ilość tego konkretnego produktu w zamówieniu" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Ilość produktu" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Aktualny status tego produktu w zamówieniu" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Status linii produktów" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Orderproduct musi mieć powiązane zamówienie!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "nieprawidłowe działanie określone dla informacji zwrotnej: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" "Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " "oczekującym." -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Pobierz" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Pliki do pobrania" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 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:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Komentarze zwrotne" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Powiązany produkt zamówienia" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Ocena produktu przypisana przez użytkownika" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Ocena produktu" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Informacje zwrotne" @@ -2112,7 +2123,7 @@ msgstr "Błąd podczas tworzenia kodu promocyjnego: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2121,7 +2132,7 @@ msgid "order confirmation" msgstr "Potwierdzenie zamówienia" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2138,8 +2149,7 @@ msgstr "Witam %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Dziękujemy za zamówienie #%(order.pk)s! Z przyjemnością informujemy, że " @@ -2147,14 +2157,14 @@ msgstr "" "zamówienia:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Łącznie" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2177,29 +2187,29 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Z wyrazami szacunku,
zespół %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Wszelkie prawa zastrzeżone" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Zamówienie dostarczone" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Witaj %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "" -"Pomyślnie przetworzyliśmy Twoje zamówienie №%(order_uuid)s! Poniżej znajdują " -"się szczegóły zamówienia:" +"Pomyślnie przetworzyliśmy Twoje zamówienie №%(order_uuid)s! Poniżej znajdują" +" się szczegóły zamówienia:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2207,12 +2217,12 @@ msgstr "" "dodatkowe\n" " informacje" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Wartość" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2221,7 +2231,7 @@ msgstr "" "Jeśli masz jakiekolwiek pytania, skontaktuj się z naszym działem pomocy " "technicznej pod adresem %(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Z wyrazami szacunku,
zespół %(project_name)s" @@ -2233,8 +2243,7 @@ msgstr "Klucz" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Dziękujemy za zamówienie! Z przyjemnością potwierdzamy zakup. Poniżej " @@ -2275,27 +2284,17 @@ msgstr "" "Nieprawidłowa wartość limitu czasu, musi zawierać się w przedziale od 0 do " "216000 sekund." -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} musi być modelem" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} musi być obiektem listy" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Kontakt zainicjowany" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Potwierdzenie zamówienia" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Zamówienie dostarczone" @@ -2318,15 +2317,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Nieprawidłowy format numeru telefonu" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Zasób cyfrowy można pobrać tylko raz" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "nie znaleziono favicon" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 a97749b1..16907573 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 ead07f72..b638e7fb 100644 --- a/core/locale/pt_BR/LC_MESSAGES/django.po +++ b/core/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "ID exclusivo" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "O ID exclusivo é usado para identificar com segurança qualquer objeto do " "banco de dados" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Está ativo" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Se definido como false, esse objeto não poderá ser visto por usuários sem a " "permissão necessária" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Criado" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Quando o objeto apareceu pela primeira vez no banco de dados" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modificado" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Quando o objeto foi editado pela última vez" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Traduções" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Geral" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relações" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadados" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Carimbos de data/hora" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ativar %(verbose_name_plural)s selecionados" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s ativado com sucesso!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Os itens selecionados foram ativados!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desativar %(verbose_name_plural)s selecionados" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s desativado com sucesso." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Os itens selecionados foram desativados!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Valor do atributo" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Valores de atributos" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Imagem" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Imagens" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Estoque" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Ações" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Pedido de produto" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Solicitar produtos" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Crianças" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Configuração" @@ -189,8 +188,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar somente uma chave para ler dados permitidos do cache.\n" -"Aplicar chave, dados e tempo limite com autenticação para gravar dados no " -"cache." +"Aplicar chave, dados e tempo limite com autenticação para gravar dados no cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -246,7 +244,8 @@ 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:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -297,7 +296,8 @@ 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:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -338,12 +338,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Pesquisa de substring sem distinção entre maiúsculas e minúsculas em " -"human_readable_id, order_products.product.name e order_products.product." -"partnumber" +"human_readable_id, order_products.product.name e " +"order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -379,9 +379,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordene por uma das seguintes opções: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefixe com '-' para " @@ -562,28 +562,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrar por um ou mais pares de nome/valor de atributo. \n" "- **Sintaxe**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- Métodos** (o padrão é `icontains` se omitido): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Digitação de valores**: JSON é tentado primeiro (para que você possa " -"passar listas/dicas), `true`/`false` para booleanos, inteiros, flutuantes; " -"caso contrário, é tratado como string. \n" -"- Base64**: prefixo com `b64-` para codificar o valor bruto com base64 de " -"forma segura para a URL. \n" +"- Métodos** (o padrão é `icontains` se omitido): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Digitação de valores**: JSON é tentado primeiro (para que você possa passar listas/dicas), `true`/`false` para booleanos, inteiros, flutuantes; caso contrário, é tratado como string. \n" +"- Base64**: prefixo com `b64-` para codificar o valor bruto com base64 de forma segura para a URL. \n" "Exemplos: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -639,14 +629,11 @@ msgstr "(exato) Digital vs. físico" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" 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" +"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:441 msgid "retrieve a single product (detailed view)" @@ -820,8 +807,8 @@ msgstr "Atributos" msgid "Quantity" msgstr "Quantidade" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Lesma" @@ -903,7 +890,7 @@ msgstr "Dados em cache" msgid "camelized JSON data from the requested URL" msgstr "Dados JSON camelizados da URL solicitada" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Somente URLs que começam com http(s):// são permitidos" @@ -934,7 +921,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "Forneça order_uuid ou order_hr_id - mutuamente exclusivos!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "O tipo errado veio do método order.buy(): {type(instance)!s}" @@ -978,8 +965,8 @@ msgstr "Comprar um pedido" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"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" @@ -987,7 +974,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "Cadeia de endereços original fornecida pelo usuário" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} não existe: {uuid}" @@ -1000,97 +987,98 @@ msgstr "O limite deve estar entre 1 e 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona muito bem" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Atributos" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Atributos agrupados" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Categorias" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Marcas" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Categorias" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Porcentagem de marcação" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Quais atributos e valores podem ser usados para filtrar essa categoria." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +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:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Tags para esta categoria" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Produtos desta categoria" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Vendors" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Latitude (coordenada Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Longitude (coordenada X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Como fazer" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Representa o feedback de um usuário." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Notificações" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 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:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Uma lista dos produtos solicitados nesse pedido" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Endereço de cobrança" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1098,872 +1086,887 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Preço total deste pedido" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Quantidade total de produtos no pedido" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Todos os produtos estão no pedido digital?" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Transações para esta ordem" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Pedidos" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "URL da imagem" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Imagens do produto" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Grupos de atributos" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Preço" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Quantidade" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Número de feedbacks" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Produtos" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Códigos promocionais" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Produtos à venda" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promoções" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Produto" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Produtos da lista de desejos" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Listas de desejos" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Produtos marcados" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Etiquetas do produto" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Categorias de tags" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Tags das categorias" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Nome do projeto" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "E-mail da empresa" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Nome da empresa" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Endereço da empresa" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Número de telefone da empresa" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Usuário do host de e-mail" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Valor máximo para pagamento" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Valor mínimo para pagamento" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Dados analíticos" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Dados do anúncio" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configuração" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Código do idioma" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Nome do idioma" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Sinalizador de idioma, se houver :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Obter uma lista de idiomas suportados" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Resultados da pesquisa de produtos" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Resultados da pesquisa de produtos" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Pai deste grupo" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Grupo de atributos pai" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Nome do grupo de atributos" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Informações de autenticação" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "Definir a marcação para produtos recuperados desse fornecedor" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Porcentagem da margem de lucro do fornecedor" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Nome do fornecedor" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Nome do fornecedor" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Identificador de tag interno para a tag do produto" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Nome da etiqueta" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Nome de fácil utilização para a etiqueta do produto" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Nome de exibição da tag" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Etiqueta do produto" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "tag de categoria" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "tags de categoria" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Faça upload de uma imagem que represente essa categoria" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Imagem da categoria" -#: core/models.py:337 +#: core/models.py:338 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:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "Pai dessa categoria para formar uma estrutura hierárquica" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Categoria dos pais" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Nome da categoria" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Forneça um nome para essa categoria" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Adicione uma descrição detalhada para essa categoria" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Descrição da categoria" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "tags que ajudam a descrever ou agrupar essa categoria" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Prioridade" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Nome da marca" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Nome da marca" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Faça upload de um logotipo que represente essa marca" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Imagem pequena da marca" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Faça upload de um logotipo grande que represente essa marca" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Imagem de marca grande" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Adicione uma descrição detalhada da marca" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Descrição da marca" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Categorias opcionais às quais essa marca está associada" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Categorias" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Categoria à qual este produto pertence" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Opcionalmente, associe esse produto a uma marca" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Tags que ajudam a descrever ou agrupar este produto" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Indica se esse produto é entregue digitalmente" - -#: core/models.py:549 -msgid "is product digital" -msgstr "O produto é digital" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Fornecer um nome de identificação claro para o produto" - -#: core/models.py:556 -msgid "product name" -msgstr "Nome do produto" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Adicione uma descrição detalhada do produto" - -#: core/models.py:562 -msgid "product description" -msgstr "Descrição do produto" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Número de peça para este produto" - -#: core/models.py:570 -msgid "part number" -msgstr "Número da peça" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Categoria desse atributo" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Grupo desse atributo" - -#: core/models.py:690 -msgid "string" -msgstr "Cordas" - -#: core/models.py:691 -msgid "integer" -msgstr "Inteiro" - -#: core/models.py:692 -msgid "float" -msgstr "Flutuação" - -#: core/models.py:693 -msgid "boolean" -msgstr "Booleano" - -#: core/models.py:694 -msgid "array" -msgstr "Matriz" - -#: core/models.py:695 -msgid "object" -msgstr "Objeto" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Tipo do valor do atributo" - -#: core/models.py:698 -msgid "value type" -msgstr "Tipo de valor" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Nome desse atributo" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Nome do atributo" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Atributo" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Atributo desse valor" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "O produto específico associado ao valor desse atributo" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Produto associado" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "O valor específico para esse atributo" - -#: core/models.py:794 -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:795 -msgid "image alt text" -msgstr "Texto alternativo da imagem" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Faça o upload do arquivo de imagem para este produto" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Imagem do produto" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Determina a ordem em que as imagens são exibidas" - -#: core/models.py:806 -msgid "display priority" -msgstr "Prioridade de exibição" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "O produto que esta imagem representa" - -#: core/models.py:825 -msgid "product images" -msgstr "Imagens do produto" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Desconto percentual para os produtos selecionados" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Porcentagem de desconto" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Forneça um nome exclusivo para essa promoção" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Nome da promoção" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Descrição da promoção" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Selecione quais produtos estão incluídos nessa promoção" - -#: core/models.py:885 -msgid "included products" -msgstr "Produtos incluídos" - -#: core/models.py:889 -msgid "promotion" -msgstr "Promoção" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "O fornecedor que fornece esse estoque de produtos" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Fornecedor associado" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Preço final para o cliente após as marcações" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Preço de venda" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "O produto associado a essa entrada em estoque" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Produto associado" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "O preço pago ao fornecedor por esse produto" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Preço de compra do fornecedor" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Quantidade disponível do produto em estoque" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Quantidade em estoque" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuído pelo fornecedor para identificar o produto" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "SKU do fornecedor" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Arquivo digital associado a esse estoque, se aplicável" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Arquivo digital" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Entradas de estoque" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Categoria à qual este produto pertence" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Opcionalmente, associe esse produto a uma marca" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Tags que ajudam a descrever ou agrupar este produto" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Indica se esse produto é entregue digitalmente" + +#: core/models.py:625 +msgid "is product digital" +msgstr "O produto é digital" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Fornecer um nome de identificação claro para o produto" + +#: core/models.py:632 +msgid "product name" +msgstr "Nome do produto" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Adicione uma descrição detalhada do produto" + +#: core/models.py:638 +msgid "product description" +msgstr "Descrição do produto" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Número de peça para este produto" + +#: core/models.py:646 +msgid "part number" +msgstr "Número da peça" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Categoria desse atributo" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Grupo desse atributo" + +#: core/models.py:766 +msgid "string" +msgstr "Cordas" + +#: core/models.py:767 +msgid "integer" +msgstr "Inteiro" + +#: core/models.py:768 +msgid "float" +msgstr "Flutuação" + +#: core/models.py:769 +msgid "boolean" +msgstr "Booleano" + +#: core/models.py:770 +msgid "array" +msgstr "Matriz" + +#: core/models.py:771 +msgid "object" +msgstr "Objeto" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Tipo do valor do atributo" + +#: core/models.py:774 +msgid "value type" +msgstr "Tipo de valor" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Nome desse atributo" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Nome do atributo" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Atributo" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Atributo desse valor" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "O produto específico associado ao valor desse atributo" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "O valor específico para esse atributo" + +#: core/models.py:870 +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:871 +msgid "image alt text" +msgstr "Texto alternativo da imagem" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Faça o upload do arquivo de imagem para este produto" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Imagem do produto" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Determina a ordem em que as imagens são exibidas" + +#: core/models.py:882 +msgid "display priority" +msgstr "Prioridade de exibição" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "O produto que esta imagem representa" + +#: core/models.py:901 +msgid "product images" +msgstr "Imagens do produto" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Desconto percentual para os produtos selecionados" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Porcentagem de desconto" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Forneça um nome exclusivo para essa promoção" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Nome da promoção" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Descrição da promoção" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Selecione quais produtos estão incluídos nessa promoção" + +#: core/models.py:961 +msgid "included products" +msgstr "Produtos incluídos" + +#: core/models.py:965 +msgid "promotion" +msgstr "Promoção" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Produtos que o usuário marcou como desejados" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Usuário que possui esta lista de desejos" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Proprietário da lista de desejos" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Lista de desejos" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} não existe: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documentário" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentários" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Não resolvido" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Linha de endereço do cliente" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Linha de endereço" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Rua" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Distrito" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Cidade" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Região" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Código postal" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "País" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Ponto de geolocalização (Longitude, Latitude)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Resposta JSON completa do geocodificador para este endereço" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Resposta JSON armazenada do serviço de geocodificação" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Endereço" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Endereços" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Identificador de código promocional" -#: core/models.py:1213 +#: core/models.py:1214 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:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Valor do desconto fixo" -#: core/models.py:1220 +#: core/models.py:1221 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:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Desconto percentual" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Registro de data e hora em que o código promocional expira" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Tempo de validade final" -#: core/models.py:1232 +#: core/models.py:1233 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:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Hora de início da validade" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Registro de data e hora de uso" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Usuário atribuído a esse código promocional, se aplicável" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Usuário atribuído" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Código promocional" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Códigos promocionais" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não " -"ambos ou nenhum." +"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" +" ambos ou nenhum." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "O código promocional já foi usado" -#: core/models.py:1288 +#: core/models.py:1289 #, 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:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "O endereço de cobrança usado para esse pedido" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "O endereço de entrega usado para esse pedido" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Endereço de entrega" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Status atual do pedido em seu ciclo de vida" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Status do pedido" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "Representação JSON dos atributos do pedido para esse pedido" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "O usuário que fez o pedido" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Usuário" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "O registro de data e hora em que o pedido foi finalizado" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Tempo de compra" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Um identificador legível por humanos para o pedido" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "ID legível por humanos" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Pedido" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Não é possível adicionar produtos inativos ao pedido" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} não existe com a consulta <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "O código promocional não existe" -#: core/models.py:1540 +#: core/models.py:1541 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!" +"Você só pode comprar produtos físicos com o endereço de entrega " +"especificado!" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "O endereço não existe" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Valor de força inválido" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Você não pode comprar um pedido vazio!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "Não é possível comprar um pedido sem um usuário!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Um usuário sem saldo não pode comprar com saldo!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Fundos insuficientes para concluir o pedido" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1971,7 +1974,7 @@ msgstr "" "Não é possível comprar sem registro, forneça as seguintes informações: nome " "do cliente, e-mail do cliente, número de telefone do cliente" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -1979,114 +1982,119 @@ msgstr "" "Método de pagamento inválido: {payment_method} de " "{available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Preço de compra no momento do pedido" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "" "Comentários internos para administradores sobre este produto encomendado" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Comentários internos" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Notificações do usuário" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "Representação JSON dos atributos desse item" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Atributos ordenados do produto" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Referência ao pedido pai que contém esse produto" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Ordem dos pais" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "O produto específico associado a essa linha de pedido" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Quantidade desse produto específico no pedido" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Quantidade do produto" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Status atual desse produto no pedido" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Status da linha de produtos" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "O Orderproduct deve ter um pedido associado!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "ação incorreta especificada para feedback: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "você não pode dar feedback a um pedido que não foi recebido" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Baixar" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Downloads" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 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:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Comentários de feedback" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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" +"Faz referência ao produto específico em um pedido sobre o qual se trata esse" +" feedback" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Produto de pedido relacionado" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Classificação atribuída pelo usuário ao produto" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Avaliação do produto" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Feedback" @@ -2103,7 +2111,7 @@ msgstr "Erro durante a criação do código promocional: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2112,7 +2120,7 @@ msgid "order confirmation" msgstr "Confirmação de pedido" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2129,22 +2137,21 @@ msgstr "Olá %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Obrigado por seu pedido #%(order.pk)s! Temos o prazer de informá-lo de que " "seu pedido foi colocado em prática. Abaixo estão os detalhes de seu pedido:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Total" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2167,20 +2174,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Com os melhores cumprimentos,
da equipe de %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Todos os direitos reservados" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Pedido entregue" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Olá %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2189,7 +2196,7 @@ msgstr "" "Seu pedido №%(order_uuid)s foi processado com sucesso! Abaixo estão os " "detalhes de seu pedido:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2197,12 +2204,12 @@ msgstr "" "adicionais\n" " informações adicionais" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Valor" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2211,7 +2218,7 @@ msgstr "" "Se tiver alguma dúvida, entre em contato com nosso suporte em " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Atenciosamente,
a equipe de %(project_name)s" @@ -2223,8 +2230,7 @@ msgstr "Chave" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Obrigado por seu pedido! Temos o prazer de confirmar sua compra. Abaixo " @@ -2263,27 +2269,17 @@ msgstr "São necessários dados e tempo limite" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Valor de tempo limite inválido, deve estar entre 0 e 216000 segundos" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} deve ser o modelo" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} deve ser um objeto de lista" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Entre em contato conosco iniciado" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmação de pedido" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Order Delivered" @@ -2306,15 +2302,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Formato de número telefônico inválido" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Você só pode fazer o download do ativo digital uma vez" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon não encontrado" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 3c7a6afd..69f76cb6 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 97ac952d..7a524736 100644 --- a/core/locale/ro_RO/LC_MESSAGES/django.po +++ b/core/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "ID unic" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "ID-ul unic este utilizat pentru a identifica cu siguranță orice obiect din " "baza de date" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Este activ" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"Dacă este setat la false, acest obiect nu poate fi văzut de utilizatori fără " -"permisiunea necesară" +"Dacă este setat la false, acest obiect nu poate fi văzut de utilizatori fără" +" permisiunea necesară" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Creat" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Când a apărut pentru prima dată obiectul în baza de date" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Modificat" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Când a fost editat obiectul ultima dată" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Traduceri" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Generalități" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Relații" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Metadate" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activați %(verbose_name_plural)s selectate" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s activat cu succes!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Articolele selectate au fost activate!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezactivați %(verbose_name_plural)s selectate" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s dezactivat cu succes." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Articolele selectate au fost dezactivate!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Atribut Valoare" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Valori ale atributului" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Imagine" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Imagini" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Stoc" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Stocuri" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Comanda Produs" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Comandați produse" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Copii" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Configurare" @@ -189,8 +188,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicați doar o cheie pentru a citi datele permise din cache.\n" -"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în " -"cache." +"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -211,8 +209,8 @@ msgstr "Solicitați un URL CORSed. Numai https este permis." #: core/docs/drf/views.py:85 msgid "global search endpoint to query across project's tables" msgstr "" -"Punct final de căutare globală pentru a efectua interogări în toate tabelele " -"proiectului" +"Punct final de căutare globală pentru a efectua interogări în toate tabelele" +" proiectului" #: core/docs/drf/views.py:91 msgid "purchase an order as a business" @@ -223,8 +221,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid` " -"și `attributes` furnizate." +"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid`" +" și `attributes` furnizate." #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -245,10 +243,12 @@ msgstr "Ștergerea unui grup de atribute" #: core/docs/drf/viewsets.py:59 msgid "rewrite an existing attribute group saving non-editables" msgstr "" -"Rescrierea unui grup de atribute existent cu salvarea elementelor needitabile" +"Rescrierea unui grup de atribute existent cu salvarea elementelor " +"needitabile" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +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" @@ -301,7 +301,8 @@ msgstr "" "Rescrierea unei valori de atribut existente care salvează non-editabile" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +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" @@ -344,8 +345,8 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Căutare de substring insensibilă la majuscule în human_readable_id, " "order_products.product.name și order_products.product.partnumber" @@ -384,9 +385,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordonați după unul dintre: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefixați cu \"-\" pentru " @@ -568,29 +569,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrați după una sau mai multe perechi nume de atribut/valoare. \n" "- **Sintaxa**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metode** (valoarea implicită este `icontains` dacă este omisă): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Value typing**: JSON este încercat în primul rând (astfel încât să " -"puteți trece liste/dicte), `true`/`false` pentru booleeni, întregi, float; " -"în caz contrar tratat ca string. \n" -"- **Base64**: prefix cu `b64-` pentru a codifica valoarea brută în baza64 în " -"condiții de siguranță URL. \n" +"- **Metode** (valoarea implicită este `icontains` dacă este omisă): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Value typing**: JSON este încercat în primul rând (astfel încât să puteți trece liste/dicte), `true`/`false` pentru booleeni, întregi, float; în caz contrar tratat ca string. \n" +"- **Base64**: prefix cu `b64-` pentru a codifica valoarea brută în baza64 în condiții de siguranță URL. \n" "Exemple: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -645,12 +635,10 @@ msgstr "(exact) Digital vs. fizic" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați " -"cu `-` pentru descrescător. \n" +"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați cu `-` pentru descrescător. \n" "**Autorizate:** uuid, rating, nume, slug, creat, modificat, preț, aleatoriu" #: core/docs/drf/viewsets.py:441 @@ -718,8 +706,8 @@ msgstr "Autocompletare adresă de intrare" #: core/docs/drf/viewsets.py:576 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l nl-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a plăți -a vibes_auth -a blog" @@ -829,8 +817,8 @@ msgstr "Atribute" msgid "Quantity" msgstr "Cantitate" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Melc" @@ -913,7 +901,7 @@ msgstr "Date în cache" msgid "camelized JSON data from the requested URL" msgstr "Date JSON Camelizate de la URL-ul solicitat" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Sunt permise numai URL-urile care încep cu http(s)://" @@ -945,7 +933,7 @@ msgstr "" "Vă rugăm să furnizați fie order_uuid sau order_hr_id - se exclud reciproc!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Metoda order.buy() a generat un tip greșit: {type(instance)!s}" @@ -989,8 +977,8 @@ msgstr "Cumpărați o comandă" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Vă rugăm să trimiteți atributele sub formă de șir format ca attr1=valoare1, " "attr2=valoare2" @@ -999,7 +987,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "Șirul de adrese original furnizat de utilizator" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} nu există: {uuid}" @@ -1012,99 +1000,100 @@ msgstr "Limita trebuie să fie între 1 și 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funcționează ca un farmec" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Atribute" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Atribute grupate" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Grupuri de atribute" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Categorii" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Mărci" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Categorii" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Procentul de majorare" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Atributele și valorile care pot fi utilizate pentru filtrarea acestei " "categorii." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." -msgstr "" -"Prețurile minime și maxime pentru produsele din această categorie, dacă sunt " -"disponibile." - #: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." +msgstr "" +"Prețurile minime și maxime pentru produsele din această categorie, dacă sunt" +" disponibile." + +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Etichete pentru această categorie" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Produse din această categorie" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Furnizori" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Latitudine (coordonata Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Longitudine (coordonata X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Cum să" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 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:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Reprezintă feedback de la un utilizator." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Notificări" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 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:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "O listă a produselor comandate în această comandă" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Adresa de facturare" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1112,734 +1101,740 @@ 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:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Prețul total al acestei comenzi" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Cantitatea totală de produse din comandă" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Sunt toate produsele din comanda digitală" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Tranzacții pentru această comandă" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Ordine" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "URL imagine" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Imagini ale produsului" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Feedback-uri" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Grupuri de atribute" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Preț" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Cantitate" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Numărul de reacții" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Produse" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Coduri promoționale" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Produse scoase la vânzare" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Promoții" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Furnizor" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Produs" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Produse dorite" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Liste de dorințe" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Produse etichetate" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Etichete de produs" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Categorii etichetate" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Etichete \"Categorii" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Numele proiectului" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Email companie" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Numele companiei" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Adresa companiei" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Numărul de telefon al companiei" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 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:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Utilizator gazdă e-mail" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Suma maximă pentru plată" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Suma minimă pentru plată" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Date analitice" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Date publicitare" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Configurație" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Codul limbii" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Numele limbii" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Indicatorul de limbă, dacă există :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Obțineți o listă a limbilor acceptate" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Rezultate căutare produse" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Rezultate căutare produse" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Părinte al acestui grup" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Grup de atribute părinte" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Numele grupului de atribute" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Grup de atribute" -#: core/models.py:147 +#: core/models.py:149 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:148 +#: core/models.py:150 msgid "authentication info" msgstr "Informații privind autentificarea" -#: core/models.py:153 +#: core/models.py:155 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:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Procentul de majorare al furnizorului" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Numele acestui vânzător" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Numele furnizorului" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Identificator intern de etichetă pentru eticheta produsului" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Nume etichetă" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Nume ușor de utilizat pentru eticheta produsului" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Nume afișare etichetă" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Etichetă produs" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "etichetă de categorie" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "Etichete de categorie" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Încărcați o imagine care reprezintă această categorie" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Categorie imagine" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" -msgstr "Definiți un procent de majorare pentru produsele din această categorie" +msgstr "" +"Definiți un procent de majorare pentru produsele din această categorie" -#: core/models.py:346 +#: core/models.py:347 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:347 +#: core/models.py:348 msgid "parent category" msgstr "Categoria de părinți" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Numele categoriei" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Furnizați un nume pentru această categorie" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Adăugați o descriere detaliată pentru această categorie" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Descriere categorie" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "etichete care ajută la descrierea sau gruparea acestei categorii" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Prioritate" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Denumirea acestui brand" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Nume de marcă" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Încărcați un logo care reprezintă acest brand" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Brand imagine mică" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Încărcați un logo mare care reprezintă acest brand" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Imagine de marcă mare" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Adăugați o descriere detaliată a mărcii" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Descrierea mărcii" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Categorii opționale cu care acest brand este asociat" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Categorii" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Categoria din care face parte acest produs" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "Opțional, asociați acest produs cu un brand" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Etichete care ajută la descrierea sau gruparea acestui produs" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Indică dacă acest produs este livrat digital" - -#: core/models.py:549 -msgid "is product digital" -msgstr "Produsul este digital" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Furnizați o denumire clară de identificare a produsului" - -#: core/models.py:556 -msgid "product name" -msgstr "Denumirea produsului" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Adăugați o descriere detaliată a produsului" - -#: core/models.py:562 -msgid "product description" -msgstr "Descrierea produsului" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Numărul piesei pentru acest produs" - -#: core/models.py:570 -msgid "part number" -msgstr "Numărul piesei" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Categoria acestui atribut" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Grupul acestui atribut" - -#: core/models.py:690 -msgid "string" -msgstr "Șir de caractere" - -#: core/models.py:691 -msgid "integer" -msgstr "Număr întreg" - -#: core/models.py:692 -msgid "float" -msgstr "Float" - -#: core/models.py:693 -msgid "boolean" -msgstr "Boolean" - -#: core/models.py:694 -msgid "array" -msgstr "Array" - -#: core/models.py:695 -msgid "object" -msgstr "Obiect" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Tipul valorii atributului" - -#: core/models.py:698 -msgid "value type" -msgstr "Tipul de valoare" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Denumirea acestui atribut" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Numele atributului" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Atribut" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Atributul acestei valori" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "Produsul specific asociat cu valoarea acestui atribut" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "Produs asociat" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "Valoarea specifică pentru acest atribut" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" - -#: core/models.py:795 -msgid "image alt text" -msgstr "Textul alt al imaginii" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "Încărcați fișierul de imagine pentru acest produs" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "Imaginea produsului" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "Determină ordinea în care sunt afișate imaginile" - -#: core/models.py:806 -msgid "display priority" -msgstr "Prioritatea afișării" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "Produsul pe care îl reprezintă această imagine" - -#: core/models.py:825 -msgid "product images" -msgstr "Imagini ale produsului" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "Procentul de reducere pentru produsele selectate" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "Procent de reducere" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "Furnizați un nume unic pentru această promoție" - -#: core/models.py:873 -msgid "promotion name" -msgstr "Numele promoției" - -#: core/models.py:879 -msgid "promotion description" -msgstr "Descrierea promoției" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "Selectați ce produse sunt incluse în această promoție" - -#: core/models.py:885 -msgid "included products" -msgstr "Produse incluse" - -#: core/models.py:889 -msgid "promotion" -msgstr "Promovare" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "Furnizorul care furnizează acest stoc de produse" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "Furnizor asociat" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "Prețul final pentru client după majorări" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "Prețul de vânzare" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "Produsul asociat cu această intrare în stoc" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "Produs asociat" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "Prețul plătit vânzătorului pentru acest produs" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "Prețul de achiziție al furnizorului" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "Cantitatea disponibilă a produsului în stoc" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "Cantitate în stoc" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuit de furnizor pentru identificarea produsului" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "SKU al furnizorului" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "Fișier digital asociat cu acest stoc, dacă este cazul" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "Fișier digital" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "Intrări pe stoc" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Categoria din care face parte acest produs" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "Opțional, asociați acest produs cu un brand" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Etichete care ajută la descrierea sau gruparea acestui produs" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Indică dacă acest produs este livrat digital" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Produsul este digital" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Furnizați o denumire clară de identificare a produsului" + +#: core/models.py:632 +msgid "product name" +msgstr "Denumirea produsului" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Adăugați o descriere detaliată a produsului" + +#: core/models.py:638 +msgid "product description" +msgstr "Descrierea produsului" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Numărul piesei pentru acest produs" + +#: core/models.py:646 +msgid "part number" +msgstr "Numărul piesei" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Categoria acestui atribut" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "Grupul acestui atribut" + +#: core/models.py:766 +msgid "string" +msgstr "Șir de caractere" + +#: core/models.py:767 +msgid "integer" +msgstr "Număr întreg" + +#: core/models.py:768 +msgid "float" +msgstr "Float" + +#: core/models.py:769 +msgid "boolean" +msgstr "Boolean" + +#: core/models.py:770 +msgid "array" +msgstr "Array" + +#: core/models.py:771 +msgid "object" +msgstr "Obiect" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Tipul valorii atributului" + +#: core/models.py:774 +msgid "value type" +msgstr "Tipul de valoare" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Denumirea acestui atribut" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Numele atributului" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Atribut" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Atributul acestei valori" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "Produsul specific asociat cu valoarea acestui atribut" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "Valoarea specifică pentru acest atribut" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" + +#: core/models.py:871 +msgid "image alt text" +msgstr "Textul alt al imaginii" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "Încărcați fișierul de imagine pentru acest produs" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "Imaginea produsului" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "Determină ordinea în care sunt afișate imaginile" + +#: core/models.py:882 +msgid "display priority" +msgstr "Prioritatea afișării" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "Produsul pe care îl reprezintă această imagine" + +#: core/models.py:901 +msgid "product images" +msgstr "Imagini ale produsului" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "Procentul de reducere pentru produsele selectate" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "Procent de reducere" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "Furnizați un nume unic pentru această promoție" + +#: core/models.py:949 +msgid "promotion name" +msgstr "Numele promoției" + +#: core/models.py:955 +msgid "promotion description" +msgstr "Descrierea promoției" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "Selectați ce produse sunt incluse în această promoție" + +#: core/models.py:961 +msgid "included products" +msgstr "Produse incluse" + +#: core/models.py:965 +msgid "promotion" +msgstr "Promovare" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Utilizatorul care deține această listă de dorințe" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Proprietarul listei de dorințe" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Lista dorințelor" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} nu există: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Documentar" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Documentare" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Nerezolvat" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Linia de adresă pentru client" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Linia de adresă" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Strada" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Districtul" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Oraș" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Regiunea" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Cod poștal" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Țara" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Punct de geolocație (longitudine, latitudine)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Răspuns JSON complet de la geocoder pentru această adresă" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Răspuns JSON stocat de la serviciul de geocodare" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Adresă" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Adrese" -#: core/models.py:1205 +#: core/models.py:1206 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:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Cod promoțional de identificare" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Valoarea fixă a reducerii" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Reducere procentuală" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Data la care expiră codul promoțional" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Timpul final de valabilitate" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Timestamp de la care acest cod promoțional este valabil" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Ora de începere a valabilității" -#: core/models.py:1238 +#: core/models.py:1239 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:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Timestamp de utilizare" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Utilizator atribuit" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Cod promoțional" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Coduri promoționale" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1847,140 +1842,149 @@ msgstr "" "Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele " "sau niciuna." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Codul promoțional a fost deja utilizat" -#: core/models.py:1288 +#: core/models.py:1289 #, 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:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "Adresa de facturare utilizată pentru această comandă" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Cod promoțional opțional aplicat la această comandă" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Cod promoțional aplicat" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "Adresa de expediere utilizată pentru această comandă" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Adresa de expediere" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Stadiul actual al comenzii în ciclul său de viață" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Stadiul comenzii" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 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:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "Reprezentarea JSON a atributelor comenzii pentru această comandă" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "Utilizatorul care a plasat comanda" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Utilizator" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Momentul în care comanda a fost finalizată" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Cumpărați timp" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Un identificator ușor de citit pentru comandă" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "ID lizibil de către om" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Comandă" -#: core/models.py:1403 +#: core/models.py:1404 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:1437 +#: core/models.py:1438 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:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Nu puteți adăuga produse inactive la comandă" -#: core/models.py:1459 +#: core/models.py:1460 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:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 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:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nu există cu interogarea <{query}>" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Codul promoțional nu există" -#: core/models.py:1540 +#: core/models.py:1541 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:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Adresa nu există" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 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:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Valoare forță invalidă" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Nu puteți achiziționa o comandă goală!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "" +"Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Un utilizator fără sold nu poate cumpăra cu sold!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Insuficiența fondurilor pentru finalizarea comenzii" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1988,120 +1992,126 @@ 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:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Metodă de plată invalidă: {payment_method} de la {available_payment_methods}!" +"Metodă de plată invalidă: {payment_method} de la " +"{available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 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:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Prețul de achiziție la momentul comenzii" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarii interne pentru administratori cu privire la acest produs comandat" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Observații interne" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Notificări pentru utilizatori" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "Reprezentarea JSON a atributelor acestui element" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Atribute de produs ordonate" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Trimitere la comanda mamă care conține acest produs" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Ordinul părinților" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Produsul specific asociat cu această linie de comandă" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Cantitatea acestui produs specific din comandă" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Cantitatea produsului" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Starea actuală a acestui produs în comandă" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Starea liniei de produse" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "Comandaprodusul trebuie să aibă o comandă asociată!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "acțiune greșită specificată pentru feedback: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "" "Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Descărcare" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Descărcări" -#: core/models.py:1891 +#: core/models.py:1904 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:1921 +#: core/models.py:1934 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:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Comentarii de feedback" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +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" +"Face referire la produsul specific dintr-o comandă despre care este vorba în" +" acest feedback" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Produs aferent comenzii" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Rating atribuit de utilizator pentru produs" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Evaluarea produsului" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Feedback" @@ -2109,8 +2119,8 @@ msgstr "Feedback" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat " -"pentru a adăuga feedback." +"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat" +" pentru a adăuga feedback." #: core/signals.py:62 msgid "error during promocode creation: {e!s}" @@ -2118,7 +2128,7 @@ msgstr "Eroare în timpul creării codului promoțional: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2127,7 +2137,7 @@ msgid "order confirmation" msgstr "Confirmarea comenzii" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2144,8 +2154,7 @@ msgstr "Bună ziua %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Vă mulțumim pentru comanda dvs. #%(order.pk)s! Suntem încântați să vă " @@ -2153,14 +2162,14 @@ msgstr "" "comenzii dvs:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Total" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2183,20 +2192,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "Salutări,
echipa %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Toate drepturile rezervate" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Comanda livrată" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Bună ziua %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2205,7 +2214,7 @@ msgstr "" "Am procesat cu succes comanda dvs. №%(order_uuid)s! Mai jos sunt detaliile " "comenzii dvs:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2213,12 +2222,12 @@ msgstr "" "informații suplimentare\n" " informații suplimentare" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Valoare" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2227,7 +2236,7 @@ msgstr "" "Dacă aveți întrebări, nu ezitați să contactați asistența noastră la " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Cele mai bune salutări,
echipa %(project_name)s" @@ -2239,12 +2248,11 @@ msgstr "Cheie" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția. " -"Mai jos sunt detaliile comenzii dvs:" +"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția." +" Mai jos sunt detaliile comenzii dvs:" #: core/templates/shipped_order_created_email.html:123 #: core/templates/shipped_order_delivered_email.html:123 @@ -2279,27 +2287,17 @@ msgstr "Sunt necesare atât datele, cât și timpul de așteptare" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "Valoare timeout invalidă, trebuie să fie între 0 și 216000 secunde" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} trebuie să fie model" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} trebuie să fie un obiect listă" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Contactați-ne inițiat" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Confirmarea comenzii" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Comanda livrată" @@ -2323,15 +2321,15 @@ msgstr "" msgid "invalid phone number format" msgstr "Format invalid al numărului de telefon" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Puteți descărca activul digital o singură dată" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon nu a fost găsit" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 85bb0549..ddc6f19d 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 434082bc..2b956214 100644 --- a/core/locale/ru_RU/LC_MESSAGES/django.po +++ b/core/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,121 +13,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "Уникальный идентификатор" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "" "Уникальный идентификатор используется для точной идентификации любого " "объекта базы данных" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "Активен" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Если установлено значение false, этот объект не может быть виден " "пользователям без необходимого разрешения" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "Создано" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "Когда объект впервые появился в базе данных" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "Модифицированный" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "Когда объект был отредактирован в последний раз" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "Переводы" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "Общие сведения" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "Отношения" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "Метаданные" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "Временные метки" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Активировать выбранные %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s успешно активирован!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "Выбранные товары активированы!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Деактивировать выбранные %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "%(verbose_name_plural)s успешно деактивирован." +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "Выбранные товары были деактивированы!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "Значение атрибута" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "Значения атрибутов" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "Изображение" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "Изображения" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "Наличие" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "Наличия" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "Заказанный товар" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "Заказанные товары" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "Дети" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "Конфигурация" @@ -247,7 +246,8 @@ msgstr "" "элементов" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Переписывание некоторых полей существующей группы атрибутов с сохранением " "нередактируемых полей" @@ -301,7 +301,8 @@ msgstr "" "значений" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Переписывание некоторых полей существующего значения атрибута с сохранением " "нередактируемых значений" @@ -345,11 +346,11 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Поиск подстроки с учетом регистра в human_readable_id, order_products." -"product.name и order_products.product.partnumber" +"Поиск подстроки с учетом регистра в human_readable_id, " +"order_products.product.name и order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -385,9 +386,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Упорядочивайте по одному из следующих признаков: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Префикс '-' " @@ -463,8 +464,8 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и " -"`attributes`." +"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и" +" `attributes`." #: core/docs/drf/viewsets.py:266 msgid "remove product from order" @@ -487,8 +488,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и " -"`attributes`." +"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и" +" `attributes`." #: core/docs/drf/viewsets.py:281 msgid "list all wishlists (simple view)" @@ -569,29 +570,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Фильтр по одной или нескольким парам имя/значение атрибута. \n" "- **Синтаксис**: `attr_name=method-value[;attr2=method2-value2]...`.\n" -"- **Методы** (по умолчанию используется `icontains`, если опущено): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`.\n" -"- **Типизация значений**: JSON сначала пытается принять значение (так что вы " -"можете передавать списки/дискреты), `true`/`false` для булевых, целых чисел, " -"плавающих; в противном случае обрабатывается как строка. \n" -"- **Base64**: префикс `b64-` для безопасного для URL base64-кодирования " -"исходного значения. \n" +"- **Методы** (по умолчанию используется `icontains`, если опущено): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Типизация значений**: JSON сначала пытается принять значение (так что вы можете передавать списки/дискреты), `true`/`false` для булевых, целых чисел, плавающих; в противном случае обрабатывается как строка. \n" +"- **Base64**: префикс `b64-` для безопасного для URL base64-кодирования исходного значения. \n" "Примеры: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -646,14 +636,11 @@ msgstr "(точно) Цифровые и физические" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Список полей для сортировки, разделенных запятыми. Для сортировки по " -"убыванию используйте префикс `-`. \n" -"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, " -"random" +"Список полей для сортировки, разделенных запятыми. Для сортировки по убыванию используйте префикс `-`. \n" +"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 msgid "retrieve a single product (detailed view)" @@ -829,8 +816,8 @@ msgstr "Атрибуты" msgid "Quantity" msgstr "Количество" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "Слаг" @@ -913,7 +900,7 @@ msgstr "Кэшированные данные" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-данные из запрашиваемого URL" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "Допускаются только URL-адреса, начинающиеся с http(s)://" @@ -946,7 +933,7 @@ msgstr "" "варианты!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "Неправильный тип получен из метода order.buy(): {type(instance)!s}" @@ -990,8 +977,8 @@ msgstr "Купить заказ" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Пожалуйста, отправьте атрибуты в виде строки, отформатированной как " "attr1=value1,attr2=value2" @@ -1000,7 +987,7 @@ msgstr "" msgid "original address string provided by the user" msgstr "Оригинальная строка адреса, предоставленная пользователем" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} не существует: {uuid}" @@ -1013,99 +1000,100 @@ msgstr "Предел должен быть от 1 до 10" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - работает как шарм" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "Атрибуты" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "Сгруппированные атрибуты" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "Группы атрибутов" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "Категории" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "Бренды" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "Категории" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "Процент наценки" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "" "Какие атрибуты и значения можно использовать для фильтрации этой категории." -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Минимальные и максимальные цены на товары в этой категории, если они " "доступны." -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "Теги для этой категории" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "Продукты в этой категории" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "Поставщики" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "Широта (координата Y)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "Долгота (координата X)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "Как" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" "Значение рейтинга от 1 до 10, включительно, или 0, если он не установлен." -#: core/graphene/object_types.py:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "Представляет собой отзыв пользователя." -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "Уведомления" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "Если применимо, загрузите url для этого продукта заказа" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "Список товаров, заказанных в этом заказе" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "Адрес для выставления счетов" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" @@ -1113,875 +1101,889 @@ msgstr "" "Адрес доставки для данного заказа, оставьте пустым, если он совпадает с " "адресом выставления счета или не применяется" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "Общая стоимость этого заказа" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "Общее количество продуктов в заказе" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "Все ли товары в заказе представлены в цифровом виде" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "Операции для этого заказа" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "Заказы" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "URL-адрес изображения" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "Изображения товара" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "Категория" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "Отзывы" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "Бренд" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "Группы атрибутов" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "Цена" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "Количество" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "Количество отзывов" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "Товары" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "Промокоды" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "Продукты в продаже" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "Промоакции" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "Поставщик" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "Товар" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "Продукты из списка желаний" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "Списки желаний" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "Теги товара" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "Категории с метками" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "Теги категорий" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "Название проекта" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "Электронная почта компании" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "Название компании" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "Адрес компании" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "Номер телефона компании" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 msgid "email from, sometimes it must be used instead of host user value" msgstr "" "'email from', иногда его нужно использовать вместо значения пользователя " "хоста." -#: core/graphene/object_types.py:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "Пользователь узла электронной почты" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "Максимальная сумма для оплаты" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "Минимальная сумма для оплаты" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "Аналитические данные" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "Рекламные данные" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "Конфигурация" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "Код языка" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "Название языка" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "Языковой флаг, если он существует :)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "Получите список поддерживаемых языков" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "Результаты поиска товаров" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "Результаты поиска товаров" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "Родитель этой группы" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "Родительская группа атрибутов" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "Имя группы атрибутов" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "Группа атрибутов" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API " -"поставщика." +"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API" +" поставщика." -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "Информация об аутентификации" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "Определите наценку для товаров, полученных от этого продавца" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "Процент наценки поставщика" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "Имя этого продавца" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "Название поставщика" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "Внутренний идентификатор тега для тега продукта" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "Название тега" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "Удобное название для метки продукта" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "Отображаемое имя тега" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "Метка продукта" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "тег категории" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "теги категорий" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "Загрузите изображение, представляющее эту категорию" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "Изображение категории" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "Определите процент наценки для товаров в этой категории" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "Родитель данной категории для формирования иерархической структуры" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "Родительская категория" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "Название категории" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "Укажите название этой категории" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "Добавьте подробное описание для этой категории" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "Описание категории" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "теги, которые помогают описать или сгруппировать эту категорию" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "Приоритет" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "Название этой марки" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "Название бренда" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "Загрузите логотип, представляющий этот бренд" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "Маленький образ бренда" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "Загрузите большой логотип, представляющий этот бренд" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "Большой имидж бренда" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "Добавьте подробное описание бренда" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "Описание бренда" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "Дополнительные категории, с которыми ассоциируется этот бренд" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "Категории" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "Категория, к которой относится этот продукт" +#: core/models.py:514 +msgid "the vendor supplying this product stock" +msgstr "Поставщик, поставляющий данный товар на склад" -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "По желанию ассоциируйте этот продукт с брендом" +#: core/models.py:515 +msgid "associated vendor" +msgstr "Ассоциированный поставщик" -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "Теги, которые помогают описать или сгруппировать этот продукт" +#: core/models.py:519 +msgid "final price to the customer after markups" +msgstr "Окончательная цена для покупателя после наценок" -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "Указывает, поставляется ли этот продукт в цифровом виде" +#: core/models.py:520 +msgid "selling price" +msgstr "Цена продажи" -#: core/models.py:549 -msgid "is product digital" -msgstr "Является ли продукт цифровым" +#: core/models.py:525 +msgid "the product associated with this stock entry" +msgstr "Продукт, связанный с этой складской записью" -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "Обеспечьте четкое идентификационное название продукта" - -#: core/models.py:556 -msgid "product name" -msgstr "Название продукта" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "Добавьте подробное описание продукта" - -#: core/models.py:562 -msgid "product description" -msgstr "Описание товара" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "Парт. номер для данного товара" - -#: core/models.py:570 -msgid "part number" -msgstr "Парт. номер" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "Категория этого атрибута" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "Группа этого атрибута" - -#: core/models.py:690 -msgid "string" -msgstr "Строка" - -#: core/models.py:691 -msgid "integer" -msgstr "Целое число" - -#: core/models.py:692 -msgid "float" -msgstr "Поплавок" - -#: core/models.py:693 -msgid "boolean" -msgstr "Булево" - -#: core/models.py:694 -msgid "array" -msgstr "Массив" - -#: core/models.py:695 -msgid "object" -msgstr "Объект" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "Тип значения атрибута" - -#: core/models.py:698 -msgid "value type" -msgstr "Тип значения" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "Имя этого атрибута" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "Имя атрибута" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "Атрибут" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "Атрибут этого значения" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "Конкретный продукт, связанный со значением этого атрибута" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 msgid "associated product" msgstr "Сопутствующий товар" +#: core/models.py:533 +msgid "the price paid to the vendor for this product" +msgstr "Цена, уплаченная продавцу за этот продукт" + +#: core/models.py:534 +msgid "vendor purchase price" +msgstr "Цена покупки у поставщика" + +#: core/models.py:538 +msgid "available quantity of the product in stock" +msgstr "Доступное количество продукта на складе" + +#: core/models.py:539 +msgid "quantity in stock" +msgstr "Количество на складе" + +#: core/models.py:543 +msgid "vendor-assigned SKU for identifying the product" +msgstr "Присвоенный поставщиком SKU для идентификации продукта" + +#: core/models.py:544 +msgid "vendor sku" +msgstr "SKU поставщика" + +#: core/models.py:550 +msgid "digital file associated with this stock if applicable" +msgstr "Цифровой файл, связанный с этой акцией, если применимо" + +#: core/models.py:551 +msgid "digital file" +msgstr "Цифровой файл" + +#: core/models.py:560 +msgid "stock entries" +msgstr "Наличия" + +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "Категория, к которой относится этот продукт" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "По желанию ассоциируйте этот продукт с брендом" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "Теги, которые помогают описать или сгруппировать этот продукт" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "Указывает, поставляется ли этот продукт в цифровом виде" + +#: core/models.py:625 +msgid "is product digital" +msgstr "Является ли продукт цифровым" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "Обеспечьте четкое идентификационное название продукта" + +#: core/models.py:632 +msgid "product name" +msgstr "Название продукта" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "Добавьте подробное описание продукта" + +#: core/models.py:638 +msgid "product description" +msgstr "Описание товара" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "Парт. номер для данного товара" + +#: core/models.py:646 +msgid "part number" +msgstr "Парт. номер" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "Категория этого атрибута" + #: core/models.py:760 +msgid "group of this attribute" +msgstr "Группа этого атрибута" + +#: core/models.py:766 +msgid "string" +msgstr "Строка" + +#: core/models.py:767 +msgid "integer" +msgstr "Целое число" + +#: core/models.py:768 +msgid "float" +msgstr "Поплавок" + +#: core/models.py:769 +msgid "boolean" +msgstr "Булево" + +#: core/models.py:770 +msgid "array" +msgstr "Массив" + +#: core/models.py:771 +msgid "object" +msgstr "Объект" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "Тип значения атрибута" + +#: core/models.py:774 +msgid "value type" +msgstr "Тип значения" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "Имя этого атрибута" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "Имя атрибута" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "Атрибут" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "Атрибут этого значения" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "Конкретный продукт, связанный со значением этого атрибута" + +#: core/models.py:836 msgid "the specific value for this attribute" msgstr "Конкретное значение для этого атрибута" -#: core/models.py:794 +#: core/models.py:870 msgid "provide alternative text for the image for accessibility" msgstr "" "Предоставьте альтернативный текст для изображения, чтобы обеспечить " "доступность" -#: core/models.py:795 +#: core/models.py:871 msgid "image alt text" msgstr "Альтовый текст изображения" -#: core/models.py:798 +#: core/models.py:874 msgid "upload the image file for this product" msgstr "Загрузите файл изображения для этого продукта" -#: core/models.py:799 core/models.py:824 +#: core/models.py:875 core/models.py:900 msgid "product image" msgstr "Изображение продукта" -#: core/models.py:805 +#: core/models.py:881 msgid "determines the order in which images are displayed" msgstr "Определяет порядок отображения изображений" -#: core/models.py:806 +#: core/models.py:882 msgid "display priority" msgstr "Приоритет отображения" -#: core/models.py:811 +#: core/models.py:887 msgid "the product that this image represents" msgstr "Продукт, который представлен на этом изображении" -#: core/models.py:825 +#: core/models.py:901 msgid "product images" msgstr "Изображения товаров" -#: core/models.py:866 +#: core/models.py:942 msgid "percentage discount for the selected products" msgstr "Процентная скидка на выбранные продукты" -#: core/models.py:867 +#: core/models.py:943 msgid "discount percentage" msgstr "Процент скидки" -#: core/models.py:872 +#: core/models.py:948 msgid "provide a unique name for this promotion" msgstr "Укажите уникальное имя для этой акции" -#: core/models.py:873 +#: core/models.py:949 msgid "promotion name" msgstr "Название акции" -#: core/models.py:879 +#: core/models.py:955 msgid "promotion description" msgstr "Описание акции" -#: core/models.py:884 +#: core/models.py:960 msgid "select which products are included in this promotion" msgstr "Выберите, какие продукты участвуют в этой акции" -#: core/models.py:885 +#: core/models.py:961 msgid "included products" msgstr "Включенные продукты" -#: core/models.py:889 +#: core/models.py:965 msgid "promotion" msgstr "Продвижение" -#: core/models.py:924 -msgid "the vendor supplying this product stock" -msgstr "Поставщик, поставляющий данный товар на склад" - -#: core/models.py:925 -msgid "associated vendor" -msgstr "Ассоциированный поставщик" - -#: core/models.py:929 -msgid "final price to the customer after markups" -msgstr "Окончательная цена для покупателя после наценок" - -#: core/models.py:930 -msgid "selling price" -msgstr "Цена продажи" - -#: core/models.py:935 -msgid "the product associated with this stock entry" -msgstr "Продукт, связанный с этой складской записью" - -#: core/models.py:943 -msgid "the price paid to the vendor for this product" -msgstr "Цена, уплаченная продавцу за этот продукт" - -#: core/models.py:944 -msgid "vendor purchase price" -msgstr "Цена покупки у поставщика" - -#: core/models.py:948 -msgid "available quantity of the product in stock" -msgstr "Доступное количество продукта на складе" - -#: core/models.py:949 -msgid "quantity in stock" -msgstr "Количество на складе" - -#: core/models.py:953 -msgid "vendor-assigned SKU for identifying the product" -msgstr "Присвоенный поставщиком SKU для идентификации продукта" - -#: core/models.py:954 -msgid "vendor sku" -msgstr "SKU поставщика" - -#: core/models.py:960 -msgid "digital file associated with this stock if applicable" -msgstr "Цифровой файл, связанный с этой акцией, если применимо" - -#: core/models.py:961 -msgid "digital file" -msgstr "Цифровой файл" - -#: core/models.py:970 -msgid "stock entries" -msgstr "Наличия" - -#: core/models.py:989 +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "Продукты, которые пользователь отметил как желаемые" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "Пользователь, владеющий этим списком желаний" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "Владелец вишлиста" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "Список желаний" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} не существует: {product_uuid}" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "Документальный фильм" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "Документальные фильмы" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "Неразрешенные" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "Адресная строка для клиента" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "Адресная строка" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "Улица" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "Округ" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "Город" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "Регион" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "Почтовый индекс" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "Страна" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "Геолокационная точка(долгота, широта)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "Полный JSON-ответ от геокодера для этого адреса" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "Сохраненный JSON-ответ от сервиса геокодирования" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "Адрес" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "Адреса" -#: core/models.py:1205 +#: core/models.py:1206 msgid "unique code used by a user to redeem a discount" msgstr "Уникальный код, используемый пользователем для получения скидки" -#: core/models.py:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "Идентификатор промо-кода" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "Фиксированная сумма скидки, применяемая, если процент не используется" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "Фиксированная сумма скидки" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Процентная скидка, применяемая, если фиксированная сумма не используется" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "Процентная скидка" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "Временная метка, когда истекает срок действия промокода" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "Время окончания срока действия" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "Время, с которого действует этот промокод" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "Время начала действия" -#: core/models.py:1238 +#: core/models.py:1239 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Временная метка, когда был использован промокод, пустая, если он еще не " "использовался" -#: core/models.py:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "Временная метка использования" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "Пользователь, назначенный на этот промокод, если применимо" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "Назначенный пользователь" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "Промокод" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "Промокоды" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Следует определить только один тип скидки (сумма или процент), но не оба или " -"ни один из них." +"Следует определить только один тип скидки (сумма или процент), но не оба или" +" ни один из них." -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "Промокоды" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Неверный тип скидки для промокода {self.uuid}" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "Адрес для выставления счетов, используемый для данного заказа" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "Дополнительный промокод, применяемый к этому заказу" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "Примененный промокод" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "Адрес доставки, используемый для данного заказа" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "Адрес доставки" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "Текущий статус заказа в его жизненном цикле" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "Статус заказа" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 msgid "json structure of notifications to display to users" msgstr "" -"JSON-структура уведомлений для отображения пользователям, в административном " -"интерфейсе используется табличный вид" +"JSON-структура уведомлений для отображения пользователям, в административном" +" интерфейсе используется табличный вид" -#: core/models.py:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "JSON-представление атрибутов заказа для этого заказа" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "Пользователь, разместивший заказ" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "Пользователь" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "Временная метка, когда заказ был завершен" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "Время покупки" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "Человекочитаемый идентификатор для заказа" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "человекочитаемый идентификатор" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "Заказать" -#: core/models.py:1403 +#: core/models.py:1404 msgid "a user must have only one pending order at a time" msgstr "Пользователь может одновременно иметь только один отложенный ордер!" -#: core/models.py:1437 +#: core/models.py:1438 msgid "you cannot add products to an order that is not a pending one" msgstr "Вы не можете добавить товары в заказ, который не является отложенным." -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "Вы не можете добавить неактивные товары в заказ" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "Вы не можете добавить больше товаров, чем есть на складе" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 msgid "you cannot remove products from an order that is not a pending one" -msgstr "Вы не можете удалить товары из заказа, который не является отложенным." +msgstr "" +"Вы не можете удалить товары из заказа, который не является отложенным." -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} не существует в запросе <{query}>." -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "Промокод не существует" -#: core/models.py:1540 +#: core/models.py:1541 msgid "you can only buy physical products with shipping address specified" msgstr "" "Вы можете купить физические товары только с указанным адресом доставки!" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "Адрес не существует" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "В данный момент вы не можете совершить покупку, пожалуйста, повторите " "попытку через несколько минут." -#: core/models.py:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "Недопустимое значение силы" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "Вы не можете приобрести пустой заказ!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "Вы не можете купить заказ без пользователя!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "Пользователь без баланса не может покупать с балансом!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "Недостаточно средств для выполнения заказа" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1989,116 +1991,122 @@ msgstr "" "Вы не можете купить без регистрации, пожалуйста, предоставьте следующую " "информацию: имя клиента, электронная почта клиента, номер телефона клиента" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Неверный способ оплаты: {payment_method} от {available_payment_methods}!" -#: core/models.py:1733 +#: core/models.py:1740 msgid "the price paid by the customer for this product at purchase time" msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки" -#: core/models.py:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "Покупная цена на момент заказа" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" -msgstr "Внутренние комментарии для администраторов об этом заказанном продукте" +msgstr "" +"Внутренние комментарии для администраторов об этом заказанном продукте" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "Внутренние комментарии" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "Уведомления пользователей" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "JSON-представление атрибутов этого элемента" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "Атрибуты заказанного продукта" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "Ссылка на родительский заказ, содержащий данный продукт" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "Родительский приказ" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "Конкретный продукт, связанный с этой линией заказа" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "Количество данного товара в заказе" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "Количество продукта" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "Текущий статус этого продукта в заказе" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "Состояние продуктовой линейки" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "У заказанного продукта должен быть связанный с ним заказ!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "указано неверное действие для обратной связи: {action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "Вы не можете отозвать заказ, который не был получен" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "Скачать" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "Скачать" -#: core/models.py:1891 +#: core/models.py:1904 msgid "you can not download a digital asset for a non-finished order" msgstr "Вы не можете загрузить цифровой актив для незавершенного заказа" -#: core/models.py:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "Комментарии пользователей об их опыте использования продукта" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "Комментарии к отзывам" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Ссылка на конкретный продукт в заказе, о котором идет речь в этом отзыве" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "Сопутствующий товар для заказа" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "Присвоенный пользователем рейтинг продукта" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "Рейтинг продукции" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "Обратная связь" @@ -2115,7 +2123,7 @@ msgstr "Ошибка при создании промокода: {e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2124,7 +2132,7 @@ msgid "order confirmation" msgstr "Подтверждение заказа" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2141,22 +2149,21 @@ msgstr "Здравствуйте %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Благодарим вас за заказ #%(order.pk)s! Мы рады сообщить Вам, что приняли Ваш " -"заказ в работу. Ниже приведены детали вашего заказа:" +"Благодарим вас за заказ #%(order.pk)s! Мы рады сообщить Вам, что приняли Ваш" +" заказ в работу. Ниже приведены детали вашего заказа:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "Всего" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2179,20 +2186,20 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "С наилучшими пожеланиями,
команда %(config.PROJECT_NAME)s" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "Все права защищены" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "Заказ доставлен" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "Здравствуйте, %(user_first_name)s," -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" @@ -2201,7 +2208,7 @@ msgstr "" "Мы успешно обработали ваш заказ №%(order_uuid)s! Ниже приведены детали " "вашего заказа:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2209,12 +2216,12 @@ msgstr "" "дополнительная\n" " информация" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "Значение" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -2223,7 +2230,7 @@ msgstr "" "Если у вас возникнут вопросы, обращайтесь в нашу службу поддержки по адресу " "%(contact_email)s." -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "С наилучшими пожеланиями,
команда %(project_name)s" @@ -2235,8 +2242,7 @@ msgstr "Ключ" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Спасибо за ваш заказ! Мы рады подтвердить вашу покупку. Ниже приведены " @@ -2277,27 +2283,17 @@ msgstr "" "Неверное значение тайм-аута, оно должно находиться в диапазоне от 0 до " "216000 секунд" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model} должна быть моделью" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} должен быть объектом списка" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME} | Свяжитесь с нами" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | Подтверждение заказа" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME} | Заказ доставлен" @@ -2314,21 +2310,22 @@ msgstr "Параметр NOMINATIM_URL должен быть настроен!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Размеры изображения не должны превышать w{max_width} x h{max_height} пикселей" +"Размеры изображения не должны превышать w{max_width} x h{max_height} " +"пикселей" #: core/validators.py:22 msgid "invalid phone number format" msgstr "Неверный формат телефонного номера" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "Вы можете загрузить цифровой актив только один раз" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "favicon не найден" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, 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 e15f5f93..b367b6c8 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 c0bd13f3..f6e92059 100644 --- a/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,117 +13,116 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/abstract.py:12 +#: core/abstract.py:11 msgid "unique id" msgstr "唯一 ID" -#: core/abstract.py:13 +#: core/abstract.py:12 msgid "unique id is used to surely identify any database object" msgstr "唯一 ID 用于确定识别任何数据库对象" -#: core/abstract.py:20 +#: core/abstract.py:19 msgid "is active" msgstr "处于活动状态" -#: core/abstract.py:21 +#: core/abstract.py:20 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "如果设置为 false,则没有必要权限的用户无法查看此对象" -#: core/abstract.py:24 core/choices.py:18 +#: core/abstract.py:22 core/choices.py:18 msgid "created" msgstr "创建" -#: core/abstract.py:24 +#: core/abstract.py:22 msgid "when the object first appeared on the database" msgstr "对象首次出现在数据库中的时间" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "modified" msgstr "改装" -#: core/abstract.py:27 +#: core/abstract.py:23 msgid "when the object was last modified" msgstr "对象最后一次编辑的时间" -#: core/admin.py:55 +#: core/admin.py:60 msgid "translations" msgstr "翻译" -#: core/admin.py:59 +#: core/admin.py:64 msgid "general" msgstr "一般情况" -#: core/admin.py:61 +#: core/admin.py:66 msgid "relations" msgstr "关系" -#: core/admin.py:66 core/admin.py:68 +#: core/admin.py:71 core/admin.py:73 msgid "metadata" msgstr "元数据" -#: core/admin.py:75 +#: core/admin.py:80 msgid "timestamps" msgstr "时间戳" -#: core/admin.py:81 core/admin.py:100 +#: core/admin.py:87 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "激活选定的 %(verbose_name_plural)s" -#: core/admin.py:86 -#, python-format -msgid "%(verbose_name_plural)s activated successfully!" -msgstr "%(verbose_name_plural)s_激活成功!" +#: core/admin.py:90 +msgid "selected items have been activated." +msgstr "所选项目已激活!" -#: core/admin.py:88 core/admin.py:105 +#: core/admin.py:92 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "停用选定的 %(verbose_name_plural)s" -#: core/admin.py:93 -#, python-format -msgid "%(verbose_name_plural)s deactivated successfully." -msgstr "成功停用%(verbose_name_plural)s_。" +#: core/admin.py:95 +msgid "selected items have been deactivated." +msgstr "选定项目已停用!" -#: core/admin.py:115 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 +#: core/admin.py:103 core/graphene/object_types.py:418 +#: core/graphene/object_types.py:425 core/models.py:835 core/models.py:843 msgid "attribute value" msgstr "属性值" -#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 +#: core/admin.py:104 core/graphene/object_types.py:50 core/models.py:844 msgid "attribute values" msgstr "属性值" -#: core/admin.py:124 +#: core/admin.py:112 msgid "image" msgstr "图片" -#: core/admin.py:125 core/graphene/object_types.py:364 +#: core/admin.py:113 core/graphene/object_types.py:371 msgid "images" msgstr "图片" -#: core/admin.py:133 core/models.py:969 +#: core/admin.py:121 core/models.py:559 msgid "stock" msgstr "库存" -#: core/admin.py:134 core/graphene/object_types.py:465 +#: core/admin.py:122 core/graphene/object_types.py:472 msgid "stocks" msgstr "股票" -#: core/admin.py:144 core/models.py:1791 +#: core/admin.py:132 core/models.py:1801 msgid "order product" msgstr "订购产品" -#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 +#: core/admin.py:133 core/graphene/object_types.py:292 core/models.py:1802 msgid "order products" msgstr "订购产品" -#: core/admin.py:158 core/admin.py:159 +#: core/admin.py:146 core/admin.py:147 msgid "children" msgstr "儿童" -#: core/admin.py:471 +#: core/admin.py:480 msgid "Config" msgstr "配置" @@ -215,9 +214,7 @@ msgstr "以企业身份购买订单" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "" -"使用提供的带有 `product_uuid` 和 `attributes` 的 `products` 作为企业购买订" -"单。" +msgstr "使用提供的带有 `product_uuid` 和 `attributes` 的 `products` 作为企业购买订单。" #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -240,7 +237,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "重写保存不可编辑的现有属性组" #: core/docs/drf/viewsets.py:63 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "重写现有属性组的某些字段,保存不可编辑的内容" #: core/docs/drf/viewsets.py:70 @@ -288,7 +286,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "重写现有属性值,保存不可编辑属性" #: core/docs/drf/viewsets.py:117 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "重写现有属性值的某些字段,保存不可编辑的属性值" #: core/docs/drf/viewsets.py:124 @@ -325,11 +324,11 @@ msgstr "对于非工作人员用户,只有他们自己的订单才会被退回 #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"在 human_readable_id、order_products.product.name 和 order_products.product." -"partnumber 中进行不区分大小写的子串搜索" +"在 human_readable_id、order_products.product.name 和 " +"order_products.product.partnumber 中进行不区分大小写的子串搜索" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -361,12 +360,11 @@ msgstr "按订单状态筛选(不区分大小写的子串匹配)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"按以下一项排序:uuid、human_readable_id、user_email、user、status、created、" -"modified、buy_time、random。前缀\"-\"表示降序(例如\"-buy_time\")。" +"按以下一项排序:uuid、human_readable_id、user_email、user、status、created、modified、buy_time、random。前缀\"-\"表示降序(例如\"-buy_time\")。" #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -401,9 +399,7 @@ 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\",则启动交易。" +msgstr "完成订单购买。如果使用 \"force_balance\",则使用用户的余额完成购买;如果使用 \"force_payment\",则启动交易。" #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 msgid "purchase an order without account creation" @@ -522,25 +518,17 @@ msgstr "使用提供的 `product_uuids` 从愿望清单中删除多个产品" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "根据一个或多个属性名/值对进行筛选。 \n" "- 语法**:`attr_name=method-value[;attr2=method2-value2]...`\n" -"- 方法**(如果省略,默认为 `icontains`):iexact`、`exact`、`icontains`、" -"`contains`、`isnull`、`startswith`、`istartswith`、`endswith`、`iendswith`、" -"`regex`、`iregex`、`lt`、`lte`、`gt`、`gte`、`in`。\n" -"- 值键入**:首先尝试使用 JSON(因此可以传递列表/字段),布尔、整数、浮点数使" -"用 `true`/`false`,否则视为字符串。 \n" +"- 方法**(如果省略,默认为 `icontains`):iexact`、`exact`、`icontains`、`contains`、`isnull`、`startswith`、`istartswith`、`endswith`、`iendswith`、`regex`、`iregex`、`lt`、`lte`、`gt`、`gte`、`in`。\n" +"- 值键入**:首先尝试使用 JSON(因此可以传递列表/字段),布尔、整数、浮点数使用 `true`/`false`,否则视为字符串。 \n" "- **Base64**:以 `b64-` 作为前缀,对原始值进行 URL 安全的 base64 编码。 \n" "示例 \n" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\"、\"bluetooth\"]`、\n" @@ -596,8 +584,7 @@ msgstr "(准确)数字与实物" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" "用逗号分隔的要排序的字段列表。前缀为 `-` 表示降序。 \n" @@ -770,8 +757,8 @@ msgstr "属性" msgid "Quantity" msgstr "数量" -#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 -#: core/models.py:586 +#: core/filters.py:73 core/filters.py:355 core/models.py:377 +#: core/models.py:471 core/models.py:662 msgid "Slug" msgstr "蛞蝓" @@ -852,7 +839,7 @@ msgstr "缓存数据" msgid "camelized JSON data from the requested URL" msgstr "从请求的 URL 中获取驼峰化 JSON 数据" -#: core/graphene/mutations.py:64 core/views.py:196 +#: core/graphene/mutations.py:64 core/views.py:350 msgid "only URLs starting with http(s):// are allowed" msgstr "只允许使用以 http(s):// 开头的 URL" @@ -883,7 +870,7 @@ msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "请提供 order_uuid 或 order_hr_id(互斥)!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 -#: core/graphene/mutations.py:483 core/viewsets.py:341 +#: core/graphene/mutations.py:483 core/viewsets.py:582 msgid "wrong type came from order.buy() method: {type(instance)!s}" msgstr "order.buy() 方法中的类型有误:{type(instance)!s}" @@ -927,15 +914,15 @@ msgstr "购买订单" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "请以字符串形式发送属性,格式如 attr1=value1,attr2=value2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" msgstr "用户提供的原始地址字符串" -#: core/graphene/mutations.py:580 core/viewsets.py:236 core/viewsets.py:344 +#: core/graphene/mutations.py:580 core/viewsets.py:390 core/viewsets.py:585 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} 不存在:{uuid}不存在" @@ -948,1067 +935,1085 @@ msgstr "限值必须在 1 和 10 之间" msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 工作起来得心应手" -#: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 +#: core/graphene/object_types.py:57 core/graphene/object_types.py:275 +#: core/graphene/object_types.py:316 core/models.py:789 core/models.py:1362 msgid "attributes" msgstr "属性" -#: core/graphene/object_types.py:68 +#: core/graphene/object_types.py:70 msgid "grouped attributes" msgstr "分组属性" -#: core/graphene/object_types.py:75 +#: core/graphene/object_types.py:77 msgid "groups of attributes" msgstr "属性组" -#: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 +#: core/graphene/object_types.py:91 core/graphene/object_types.py:125 +#: core/graphene/object_types.py:155 core/models.py:402 core/models.py:753 msgid "categories" msgstr "类别" -#: core/graphene/object_types.py:96 core/models.py:484 +#: core/graphene/object_types.py:98 core/models.py:485 msgid "brands" msgstr "品牌" -#: core/graphene/object_types.py:125 +#: core/graphene/object_types.py:127 msgid "category image url" msgstr "类别" -#: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:338 +#: core/graphene/object_types.py:128 core/graphene/object_types.py:223 +#: core/models.py:339 msgid "markup percentage" msgstr "加价百分比" -#: core/graphene/object_types.py:129 +#: core/graphene/object_types.py:131 msgid "which attributes and values can be used for filtering this category." msgstr "哪些属性和值可用于筛选该类别。" -#: core/graphene/object_types.py:133 -msgid "minimum and maximum prices for products in this category, if available." +#: core/graphene/object_types.py:135 +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "该类别产品的最低和最高价格(如有)。" -#: core/graphene/object_types.py:135 +#: core/graphene/object_types.py:137 msgid "tags for this category" msgstr "此类别的标签" -#: core/graphene/object_types.py:136 +#: core/graphene/object_types.py:138 msgid "products in this category" msgstr "该类别中的产品" -#: core/graphene/object_types.py:228 core/models.py:170 +#: core/graphene/object_types.py:230 core/models.py:172 msgid "vendors" msgstr "供应商" -#: core/graphene/object_types.py:232 +#: core/graphene/object_types.py:234 msgid "Latitude (Y coordinate)" msgstr "纬度(Y 坐标)" -#: core/graphene/object_types.py:233 +#: core/graphene/object_types.py:235 msgid "Longitude (X coordinate)" msgstr "经度(X 坐标)" -#: core/graphene/object_types.py:261 +#: core/graphene/object_types.py:263 msgid "comment" msgstr "如何" -#: core/graphene/object_types.py:262 +#: core/graphene/object_types.py:264 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "评级值从 1 到 10(包括 10),如果未设置,则为 0。" -#: core/graphene/object_types.py:269 +#: core/graphene/object_types.py:271 msgid "represents feedback from a user." msgstr "代表用户的反馈意见。" -#: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:1355 +#: core/graphene/object_types.py:276 core/graphene/object_types.py:317 +#: core/models.py:1356 msgid "notifications" msgstr "通知" -#: core/graphene/object_types.py:275 +#: core/graphene/object_types.py:277 msgid "download url for this order product if applicable" msgstr "此订单产品的下载网址(如适用" -#: core/graphene/object_types.py:304 +#: core/graphene/object_types.py:306 msgid "a list of order products in this order" msgstr "该订单中的订单产品列表" -#: core/graphene/object_types.py:306 core/models.py:1325 +#: core/graphene/object_types.py:308 core/models.py:1326 msgid "billing address" msgstr "账单地址" -#: core/graphene/object_types.py:309 +#: core/graphene/object_types.py:311 msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "此订单的送货地址,如果与账单地址相同或不适用,请留空" -#: core/graphene/object_types.py:311 +#: core/graphene/object_types.py:313 msgid "total price of this order" msgstr "订单总价" -#: core/graphene/object_types.py:312 +#: core/graphene/object_types.py:314 msgid "total quantity of products in order" msgstr "订单中产品的总数量" -#: core/graphene/object_types.py:313 +#: core/graphene/object_types.py:315 msgid "are all products in the order digital" msgstr "订单中的所有产品都是数字产品吗?" -#: core/graphene/object_types.py:333 core/models.py:1389 +#: core/graphene/object_types.py:318 +msgid "transactions for this order" +msgstr "此订单的交易" + +#: core/graphene/object_types.py:337 core/models.py:1390 msgid "orders" msgstr "订单" -#: core/graphene/object_types.py:349 +#: core/graphene/object_types.py:356 msgid "image url" msgstr "图片 URL" -#: core/graphene/object_types.py:356 +#: core/graphene/object_types.py:363 msgid "product's images" msgstr "产品图片" -#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 +#: core/graphene/object_types.py:370 core/models.py:401 core/models.py:605 msgid "category" msgstr "类别" -#: core/graphene/object_types.py:365 core/models.py:1945 +#: core/graphene/object_types.py:372 core/models.py:1960 msgid "feedbacks" msgstr "反馈意见" -#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 +#: core/graphene/object_types.py:373 core/models.py:484 core/models.py:614 msgid "brand" msgstr "品牌" -#: core/graphene/object_types.py:367 core/models.py:110 +#: core/graphene/object_types.py:374 core/models.py:112 msgid "attribute groups" msgstr "属性组" -#: core/graphene/object_types.py:368 +#: core/graphene/object_types.py:375 #: core/templates/digital_order_created_email.html:111 -#: core/templates/digital_order_delivered_email.html:110 +#: core/templates/digital_order_delivered_email.html:109 #: core/templates/shipped_order_created_email.html:109 #: core/templates/shipped_order_delivered_email.html:109 msgid "price" msgstr "价格" -#: core/graphene/object_types.py:369 +#: core/graphene/object_types.py:376 #: core/templates/digital_order_created_email.html:110 -#: core/templates/digital_order_delivered_email.html:109 +#: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:108 #: core/templates/shipped_order_delivered_email.html:108 msgid "quantity" msgstr "数量" -#: core/graphene/object_types.py:370 +#: core/graphene/object_types.py:377 msgid "number of feedbacks" msgstr "反馈数量" -#: core/graphene/object_types.py:388 core/models.py:591 +#: core/graphene/object_types.py:395 core/models.py:667 msgid "products" msgstr "产品" -#: core/graphene/object_types.py:436 +#: core/graphene/object_types.py:443 msgid "promocodes" msgstr "促销代码" -#: core/graphene/object_types.py:446 +#: core/graphene/object_types.py:453 msgid "products on sale" msgstr "销售产品" -#: core/graphene/object_types.py:453 core/models.py:890 +#: core/graphene/object_types.py:460 core/models.py:966 msgid "promotions" msgstr "促销活动" -#: core/graphene/object_types.py:457 core/models.py:169 +#: core/graphene/object_types.py:464 core/models.py:171 msgid "vendor" msgstr "供应商" -#: core/graphene/object_types.py:458 core/models.py:590 +#: core/graphene/object_types.py:465 core/models.py:666 #: core/templates/digital_order_created_email.html:109 -#: core/templates/digital_order_delivered_email.html:108 +#: core/templates/digital_order_delivered_email.html:107 #: core/templates/shipped_order_created_email.html:107 #: core/templates/shipped_order_delivered_email.html:107 msgid "product" msgstr "产品" -#: core/graphene/object_types.py:469 core/models.py:990 +#: core/graphene/object_types.py:476 core/models.py:991 msgid "wishlisted products" msgstr "心愿单上的产品" -#: core/graphene/object_types.py:475 core/models.py:1007 +#: core/graphene/object_types.py:482 core/models.py:1008 msgid "wishlists" msgstr "愿望清单" -#: core/graphene/object_types.py:479 +#: core/graphene/object_types.py:486 msgid "tagged products" msgstr "标签产品" -#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 +#: core/graphene/object_types.py:493 core/models.py:216 core/models.py:620 msgid "product tags" msgstr "产品标签" -#: core/graphene/object_types.py:490 +#: core/graphene/object_types.py:497 msgid "tagged categories" msgstr "标签类别" -#: core/graphene/object_types.py:497 +#: core/graphene/object_types.py:504 msgid "categories tags" msgstr "类别标签" -#: core/graphene/object_types.py:501 +#: core/graphene/object_types.py:508 msgid "project name" msgstr "项目名称" -#: core/graphene/object_types.py:502 +#: core/graphene/object_types.py:509 msgid "company email" msgstr "公司电子邮件" -#: core/graphene/object_types.py:503 +#: core/graphene/object_types.py:510 msgid "company name" msgstr "公司名称" -#: core/graphene/object_types.py:504 +#: core/graphene/object_types.py:511 msgid "company address" msgstr "公司地址" -#: core/graphene/object_types.py:505 +#: core/graphene/object_types.py:512 msgid "company phone number" msgstr "公司电话号码" -#: core/graphene/object_types.py:506 +#: core/graphene/object_types.py:513 msgid "email from, sometimes it must be used instead of host user value" msgstr "电子邮件来自\",有时必须使用它来代替主机用户值" -#: core/graphene/object_types.py:507 +#: core/graphene/object_types.py:514 msgid "email host user" msgstr "电子邮件主机用户" -#: core/graphene/object_types.py:508 +#: core/graphene/object_types.py:515 msgid "maximum amount for payment" msgstr "最高付款额" -#: core/graphene/object_types.py:509 +#: core/graphene/object_types.py:516 msgid "minimum amount for payment" msgstr "最低付款额" -#: core/graphene/object_types.py:510 +#: core/graphene/object_types.py:517 msgid "analytics data" msgstr "分析数据" -#: core/graphene/object_types.py:511 +#: core/graphene/object_types.py:518 msgid "advertisement data" msgstr "广告数据" -#: core/graphene/object_types.py:514 +#: core/graphene/object_types.py:521 msgid "company configuration" msgstr "配置" -#: core/graphene/object_types.py:518 +#: core/graphene/object_types.py:525 msgid "language code" msgstr "语言代码" -#: core/graphene/object_types.py:519 +#: core/graphene/object_types.py:526 msgid "language name" msgstr "语言名称" -#: core/graphene/object_types.py:520 +#: core/graphene/object_types.py:527 msgid "language flag, if exists :)" msgstr "语言标志(如果有):)" -#: core/graphene/object_types.py:523 +#: core/graphene/object_types.py:530 msgid "supported languages" msgstr "获取支持的语言列表" -#: core/graphene/object_types.py:554 core/graphene/object_types.py:555 -#: core/graphene/object_types.py:556 +#: core/graphene/object_types.py:561 core/graphene/object_types.py:562 +#: core/graphene/object_types.py:563 msgid "products search results" msgstr "产品搜索结果" -#: core/graphene/object_types.py:557 +#: core/graphene/object_types.py:564 msgid "posts search results" msgstr "产品搜索结果" -#: core/models.py:95 +#: core/models.py:97 msgid "parent of this group" msgstr "本组家长" -#: core/models.py:96 +#: core/models.py:98 msgid "parent attribute group" msgstr "父属性组" -#: core/models.py:100 core/models.py:101 +#: core/models.py:102 core/models.py:103 msgid "attribute group's name" msgstr "属性组名称" -#: core/models.py:109 core/models.py:685 +#: core/models.py:111 core/models.py:761 msgid "attribute group" msgstr "属性组" -#: core/models.py:147 +#: core/models.py:149 msgid "stores credentials and endpoints required for vendor communication" msgstr "存储供应商应用程序接口通信所需的凭证和端点" -#: core/models.py:148 +#: core/models.py:150 msgid "authentication info" msgstr "认证信息" -#: core/models.py:153 +#: core/models.py:155 msgid "define the markup for products retrieved from this vendor" msgstr "定义从该供应商获取的产品的标记" -#: core/models.py:154 +#: core/models.py:156 msgid "vendor markup percentage" msgstr "供应商加价百分比" -#: core/models.py:158 +#: core/models.py:160 msgid "name of this vendor" msgstr "供应商名称" -#: core/models.py:159 +#: core/models.py:161 msgid "vendor name" msgstr "供应商名称" -#: core/models.py:199 core/models.py:237 +#: core/models.py:201 core/models.py:239 msgid "internal tag identifier for the product tag" msgstr "产品标签的内部标签标识符" -#: core/models.py:200 core/models.py:238 +#: core/models.py:202 core/models.py:240 msgid "tag name" msgstr "标签名称" -#: core/models.py:204 core/models.py:242 +#: core/models.py:206 core/models.py:244 msgid "user-friendly name for the product tag" msgstr "方便用户使用的产品标签名称" -#: core/models.py:205 core/models.py:243 +#: core/models.py:207 core/models.py:245 msgid "tag display name" msgstr "标签显示名称" -#: core/models.py:213 +#: core/models.py:215 msgid "product tag" msgstr "产品标签" -#: core/models.py:251 +#: core/models.py:253 msgid "category tag" msgstr "类别标签" -#: core/models.py:252 core/models.py:382 +#: core/models.py:254 core/models.py:383 msgid "category tags" msgstr "类别标签" -#: core/models.py:329 +#: core/models.py:330 msgid "upload an image representing this category" msgstr "上传代表该类别的图片" -#: core/models.py:332 +#: core/models.py:333 msgid "category image" msgstr "类别 图像" -#: core/models.py:337 +#: core/models.py:338 msgid "define a markup percentage for products in this category" msgstr "定义该类别产品的加价百分比" -#: core/models.py:346 +#: core/models.py:347 msgid "parent of this category to form a hierarchical structure" msgstr "该类别的父类别,形成等级结构" -#: core/models.py:347 +#: core/models.py:348 msgid "parent category" msgstr "父类" -#: core/models.py:352 +#: core/models.py:353 msgid "category name" msgstr "类别名称" -#: core/models.py:353 +#: core/models.py:354 msgid "provide a name for this category" msgstr "提供该类别的名称" -#: core/models.py:360 +#: core/models.py:361 msgid "add a detailed description for this category" msgstr "为该类别添加详细说明" -#: core/models.py:361 +#: core/models.py:362 msgid "category description" msgstr "类别说明" -#: core/models.py:381 +#: core/models.py:382 msgid "tags that help describe or group this category" msgstr "有助于描述或归类该类别的标签" -#: core/models.py:388 core/models.py:476 +#: core/models.py:389 core/models.py:477 msgid "priority" msgstr "优先权" -#: core/models.py:429 +#: core/models.py:430 msgid "name of this brand" msgstr "品牌名称" -#: core/models.py:430 +#: core/models.py:431 msgid "brand name" msgstr "品牌名称" -#: core/models.py:437 +#: core/models.py:438 msgid "upload a logo representing this brand" msgstr "上传代表该品牌的徽标" -#: core/models.py:439 +#: core/models.py:440 msgid "brand small image" msgstr "品牌小形象" -#: core/models.py:445 +#: core/models.py:446 msgid "upload a big logo representing this brand" msgstr "上传代表该品牌的大徽标" -#: core/models.py:447 +#: core/models.py:448 msgid "brand big image" msgstr "品牌大形象" -#: core/models.py:452 +#: core/models.py:453 msgid "add a detailed description of the brand" msgstr "添加品牌的详细描述" -#: core/models.py:453 +#: core/models.py:454 msgid "brand description" msgstr "品牌描述" -#: core/models.py:458 +#: core/models.py:459 msgid "optional categories that this brand is associated with" msgstr "与该品牌相关的可选类别" -#: core/models.py:459 +#: core/models.py:460 msgid "associated categories" msgstr "类别" -#: core/models.py:528 -msgid "category this product belongs to" -msgstr "该产品所属类别" - -#: core/models.py:537 -msgid "optionally associate this product with a brand" -msgstr "可选择将该产品与某个品牌联系起来" - -#: core/models.py:543 -msgid "tags that help describe or group this product" -msgstr "有助于描述或归类该产品的标签" - -#: core/models.py:548 -msgid "indicates whether this product is digitally delivered" -msgstr "表示该产品是否以数字方式交付" - -#: core/models.py:549 -msgid "is product digital" -msgstr "产品是否数字化" - -#: core/models.py:555 -msgid "provide a clear identifying name for the product" -msgstr "为产品提供一个明确的标识名称" - -#: core/models.py:556 -msgid "product name" -msgstr "产品名称" - -#: core/models.py:561 core/models.py:878 -msgid "add a detailed description of the product" -msgstr "添加产品的详细描述" - -#: core/models.py:562 -msgid "product description" -msgstr "产品说明" - -#: core/models.py:569 -msgid "part number for this product" -msgstr "该产品的零件编号" - -#: core/models.py:570 -msgid "part number" -msgstr "部件编号" - -#: core/models.py:676 -msgid "category of this attribute" -msgstr "该属性的类别" - -#: core/models.py:684 -msgid "group of this attribute" -msgstr "该属性的组" - -#: core/models.py:690 -msgid "string" -msgstr "字符串" - -#: core/models.py:691 -msgid "integer" -msgstr "整数" - -#: core/models.py:692 -msgid "float" -msgstr "浮动" - -#: core/models.py:693 -msgid "boolean" -msgstr "布尔型" - -#: core/models.py:694 -msgid "array" -msgstr "阵列" - -#: core/models.py:695 -msgid "object" -msgstr "对象" - -#: core/models.py:697 -msgid "type of the attribute's value" -msgstr "属性值的类型" - -#: core/models.py:698 -msgid "value type" -msgstr "价值类型" - -#: core/models.py:703 -msgid "name of this attribute" -msgstr "该属性的名称" - -#: core/models.py:704 -msgid "attribute's name" -msgstr "属性名称" - -#: core/models.py:712 core/models.py:747 -#: core/templates/digital_order_delivered_email.html:135 -msgid "attribute" -msgstr "属性" - -#: core/models.py:746 -msgid "attribute of this value" -msgstr "该值的属性" - -#: core/models.py:754 -msgid "the specific product associated with this attribute's value" -msgstr "与该属性值相关的特定产品" - -#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 -msgid "associated product" -msgstr "相关产品" - -#: core/models.py:760 -msgid "the specific value for this attribute" -msgstr "该属性的具体值" - -#: core/models.py:794 -msgid "provide alternative text for the image for accessibility" -msgstr "为图像提供替代文字,以便于访问" - -#: core/models.py:795 -msgid "image alt text" -msgstr "图片 alt 文本" - -#: core/models.py:798 -msgid "upload the image file for this product" -msgstr "上传该产品的图片文件" - -#: core/models.py:799 core/models.py:824 -msgid "product image" -msgstr "产品图片" - -#: core/models.py:805 -msgid "determines the order in which images are displayed" -msgstr "确定图像的显示顺序" - -#: core/models.py:806 -msgid "display priority" -msgstr "显示优先级" - -#: core/models.py:811 -msgid "the product that this image represents" -msgstr "该图片所代表的产品" - -#: core/models.py:825 -msgid "product images" -msgstr "产品图片" - -#: core/models.py:866 -msgid "percentage discount for the selected products" -msgstr "所选产品的折扣百分比" - -#: core/models.py:867 -msgid "discount percentage" -msgstr "折扣百分比" - -#: core/models.py:872 -msgid "provide a unique name for this promotion" -msgstr "为该促销活动提供一个独特的名称" - -#: core/models.py:873 -msgid "promotion name" -msgstr "推广名称" - -#: core/models.py:879 -msgid "promotion description" -msgstr "促销说明" - -#: core/models.py:884 -msgid "select which products are included in this promotion" -msgstr "选择促销活动包括哪些产品" - -#: core/models.py:885 -msgid "included products" -msgstr "包括产品" - -#: core/models.py:889 -msgid "promotion" -msgstr "促销活动" - -#: core/models.py:924 +#: core/models.py:514 msgid "the vendor supplying this product stock" msgstr "提供该产品库存的供应商" -#: core/models.py:925 +#: core/models.py:515 msgid "associated vendor" msgstr "相关供应商" -#: core/models.py:929 +#: core/models.py:519 msgid "final price to the customer after markups" msgstr "加价后给客户的最终价格" -#: core/models.py:930 +#: core/models.py:520 msgid "selling price" msgstr "销售价格" -#: core/models.py:935 +#: core/models.py:525 msgid "the product associated with this stock entry" msgstr "与该库存条目相关的产品" -#: core/models.py:943 +#: core/models.py:526 core/models.py:831 core/models.py:888 +#: core/models.py:1775 +msgid "associated product" +msgstr "相关产品" + +#: core/models.py:533 msgid "the price paid to the vendor for this product" msgstr "为该产品支付给供应商的价格" -#: core/models.py:944 +#: core/models.py:534 msgid "vendor purchase price" msgstr "供应商购买价格" -#: core/models.py:948 +#: core/models.py:538 msgid "available quantity of the product in stock" msgstr "产品的可用库存量" -#: core/models.py:949 +#: core/models.py:539 msgid "quantity in stock" msgstr "库存数量" -#: core/models.py:953 +#: core/models.py:543 msgid "vendor-assigned SKU for identifying the product" msgstr "供应商指定的 SKU,用于识别产品" -#: core/models.py:954 +#: core/models.py:544 msgid "vendor sku" msgstr "供应商 SKU" -#: core/models.py:960 +#: core/models.py:550 msgid "digital file associated with this stock if applicable" msgstr "与该库存相关的数字文件(如适用" -#: core/models.py:961 +#: core/models.py:551 msgid "digital file" msgstr "数字文件" -#: core/models.py:970 +#: core/models.py:560 msgid "stock entries" msgstr "库存条目" -#: core/models.py:989 +#: core/models.py:604 +msgid "category this product belongs to" +msgstr "该产品所属类别" + +#: core/models.py:613 +msgid "optionally associate this product with a brand" +msgstr "可选择将该产品与某个品牌联系起来" + +#: core/models.py:619 +msgid "tags that help describe or group this product" +msgstr "有助于描述或归类该产品的标签" + +#: core/models.py:624 +msgid "indicates whether this product is digitally delivered" +msgstr "表示该产品是否以数字方式交付" + +#: core/models.py:625 +msgid "is product digital" +msgstr "产品是否数字化" + +#: core/models.py:631 +msgid "provide a clear identifying name for the product" +msgstr "为产品提供一个明确的标识名称" + +#: core/models.py:632 +msgid "product name" +msgstr "产品名称" + +#: core/models.py:637 core/models.py:954 +msgid "add a detailed description of the product" +msgstr "添加产品的详细描述" + +#: core/models.py:638 +msgid "product description" +msgstr "产品说明" + +#: core/models.py:645 +msgid "part number for this product" +msgstr "该产品的零件编号" + +#: core/models.py:646 +msgid "part number" +msgstr "部件编号" + +#: core/models.py:752 +msgid "category of this attribute" +msgstr "该属性的类别" + +#: core/models.py:760 +msgid "group of this attribute" +msgstr "该属性的组" + +#: core/models.py:766 +msgid "string" +msgstr "字符串" + +#: core/models.py:767 +msgid "integer" +msgstr "整数" + +#: core/models.py:768 +msgid "float" +msgstr "浮动" + +#: core/models.py:769 +msgid "boolean" +msgstr "布尔型" + +#: core/models.py:770 +msgid "array" +msgstr "阵列" + +#: core/models.py:771 +msgid "object" +msgstr "对象" + +#: core/models.py:773 +msgid "type of the attribute's value" +msgstr "属性值的类型" + +#: core/models.py:774 +msgid "value type" +msgstr "价值类型" + +#: core/models.py:779 +msgid "name of this attribute" +msgstr "该属性的名称" + +#: core/models.py:780 +msgid "attribute's name" +msgstr "属性名称" + +#: core/models.py:788 core/models.py:823 +#: core/templates/digital_order_delivered_email.html:134 +msgid "attribute" +msgstr "属性" + +#: core/models.py:822 +msgid "attribute of this value" +msgstr "该值的属性" + +#: core/models.py:830 +msgid "the specific product associated with this attribute's value" +msgstr "与该属性值相关的特定产品" + +#: core/models.py:836 +msgid "the specific value for this attribute" +msgstr "该属性的具体值" + +#: core/models.py:870 +msgid "provide alternative text for the image for accessibility" +msgstr "为图像提供替代文字,以便于访问" + +#: core/models.py:871 +msgid "image alt text" +msgstr "图片 alt 文本" + +#: core/models.py:874 +msgid "upload the image file for this product" +msgstr "上传该产品的图片文件" + +#: core/models.py:875 core/models.py:900 +msgid "product image" +msgstr "产品图片" + +#: core/models.py:881 +msgid "determines the order in which images are displayed" +msgstr "确定图像的显示顺序" + +#: core/models.py:882 +msgid "display priority" +msgstr "显示优先级" + +#: core/models.py:887 +msgid "the product that this image represents" +msgstr "该图片所代表的产品" + +#: core/models.py:901 +msgid "product images" +msgstr "产品图片" + +#: core/models.py:942 +msgid "percentage discount for the selected products" +msgstr "所选产品的折扣百分比" + +#: core/models.py:943 +msgid "discount percentage" +msgstr "折扣百分比" + +#: core/models.py:948 +msgid "provide a unique name for this promotion" +msgstr "为该促销活动提供一个独特的名称" + +#: core/models.py:949 +msgid "promotion name" +msgstr "推广名称" + +#: core/models.py:955 +msgid "promotion description" +msgstr "促销说明" + +#: core/models.py:960 +msgid "select which products are included in this promotion" +msgstr "选择促销活动包括哪些产品" + +#: core/models.py:961 +msgid "included products" +msgstr "包括产品" + +#: core/models.py:965 +msgid "promotion" +msgstr "促销活动" + +#: core/models.py:990 msgid "products that the user has marked as wanted" msgstr "用户标记为想要的产品" -#: core/models.py:997 +#: core/models.py:998 msgid "user who owns this wishlist" msgstr "拥有此愿望清单的用户" -#: core/models.py:998 +#: core/models.py:999 msgid "wishlist owner" msgstr "心愿单所有者" -#: core/models.py:1006 +#: core/models.py:1007 msgid "wishlist" msgstr "愿望清单" -#: core/models.py:1017 core/models.py:1029 core/models.py:1468 -#: core/models.py:1496 core/models.py:1520 +#: core/models.py:1018 core/models.py:1030 core/models.py:1469 +#: core/models.py:1497 core/models.py:1521 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} 不存在:{product_uuid} 不存在" -#: core/models.py:1071 +#: core/models.py:1072 msgid "documentary" msgstr "纪录片" -#: core/models.py:1072 +#: core/models.py:1073 msgid "documentaries" msgstr "纪录片" -#: core/models.py:1082 +#: core/models.py:1083 msgid "unresolved" msgstr "未解决" -#: core/models.py:1128 +#: core/models.py:1129 msgid "address line for the customer" msgstr "客户地址栏" -#: core/models.py:1129 +#: core/models.py:1130 msgid "address line" msgstr "地址栏" -#: core/models.py:1131 +#: core/models.py:1132 msgid "street" msgstr "街道" -#: core/models.py:1132 +#: core/models.py:1133 msgid "district" msgstr "地区" -#: core/models.py:1133 +#: core/models.py:1134 msgid "city" msgstr "城市" -#: core/models.py:1134 +#: core/models.py:1135 msgid "region" msgstr "地区" -#: core/models.py:1135 +#: core/models.py:1136 msgid "postal code" msgstr "邮政编码" -#: core/models.py:1136 +#: core/models.py:1137 msgid "country" msgstr "国家" -#: core/models.py:1143 +#: core/models.py:1144 msgid "geolocation point: (longitude, latitude)" msgstr "地理位置点(经度、纬度)" -#: core/models.py:1146 +#: core/models.py:1147 msgid "full JSON response from geocoder for this address" msgstr "地理编码器对此地址的完整 JSON 响应" -#: core/models.py:1151 +#: core/models.py:1152 msgid "stored JSON response from the geocoding service" msgstr "存储的来自地理编码服务的 JSON 响应" -#: core/models.py:1159 +#: core/models.py:1160 msgid "address" msgstr "地址" -#: core/models.py:1160 +#: core/models.py:1161 msgid "addresses" msgstr "地址" -#: core/models.py:1205 +#: core/models.py:1206 msgid "unique code used by a user to redeem a discount" msgstr "用户用于兑换折扣的唯一代码" -#: core/models.py:1206 +#: core/models.py:1207 msgid "promo code identifier" msgstr "促销代码标识符" -#: core/models.py:1213 +#: core/models.py:1214 msgid "fixed discount amount applied if percent is not used" msgstr "如果不使用百分比,则使用固定折扣额" -#: core/models.py:1214 +#: core/models.py:1215 msgid "fixed discount amount" msgstr "固定折扣额" -#: core/models.py:1220 +#: core/models.py:1221 msgid "percentage discount applied if fixed amount is not used" msgstr "未使用固定金额时适用的折扣百分比" -#: core/models.py:1221 +#: core/models.py:1222 msgid "percentage discount" msgstr "折扣百分比" -#: core/models.py:1226 +#: core/models.py:1227 msgid "timestamp when the promocode expires" msgstr "促销代码过期的时间戳" -#: core/models.py:1227 +#: core/models.py:1228 msgid "end validity time" msgstr "结束有效时间" -#: core/models.py:1232 +#: core/models.py:1233 msgid "timestamp from which this promocode is valid" msgstr "该促销代码有效的时间戳" -#: core/models.py:1233 +#: core/models.py:1234 msgid "start validity time" msgstr "开始有效时间" -#: core/models.py:1238 +#: core/models.py:1239 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "使用促销代码的时间戳,如果尚未使用,则留空" -#: core/models.py:1239 +#: core/models.py:1240 msgid "usage timestamp" msgstr "使用时间戳" -#: core/models.py:1244 +#: core/models.py:1245 msgid "user assigned to this promocode if applicable" msgstr "分配给此促销代码的用户(如适用" -#: core/models.py:1245 +#: core/models.py:1246 msgid "assigned user" msgstr "指定用户" -#: core/models.py:1252 +#: core/models.py:1253 msgid "promo code" msgstr "促销代码" -#: core/models.py:1253 +#: core/models.py:1254 msgid "promo codes" msgstr "促销代码" -#: core/models.py:1260 +#: core/models.py:1261 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "" -"只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" +msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" -#: core/models.py:1275 +#: core/models.py:1276 msgid "promocode already used" msgstr "促销代码已被使用" -#: core/models.py:1288 +#: core/models.py:1289 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "促销代码 {self.uuid} 的折扣类型无效" -#: core/models.py:1324 +#: core/models.py:1325 msgid "the billing address used for this order" msgstr "该订单使用的账单地址" -#: core/models.py:1332 +#: core/models.py:1333 msgid "optional promo code applied to this order" msgstr "此订单可选择使用促销代码" -#: core/models.py:1333 +#: core/models.py:1334 msgid "applied promo code" msgstr "应用促销代码" -#: core/models.py:1341 +#: core/models.py:1342 msgid "the shipping address used for this order" msgstr "该订单使用的送货地址" -#: core/models.py:1342 +#: core/models.py:1343 msgid "shipping address" msgstr "送货地址" -#: core/models.py:1348 +#: core/models.py:1349 msgid "current status of the order in its lifecycle" msgstr "订单在其生命周期中的当前状态" -#: core/models.py:1349 +#: core/models.py:1350 msgid "order status" msgstr "订单状态" -#: core/models.py:1354 core/models.py:1745 +#: core/models.py:1355 core/models.py:1752 msgid "json structure of notifications to display to users" msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图" -#: core/models.py:1360 +#: core/models.py:1361 msgid "json representation of order attributes for this order" msgstr "该订单属性的 JSON 表示形式" -#: core/models.py:1366 +#: core/models.py:1367 msgid "the user who placed the order" msgstr "下订单的用户" -#: core/models.py:1367 +#: core/models.py:1368 msgid "user" msgstr "用户" -#: core/models.py:1373 +#: core/models.py:1374 msgid "the timestamp when the order was finalized" msgstr "订单确定的时间戳" -#: core/models.py:1374 +#: core/models.py:1375 msgid "buy time" msgstr "购买时间" -#: core/models.py:1381 +#: core/models.py:1382 msgid "a human-readable identifier for the order" msgstr "订单的人工可读标识符" -#: core/models.py:1382 +#: core/models.py:1383 msgid "human readable id" msgstr "人类可读 ID" -#: core/models.py:1388 +#: core/models.py:1389 msgid "order" msgstr "订购" -#: core/models.py:1403 +#: core/models.py:1404 msgid "a user must have only one pending order at a time" msgstr "用户每次只能有一个挂单!" -#: core/models.py:1437 +#: core/models.py:1438 msgid "you cannot add products to an order that is not a pending one" msgstr "您不能向非待处理订单添加产品" -#: core/models.py:1442 +#: core/models.py:1443 msgid "you cannot add inactive products to order" msgstr "您不能在订单中添加非活动产品" -#: core/models.py:1459 +#: core/models.py:1460 msgid "you cannot add more products than available in stock" msgstr "添加的产品数量不能超过现有库存" -#: core/models.py:1480 core/models.py:1504 core/models.py:1512 +#: core/models.py:1481 core/models.py:1505 core/models.py:1513 msgid "you cannot remove products from an order that is not a pending one" msgstr "您不能从非待处理订单中删除产品" -#: core/models.py:1500 +#: core/models.py:1501 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "查询 <{query}> 时 {name} 不存在" -#: core/models.py:1531 +#: core/models.py:1532 msgid "promocode does not exist" msgstr "促销代码不存在" -#: core/models.py:1540 +#: core/models.py:1541 msgid "you can only buy physical products with shipping address specified" msgstr "您只能购买指定送货地址的实物产品!" -#: core/models.py:1559 +#: core/models.py:1560 msgid "address does not exist" msgstr "地址不存在" -#: core/models.py:1570 core/models.py:1613 +#: core/models.py:1571 core/models.py:1620 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "您现在无法购买,请稍后再试。" -#: core/models.py:1573 +#: core/models.py:1574 msgid "invalid force value" msgstr "力值无效" -#: core/models.py:1578 core/models.py:1616 +#: core/models.py:1579 core/models.py:1623 msgid "you cannot purchase an empty order!" msgstr "您不能购买空单!" -#: core/models.py:1593 +#: core/models.py:1592 +msgid "you cannot buy an order without a user" +msgstr "没有用户就无法购买订单!" + +#: core/models.py:1595 +msgid "a user without a balance cannot buy with balance" +msgstr "没有余额的用户不能使用余额购买!" + +#: core/models.py:1600 msgid "insufficient funds to complete the order" msgstr "资金不足,无法完成订单" -#: core/models.py:1625 +#: core/models.py:1632 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码" -#: core/models.py:1634 +#: core/models.py:1641 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "付款方式无效:来自 {available_payment_methods} 的 {payment_method} !" -#: core/models.py:1733 +#: core/models.py:1740 msgid "the price paid by the customer for this product at purchase time" msgstr "客户购买该产品时支付的价格" -#: core/models.py:1734 +#: core/models.py:1741 msgid "purchase price at order time" msgstr "订购时的购买价格" -#: core/models.py:1739 +#: core/models.py:1746 msgid "internal comments for admins about this ordered product" msgstr "管理员对该订购产品的内部评论" -#: core/models.py:1740 +#: core/models.py:1747 msgid "internal comments" msgstr "内部意见" -#: core/models.py:1746 +#: core/models.py:1753 msgid "user notifications" msgstr "用户通知" -#: core/models.py:1751 +#: core/models.py:1758 msgid "json representation of this item's attributes" msgstr "该项属性的 JSON 表示形式" -#: core/models.py:1752 +#: core/models.py:1759 msgid "ordered product attributes" msgstr "有序的产品属性" -#: core/models.py:1757 +#: core/models.py:1764 msgid "reference to the parent order that contains this product" msgstr "对包含该产品的父订单的引用" -#: core/models.py:1758 +#: core/models.py:1765 msgid "parent order" msgstr "父顺序" -#: core/models.py:1767 +#: core/models.py:1774 msgid "the specific product associated with this order line" msgstr "与该订单项目相关的具体产品" -#: core/models.py:1774 +#: core/models.py:1781 msgid "quantity of this specific product in the order" msgstr "订单中该特定产品的数量" -#: core/models.py:1775 +#: core/models.py:1782 msgid "product quantity" msgstr "产品数量" -#: core/models.py:1782 +#: core/models.py:1789 msgid "current status of this product in the order" msgstr "订单中该产品的当前状态" -#: core/models.py:1783 +#: core/models.py:1790 msgid "product line status" msgstr "产品系列状态" -#: core/models.py:1839 +#: core/models.py:1850 +msgid "order product must have an order" +msgstr "订单产品必须有相关的订单!" + +#: core/models.py:1852 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "为反馈指定了错误的操作:{action}" -#: core/models.py:1847 +#: core/models.py:1860 msgid "you cannot feedback an order which is not received" msgstr "您不能反馈未收到的订单" -#: core/models.py:1882 +#: core/models.py:1895 msgid "download" msgstr "下载" -#: core/models.py:1883 +#: core/models.py:1896 msgid "downloads" msgstr "下载" -#: core/models.py:1891 +#: core/models.py:1904 msgid "you can not download a digital asset for a non-finished order" msgstr "您无法下载未完成订单的数字资产" -#: core/models.py:1921 +#: core/models.py:1934 msgid "user-provided comments about their experience with the product" msgstr "用户提供的产品使用体验评论" -#: core/models.py:1922 +#: core/models.py:1935 msgid "feedback comments" msgstr "反馈意见" -#: core/models.py:1929 -msgid "references the specific product in an order that this feedback is about" +#: core/models.py:1942 +msgid "" +"references the specific product in an order that this feedback is about" msgstr "引用该反馈意见涉及的订单中的具体产品" -#: core/models.py:1930 +#: core/models.py:1943 msgid "related order product" msgstr "相关订购产品" -#: core/models.py:1935 +#: core/models.py:1948 msgid "user-assigned rating for the product" msgstr "用户对产品的评分" -#: core/models.py:1936 +#: core/models.py:1949 msgid "product rating" msgstr "产品评级" -#: core/models.py:1944 +#: core/models.py:1959 msgid "feedback" msgstr "反馈意见" @@ -2023,7 +2028,7 @@ msgstr "创建促销代码时出错:{e!s}" #: core/templates/digital_order_created_email.html:7 #: core/templates/digital_order_created_email.html:100 -#: core/templates/digital_order_delivered_email.html:7 +#: core/templates/digital_order_delivered_email.html:6 #: core/templates/shipped_order_created_email.html:7 #: core/templates/shipped_order_created_email.html:99 #: core/templates/shipped_order_delivered_email.html:7 @@ -2032,7 +2037,7 @@ msgid "order confirmation" msgstr "订单确认" #: core/templates/digital_order_created_email.html:95 -#: core/templates/digital_order_delivered_email.html:95 +#: core/templates/digital_order_delivered_email.html:94 #: core/templates/shipped_order_created_email.html:94 #: core/templates/shipped_order_delivered_email.html:94 msgid "logo" @@ -2049,22 +2054,19 @@ msgstr "您好 %(order.user.first_name)s、" #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" -msgstr "" -"感谢您的订单 #%(order.pk)s!我们很高兴地通知您,我们已将您的订单付诸实施。以" -"下是您的订单详情:" +msgstr "感谢您的订单 #%(order.pk)s!我们很高兴地通知您,我们已将您的订单付诸实施。以下是您的订单详情:" #: core/templates/digital_order_created_email.html:112 -#: core/templates/digital_order_delivered_email.html:111 +#: core/templates/digital_order_delivered_email.html:110 #: core/templates/shipped_order_created_email.html:110 #: core/templates/shipped_order_delivered_email.html:110 msgid "total" msgstr "总计" #: core/templates/digital_order_created_email.html:125 -#: core/templates/digital_order_delivered_email.html:158 +#: core/templates/digital_order_delivered_email.html:157 #: core/templates/shipped_order_created_email.html:127 #: core/templates/shipped_order_delivered_email.html:127 msgid "total price" @@ -2077,8 +2079,7 @@ msgstr "总价" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "" -"如果您有任何问题,请随时通过 %(config.EMAIL_HOST_USER)s 联系我们的支持人员。" +msgstr "如果您有任何问题,请随时通过 %(config.EMAIL_HOST_USER)s 联系我们的支持人员。" #: core/templates/digital_order_created_email.html:133 #, python-format @@ -2086,27 +2087,27 @@ msgid "best regards,
the %(config.PROJECT_NAME)s team" msgstr "致以最诚挚的问候,
%(config.PROJECT_NAME)s团队" #: core/templates/digital_order_created_email.html:139 -#: core/templates/digital_order_delivered_email.html:172 +#: core/templates/digital_order_delivered_email.html:171 msgid "all rights reserved" msgstr "保留所有权利" -#: core/templates/digital_order_delivered_email.html:100 +#: core/templates/digital_order_delivered_email.html:99 msgid "order delivered" msgstr "订单已送达" -#: core/templates/digital_order_delivered_email.html:101 +#: core/templates/digital_order_delivered_email.html:100 #, python-format msgid "hello %(user_first_name)s," msgstr "您好 %(user_first_name)s、" -#: core/templates/digital_order_delivered_email.html:102 +#: core/templates/digital_order_delivered_email.html:101 #, python-format msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "我们已成功处理了您的订单 №%(order_uuid)s_!以下是您的订单详情:" -#: core/templates/digital_order_delivered_email.html:129 +#: core/templates/digital_order_delivered_email.html:128 msgid "" "additional\n" " information" @@ -2114,19 +2115,19 @@ msgstr "" "其他\n" " 附加信息" -#: core/templates/digital_order_delivered_email.html:138 +#: core/templates/digital_order_delivered_email.html:137 #: core/templates/json_table_widget.html:6 msgid "value" msgstr "价值" -#: core/templates/digital_order_delivered_email.html:164 +#: core/templates/digital_order_delivered_email.html:163 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "如果您有任何问题,请随时拨打 %(contact_email)s 联系我们的支持人员。" -#: core/templates/digital_order_delivered_email.html:166 +#: core/templates/digital_order_delivered_email.html:165 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "致以最诚挚的问候,
%(project_name)s团队" @@ -2138,8 +2139,7 @@ msgstr "钥匙" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "感谢您的订购!我们很高兴确认您的购买。以下是您的订单详情:" @@ -2176,27 +2176,17 @@ msgstr "需要数据和超时" msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "超时值无效,必须介于 0 和 216000 秒之间" -#: core/utils/db.py:14 -#, python-brace-format -msgid "{model} must be model" -msgstr "{model}必须是模型" - -#: core/utils/db.py:16 -#, python-brace-format -msgid "{data} must be list object" -msgstr "{data} 必须是列表对象" - #: core/utils/emailing.py:21 #, python-brace-format msgid "{config.PROJECT_NAME} | contact us initiated" msgstr "{config.PROJECT_NAME}| 联系我们" -#: core/utils/emailing.py:57 +#: core/utils/emailing.py:60 #, python-brace-format msgid "{config.PROJECT_NAME} | order confirmation" msgstr "{config.PROJECT_NAME} | 订单确认| 订单确认" -#: core/utils/emailing.py:89 +#: core/utils/emailing.py:95 #, python-brace-format msgid "{config.PROJECT_NAME} | order delivered" msgstr "{config.PROJECT_NAME}(项目名称| 已交付订单" @@ -2218,15 +2208,15 @@ msgstr "图片尺寸不应超过 w{max_width} x h{max_height} 像素" msgid "invalid phone number format" msgstr "电话号码格式无效" -#: core/views.py:266 +#: core/views.py:469 msgid "you can only download the digital asset once" msgstr "您只能下载一次数字资产" -#: core/views.py:302 +#: core/views.py:522 msgid "favicon not found" msgstr "未找到 favicon" -#: core/viewsets.py:684 +#: core/viewsets.py:1080 #, python-brace-format msgid "Geocoding error: {e}" msgstr "地理编码错误:{e}" diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.mo b/evibes/locale/ar_AR/LC_MESSAGES/django.mo index 59461915..0e3e78e4 100644 Binary files a/evibes/locale/ar_AR/LC_MESSAGES/django.mo and b/evibes/locale/ar_AR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.po b/evibes/locale/ar_AR/LC_MESSAGES/django.po index b51f61a3..3df959a9 100644 --- a/evibes/locale/ar_AR/LC_MESSAGES/django.po +++ b/evibes/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -116,23 +116,36 @@ msgstr "كيان لتخزين بيانات التحليلات" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -140,21 +153,31 @@ msgstr "" "\n" "مرحبًا بك في _PH_0_____} وثائق واجهة برمجة تطبيقات B2B.\n" "\n" -"إن {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} صُممت واجهة برمجة تطبيقات B2B لتوفير تكامل سلس للتجار الذين يبيعون مجموعة كبيرة من الإلكترونيات. من خلال واجهة برمجة التطبيقات هذه، يمكن للتجار الشركاء إدارة المنتجات والطلبات والمخزون بسهولة، مع الوصول إلى مستويات المخزون في الوقت الفعلي.\n" +"إن {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} صُممت واجهة برمجة تطبيقات B2B " +"لتوفير تكامل سلس للتجار الذين يبيعون مجموعة كبيرة من الإلكترونيات. من خلال " +"واجهة برمجة التطبيقات هذه، يمكن للتجار الشركاء إدارة المنتجات والطلبات " +"والمخزون بسهولة، مع الوصول إلى مستويات المخزون في الوقت الفعلي.\n" "\n" "## الميزات الرئيسية\n" -"- ** إدارة المنتجات:** إنشاء قوائم منتجاتك وتحديثها وإدارتها بسهولة مع مواصفات مفصلة.\n" -"- **معالجة الطلبات:** التعامل مع الطلبات المجمعة بكفاءة مع عمليات مبسطة للتجار.\n" -"- **إدارة المخزون:** تتبّع مستويات المخزون في الوقت الفعلي، مما يضمن سلاسة التنفيذ.\n" +"- ** إدارة المنتجات:** إنشاء قوائم منتجاتك وتحديثها وإدارتها بسهولة مع " +"مواصفات مفصلة.\n" +"- **معالجة الطلبات:** التعامل مع الطلبات المجمعة بكفاءة مع عمليات مبسطة " +"للتجار.\n" +"- **إدارة المخزون:** تتبّع مستويات المخزون في الوقت الفعلي، مما يضمن سلاسة " +"التنفيذ.\n" "- **معاملات آمنة:** معاملات آمنة ومشفرة لحماية المعلومات التجارية الحساسة.\n" -"- ** دعم العملات المتعددة:** وسّع نطاق وصولك إلى السوق من خلال المعاملات متعددة العملات.\n" -"- ** إشعارات في الوقت الفعلي:** ابقَ على اطلاع دائم بالتنبيهات الفورية بشأن تغييرات المخزون وحالات الطلبات.\n" +"- ** دعم العملات المتعددة:** وسّع نطاق وصولك إلى السوق من خلال المعاملات " +"متعددة العملات.\n" +"- ** إشعارات في الوقت الفعلي:** ابقَ على اطلاع دائم بالتنبيهات الفورية بشأن " +"تغييرات المخزون وحالات الطلبات.\n" "\n" "## المصادقة\n" -"- تتم المصادقة عبر رمز التاجر المميز الخاص بك. قم بتضمين الرمز المميز في رأس \"X-EVIBES-B2B-AUTH\" لطلباتك بصيغة \"حامل الرمز المميز \".\n" +"- تتم المصادقة عبر رمز التاجر المميز الخاص بك. قم بتضمين الرمز المميز في رأس " +"\"X-EVIBES-B2B-AUTH\" لطلباتك بصيغة \"حامل الرمز المميز \".\n" "\n" "## I18N\n" -"- قم بتطبيق رأس \"قبول اللغة\" لاستخدام لغة غير افتراضية. تتوفر قائمة بجميع اللغات على '/التطبيق/اللغات/'.\n" +"- قم بتطبيق رأس \"قبول اللغة\" لاستخدام لغة غير افتراضية. تتوفر قائمة بجميع " +"اللغات على '/التطبيق/اللغات/'.\n" "\n" "## الإصدار\n" "إصدار API الحالي: {EVIBES_VERSION}\n" @@ -162,51 +185,79 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} وثائق واجهة برمجة تطبيقات المنصة.\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} وثائق واجهة برمجة تطبيقات " +"المنصة.\n" "\n" -"إن {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} واجهة برمجة التطبيقات هي المحور المركزي لإدارة قوائم المنتجات ومراقبة الطلبات والوصول إلى تحليلات متجر الإلكترونيات الخاص بك. وهي توفر نقاط نهاية RESTful لإدارة عمليات الواجهة الخلفية لمتجرك وتتضمن كلاً من خيارات REST و GraphQL.\n" +"إن {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} واجهة برمجة التطبيقات هي " +"المحور المركزي لإدارة قوائم المنتجات ومراقبة الطلبات والوصول إلى تحليلات " +"متجر الإلكترونيات الخاص بك. وهي توفر نقاط نهاية RESTful لإدارة عمليات " +"الواجهة الخلفية لمتجرك وتتضمن كلاً من خيارات REST و GraphQL.\n" "\n" "## الميزات الرئيسية\n" "- ** كتالوج المنتجات:** إدارة تفاصيل المنتج والتسعير والتوافر.\n" -"- **إدارة الطلبات:** الوصول إلى معلومات الطلبات التفصيلية ومعالجة طلبات العملاء بكفاءة.\n" -"- **أدوار المستخدم والأذونات:** تعيين أدوار المستخدم والأذونات للإدارة الداخلية.\n" -"- **التكاملات المخصصة:** قم بتوصيل نظامك بالمنصات الخارجية من خلال واجهات برمجة التطبيقات القوية.\n" -"- **تقارير مفصلة:** إنشاء تقارير شاملة عن الطلبات وأداء المبيعات وبيانات المنتجات.\n" -"- ** بيانات في الوقت الحقيقي:** احصل على تحديثات مباشرة عن المخزون والتسعير وحالات الطلبات.\n" +"- **إدارة الطلبات:** الوصول إلى معلومات الطلبات التفصيلية ومعالجة طلبات " +"العملاء بكفاءة.\n" +"- **أدوار المستخدم والأذونات:** تعيين أدوار المستخدم والأذونات للإدارة " +"الداخلية.\n" +"- **التكاملات المخصصة:** قم بتوصيل نظامك بالمنصات الخارجية من خلال واجهات " +"برمجة التطبيقات القوية.\n" +"- **تقارير مفصلة:** إنشاء تقارير شاملة عن الطلبات وأداء المبيعات وبيانات " +"المنتجات.\n" +"- ** بيانات في الوقت الحقيقي:** احصل على تحديثات مباشرة عن المخزون والتسعير " +"وحالات الطلبات.\n" "\n" "## المصادقة\n" -"- تتم المصادقة عبر رموز JWT المميزة. قم بتضمين الرمز المميز في رأس \"X-EVIBES-AUTH\" لطلباتك بصيغة \"حامل <رمزك المميز>\".\n" -"- عمر رمز الوصول الرمزي هو {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- عمر الرمز المميز للتحديث هو {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ساعة.\n" +"- تتم المصادقة عبر رموز JWT المميزة. قم بتضمين الرمز المميز في رأس \"X-" +"EVIBES-AUTH\" لطلباتك بصيغة \"حامل <رمزك المميز>\".\n" +"- عمر رمز الوصول الرمزي هو {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- عمر الرمز المميز للتحديث هو {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} ساعة.\n" "- يتم إبطال رموز التحديث تلقائيًا بعد الاستخدام.\n" "\n" "## I18N\n" -"- قم بتطبيق رأس \"قبول اللغة\" لاستخدام لغة غير افتراضية. تتوفر قائمة بجميع اللغات في '/التطبيق/اللغات/'.\n" +"- قم بتطبيق رأس \"قبول اللغة\" لاستخدام لغة غير افتراضية. تتوفر قائمة بجميع " +"اللغات في '/التطبيق/اللغات/'.\n" "\n" "## الإصدار\n" "إصدار API الحالي: {EVIBES_VERSION}\n" @@ -216,25 +267,24 @@ msgid "Home" msgstr "الصفحة الرئيسية" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "التوثيق" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "واجهة المتجر" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "الدعم" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "مستندات GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "مستندات النظام الأساسي REST" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "مستندات B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "الدعم" + +#~ msgid "Documentation" +#~ msgstr "التوثيق" diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.mo b/evibes/locale/cs_CZ/LC_MESSAGES/django.mo index ba5fdf8f..0823cb82 100644 Binary files a/evibes/locale/cs_CZ/LC_MESSAGES/django.mo and b/evibes/locale/cs_CZ/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.po b/evibes/locale/cs_CZ/LC_MESSAGES/django.po index 5a624f56..608de324 100644 --- a/evibes/locale/cs_CZ/LC_MESSAGES/django.po +++ b/evibes/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -118,23 +118,36 @@ msgstr "Subjekt pro ukládání analytických dat" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -142,21 +155,34 @@ msgstr "" "\n" "Vítejte v {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API dokumentaci.\n" "\n" -"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API je navrženo tak, aby poskytovalo bezproblémovou integraci pro obchodníky prodávající širokou škálu elektroniky. Prostřednictvím tohoto rozhraní API mohou partnerští obchodníci snadno spravovat produkty, objednávky a skladové zásoby, přičemž mají přístup k úrovni zásob v reálném čase.\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API je navrženo tak, aby " +"poskytovalo bezproblémovou integraci pro obchodníky prodávající širokou " +"škálu elektroniky. Prostřednictvím tohoto rozhraní API mohou partnerští " +"obchodníci snadno spravovat produkty, objednávky a skladové zásoby, přičemž " +"mají přístup k úrovni zásob v reálném čase.\n" "\n" "## Klíčové funkce\n" -"- **Správa produktů:** Snadné vytváření, aktualizace a správa výpisů produktů s podrobnými specifikacemi.\n" -"- **Zpracování objednávek:** Efektivní zpracování hromadných objednávek se zjednodušenými operacemi pro obchodníky.\n" -"- **Správa zásob:** Sledujte stav zásob v reálném čase a zajistěte hladké plnění.\n" -"- **Zabezpečené transakce:** Zabezpečené a šifrované transakce chránící citlivé obchodní informace.\n" -"- **Podpora více měn:** Rozšiřte svůj dosah na trhu díky transakcím ve více měnách.\n" -"- **Upozornění v reálném čase:** Buďte informováni pomocí okamžitých upozornění na změny stavu zásob a objednávek.\n" +"- **Správa produktů:** Snadné vytváření, aktualizace a správa výpisů " +"produktů s podrobnými specifikacemi.\n" +"- **Zpracování objednávek:** Efektivní zpracování hromadných objednávek se " +"zjednodušenými operacemi pro obchodníky.\n" +"- **Správa zásob:** Sledujte stav zásob v reálném čase a zajistěte hladké " +"plnění.\n" +"- **Zabezpečené transakce:** Zabezpečené a šifrované transakce chránící " +"citlivé obchodní informace.\n" +"- **Podpora více měn:** Rozšiřte svůj dosah na trhu díky transakcím ve více " +"měnách.\n" +"- **Upozornění v reálném čase:** Buďte informováni pomocí okamžitých " +"upozornění na změny stavu zásob a objednávek.\n" "\n" "## Ověřování\n" -"- Ověřování probíhá prostřednictvím vašeho obchodního tokenu. Token zahrňte do hlavičky `X-EVIBES-B2B-AUTH` svých požadavků ve formátu `Bearer `.\n" +"- Ověřování probíhá prostřednictvím vašeho obchodního tokenu. Token zahrňte " +"do hlavičky `X-EVIBES-B2B-AUTH` svých požadavků ve formátu `Bearer " +"`.\n" "\n" "## I18N\n" -"- Použijte hlavičku `Accept-Language` pro použití jiného než výchozího jazyka. Seznam všech jazyků je k dispozici na adrese `/app/languages/`.\n" +"- Použijte hlavičku `Accept-Language` pro použití jiného než výchozího " +"jazyka. Seznam všech jazyků je k dispozici na adrese `/app/languages/`.\n" "\n" "## Verze\n" "Aktuální verze API: {EVIBES_VERSION}\n" @@ -164,51 +190,79 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Vítejte v {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Dokumentace API platformy.\n" +"Vítejte v {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Dokumentace API " +"platformy.\n" "\n" -"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API je centrálním centrem pro správu výpisů produktů, sledování objednávek a přístup k analytickým údajům vašeho obchodu s elektronikou. Poskytuje koncové body RESTful pro správu backendových operací vašeho obchodu a obsahuje možnosti REST i GraphQL.\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API je centrálním centrem pro " +"správu výpisů produktů, sledování objednávek a přístup k analytickým údajům " +"vašeho obchodu s elektronikou. Poskytuje koncové body RESTful pro správu " +"backendových operací vašeho obchodu a obsahuje možnosti REST i GraphQL.\n" "\n" "## Klíčové funkce\n" "- **Katalog produktů:** Správa podrobností o produktech, cen a dostupnosti.\n" -"- **Správa objednávek:** Přístup k podrobným informacím o objednávkách a efektivní zpracování požadavků zákazníků.\n" -"- **Úživatelské role a oprávnění:** Nastavení uživatelských rolí a oprávnění pro interní správu.\n" -"- **Vlastní integrace:** Propojte svůj systém s externími platformami prostřednictvím výkonných rozhraní API.\n" -"- **Podrobné reporty:** Generování komplexních reportů o objednávkách, prodejních výsledcích a produktových datech.\n" -"- **Data v reálném čase:** Získávejte živé aktualizace o stavu zásob, cenách a objednávkách.\n" +"- **Správa objednávek:** Přístup k podrobným informacím o objednávkách a " +"efektivní zpracování požadavků zákazníků.\n" +"- **Úživatelské role a oprávnění:** Nastavení uživatelských rolí a oprávnění " +"pro interní správu.\n" +"- **Vlastní integrace:** Propojte svůj systém s externími platformami " +"prostřednictvím výkonných rozhraní API.\n" +"- **Podrobné reporty:** Generování komplexních reportů o objednávkách, " +"prodejních výsledcích a produktových datech.\n" +"- **Data v reálném čase:** Získávejte živé aktualizace o stavu zásob, cenách " +"a objednávkách.\n" "\n" "## Ověřování\n" -"- Ověřování probíhá prostřednictvím tokenů JWT. Token zahrňte do hlavičky `X-EVIBES-AUTH` svých požadavků ve formátu `Bearer `.\n" -"- Životnost přístupového tokenu je {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600}. {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Životnost tokenu pro obnovení je {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hodin.\n" +"- Ověřování probíhá prostřednictvím tokenů JWT. Token zahrňte do hlavičky `X-" +"EVIBES-AUTH` svých požadavků ve formátu `Bearer `.\n" +"- Životnost přístupového tokenu je {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else " +"3600}. {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Životnost tokenu pro obnovení je {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hodin.\n" "- Tokeny pro obnovení jsou po použití automaticky zneplatněny.\n" "\n" "## I18N\n" -"- Použijte hlavičku `Accept-Language` pro použití jiného než výchozího jazyka. Seznam všech jazyků je k dispozici na adrese `/app/languages/`.\n" +"- Použijte hlavičku `Accept-Language` pro použití jiného než výchozího " +"jazyka. Seznam všech jazyků je k dispozici na adrese `/app/languages/`.\n" "\n" "## Verze\n" "Aktuální verze API: {EVIBES_VERSION}\n" @@ -218,25 +272,24 @@ msgid "Home" msgstr "Home" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Dokumentace" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Výloha" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Podpora" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Dokumenty GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Dokumenty platformy REST" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "Dokumenty B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Podpora" + +#~ msgid "Documentation" +#~ msgstr "Dokumentace" diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.mo b/evibes/locale/da_DK/LC_MESSAGES/django.mo index 85f6699e..cc9ef166 100644 Binary files a/evibes/locale/da_DK/LC_MESSAGES/django.mo and b/evibes/locale/da_DK/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.po b/evibes/locale/da_DK/LC_MESSAGES/django.po index 0c8f3275..7e915003 100644 --- a/evibes/locale/da_DK/LC_MESSAGES/django.po +++ b/evibes/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -117,45 +117,73 @@ msgstr "En enhed til lagring af analysedata" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Velkommen til {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API-dokumentation.\n" +"Velkommen til {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API-" +"dokumentation.\n" "\n" -"Den {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API er designet til at give problemfri integration til forhandlere, der sælger en bred vifte af elektronik. Gennem denne API kan partnere nemt administrere produkter, ordrer og lagerbeholdning, samtidig med at de får adgang til lagerniveauer i realtid.\n" +"Den {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API er designet til at " +"give problemfri integration til forhandlere, der sælger en bred vifte af " +"elektronik. Gennem denne API kan partnere nemt administrere produkter, " +"ordrer og lagerbeholdning, samtidig med at de får adgang til lagerniveauer i " +"realtid.\n" "\n" "## Nøglefunktioner\n" -"- Produktstyring:** Opret, opdater og administrer nemt dine produktfortegnelser med detaljerede specifikationer.\n" -"- Ordrebehandling: ** Håndter bulkordrer effektivt med strømlinede operationer for købmænd.\n" -"- Lagerstyring: ** Hold styr på lagerbeholdningen i realtid, og sørg for en problemfri levering.\n" -"- Sikre transaktioner:** Sikre og krypterede transaktioner for at beskytte følsomme forretningsoplysninger.\n" -"- Understøttelse af flere valutaer:** Udvid din markedsdækning med transaktioner i flere valutaer.\n" -"- Meddelelser i realtid:** Hold dig opdateret med øjeblikkelige advarsler om lagerændringer og ordrestatus.\n" +"- Produktstyring:** Opret, opdater og administrer nemt dine " +"produktfortegnelser med detaljerede specifikationer.\n" +"- Ordrebehandling: ** Håndter bulkordrer effektivt med strømlinede " +"operationer for købmænd.\n" +"- Lagerstyring: ** Hold styr på lagerbeholdningen i realtid, og sørg for en " +"problemfri levering.\n" +"- Sikre transaktioner:** Sikre og krypterede transaktioner for at beskytte " +"følsomme forretningsoplysninger.\n" +"- Understøttelse af flere valutaer:** Udvid din markedsdækning med " +"transaktioner i flere valutaer.\n" +"- Meddelelser i realtid:** Hold dig opdateret med øjeblikkelige advarsler om " +"lagerændringer og ordrestatus.\n" "\n" "## Godkendelse\n" -"- Autentificering håndteres via dit merchant token. Inkluder tokenet i `X-EVIBES-B2B-AUTH`-headeren i dine anmodninger i formatet `Bearer `.\n" +"- Autentificering håndteres via dit merchant token. Inkluder tokenet i `X-" +"EVIBES-B2B-AUTH`-headeren i dine anmodninger i formatet `Bearer " +"`.\n" "\n" "## I18N\n" -"- Anvend en `Accept-Language`-header for at bruge et andet sprog end standardsproget. En liste over alle sprog er tilgængelig på `/app/languages/`.\n" +"- Anvend en `Accept-Language`-header for at bruge et andet sprog end " +"standardsproget. En liste over alle sprog er tilgængelig på `/app/languages/" +"`.\n" "\n" "## Version\n" "Nuværende API-version: {EVIBES_VERSION}\n" @@ -163,51 +191,81 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Velkommen til {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API-dokumentation.\n" +"Velkommen til {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API-" +"dokumentation.\n" "\n" -"Den {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API er det centrale knudepunkt for administration af produktlister, overvågning af ordrer og adgang til analyser for din elektronikbutik. Det giver RESTful endpoints til styring af din butiks backend-operationer og inkluderer både REST- og GraphQL-muligheder.\n" +"Den {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API er det centrale " +"knudepunkt for administration af produktlister, overvågning af ordrer og " +"adgang til analyser for din elektronikbutik. Det giver RESTful endpoints til " +"styring af din butiks backend-operationer og inkluderer både REST- og " +"GraphQL-muligheder.\n" "\n" "## Nøglefunktioner\n" "- Produktkatalog:** Administrer produktdetaljer, priser og tilgængelighed.\n" -"- Ordrehåndtering:** Få adgang til detaljerede ordreoplysninger, og behandl kundeanmodninger effektivt.\n" -"- Brugerroller og -tilladelser:** Indstil brugerroller og -tilladelser til intern administration.\n" -"- Brugerdefinerede integrationer:** Forbind dit system med eksterne platforme via effektive API'er.\n" -"- Detaljeret rapportering:** Generer omfattende rapporter om ordrer, salgsresultater og produktdata.\n" -"- Realtidsdata:** Få liveopdateringer om lagerbeholdning, priser og ordrestatus.\n" +"- Ordrehåndtering:** Få adgang til detaljerede ordreoplysninger, og behandl " +"kundeanmodninger effektivt.\n" +"- Brugerroller og -tilladelser:** Indstil brugerroller og -tilladelser til " +"intern administration.\n" +"- Brugerdefinerede integrationer:** Forbind dit system med eksterne " +"platforme via effektive API'er.\n" +"- Detaljeret rapportering:** Generer omfattende rapporter om ordrer, " +"salgsresultater og produktdata.\n" +"- Realtidsdata:** Få liveopdateringer om lagerbeholdning, priser og " +"ordrestatus.\n" "\n" "## Godkendelse\n" -"- Autentificering håndteres via JWT-tokens. Inkluder tokenet i `X-EVIBES-AUTH`-headeren i dine anmodninger i formatet `Bearer `.\n" -"- Adgangstokenets levetid er {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600}. {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh-tokens levetid er {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} timer.\n" +"- Autentificering håndteres via JWT-tokens. Inkluder tokenet i `X-EVIBES-" +"AUTH`-headeren i dine anmodninger i formatet `Bearer `.\n" +"- Adgangstokenets levetid er {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600}. {\"minutes\" if not DEBUG " +"else \"hours\"}.\n" +"- Refresh-tokens levetid er {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} timer.\n" "- Refresh-tokens bliver automatisk ugyldiggjort efter brug.\n" "\n" "## I18N\n" -"- Anvend en `Accept-Language` header for at bruge et andet sprog end standardsproget. En liste over alle sprog er tilgængelig på `/app/languages/`.\n" +"- Anvend en `Accept-Language` header for at bruge et andet sprog end " +"standardsproget. En liste over alle sprog er tilgængelig på `/app/languages/" +"`.\n" "\n" "## Version\n" "Nuværende API-version: {EVIBES_VERSION}\n" @@ -217,25 +275,24 @@ msgid "Home" msgstr "Hjem" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Dokumentation" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Butiksfacade" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Støtte" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "GraphQL-dokumenter" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Platform REST-dokumenter" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST-dokumenter" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Støtte" + +#~ msgid "Documentation" +#~ msgstr "Dokumentation" diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.mo b/evibes/locale/de_DE/LC_MESSAGES/django.mo index 9937f72e..644b7b8a 100644 Binary files a/evibes/locale/de_DE/LC_MESSAGES/django.mo and b/evibes/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.po b/evibes/locale/de_DE/LC_MESSAGES/django.po index 93a005a0..2b02e457 100644 --- a/evibes/locale/de_DE/LC_MESSAGES/django.po +++ b/evibes/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -117,45 +117,74 @@ msgstr "Eine Einheit zur Speicherung von Analysedaten" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Willkommen bei der {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B-API-Dokumentation.\n" +"Willkommen bei der {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B-API-" +"Dokumentation.\n" "\n" -"Die {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API wurde entwickelt, um eine nahtlose Integration für Händler zu ermöglichen, die eine breite Palette von Elektronikprodukten verkaufen. Über diese API können Partnerhändler Produkte, Bestellungen und Bestände einfach verwalten und gleichzeitig auf Echtzeit-Bestände zugreifen.\n" +"Die {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API wurde entwickelt, um " +"eine nahtlose Integration für Händler zu ermöglichen, die eine breite " +"Palette von Elektronikprodukten verkaufen. Über diese API können " +"Partnerhändler Produkte, Bestellungen und Bestände einfach verwalten und " +"gleichzeitig auf Echtzeit-Bestände zugreifen.\n" "\n" "## Hauptmerkmale\n" -"- **Produktmanagement:** Einfaches Erstellen, Aktualisieren und Verwalten Ihrer Produktlisten mit detaillierten Spezifikationen.\n" -"- **Auftragsabwicklung:** Effiziente Abwicklung von Großaufträgen mit optimierten Abläufen für Händler.\n" -"- **Bestandsverwaltung:** Behalten Sie den Überblick über die Lagerbestände in Echtzeit, um eine reibungslose Abwicklung zu gewährleisten.\n" -"- **Sichere Transaktionen:** Sichere und verschlüsselte Transaktionen zum Schutz sensibler Geschäftsinformationen.\n" -"- **Mehrwährungsunterstützung:** Erweitern Sie Ihre Marktreichweite mit Transaktionen in mehreren Währungen.\n" -"- **Echtzeit-Benachrichtigungen:** Bleiben Sie mit sofortigen Benachrichtigungen über Bestandsänderungen und Auftragsstatus auf dem Laufenden.\n" +"- **Produktmanagement:** Einfaches Erstellen, Aktualisieren und Verwalten " +"Ihrer Produktlisten mit detaillierten Spezifikationen.\n" +"- **Auftragsabwicklung:** Effiziente Abwicklung von Großaufträgen mit " +"optimierten Abläufen für Händler.\n" +"- **Bestandsverwaltung:** Behalten Sie den Überblick über die Lagerbestände " +"in Echtzeit, um eine reibungslose Abwicklung zu gewährleisten.\n" +"- **Sichere Transaktionen:** Sichere und verschlüsselte Transaktionen zum " +"Schutz sensibler Geschäftsinformationen.\n" +"- **Mehrwährungsunterstützung:** Erweitern Sie Ihre Marktreichweite mit " +"Transaktionen in mehreren Währungen.\n" +"- **Echtzeit-Benachrichtigungen:** Bleiben Sie mit sofortigen " +"Benachrichtigungen über Bestandsänderungen und Auftragsstatus auf dem " +"Laufenden.\n" "\n" "## Authentifizierung\n" -"- Die Authentifizierung erfolgt über Ihr Merchant Token. Fügen Sie das Token in den `X-EVIBES-B2B-AUTH`-Header Ihrer Anfragen im Format `Bearer ` ein.\n" +"- Die Authentifizierung erfolgt über Ihr Merchant Token. Fügen Sie das Token " +"in den `X-EVIBES-B2B-AUTH`-Header Ihrer Anfragen im Format `Bearer " +"` ein.\n" "\n" "## I18N\n" -"- Wenden Sie einen `Accept-Language`-Header an, um eine nicht standardmäßige Sprache zu verwenden. Eine Liste aller Sprachen ist unter `/app/languages/` verfügbar.\n" +"- Wenden Sie einen `Accept-Language`-Header an, um eine nicht standardmäßige " +"Sprache zu verwenden. Eine Liste aller Sprachen ist unter `/app/languages/` " +"verfügbar.\n" "\n" "## Version\n" "Aktuelle API-Version: {EVIBES_VERSION}\n" @@ -163,51 +192,83 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Willkommen bei der {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Plattform-API-Dokumentation.\n" +"Willkommen bei der {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Plattform-API-" +"Dokumentation.\n" "\n" -"Die {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API ist der zentrale Knotenpunkt für die Verwaltung von Produktlisten, die Überwachung von Bestellungen und den Zugriff auf Analysen für Ihren Elektronikshop. Sie bietet RESTful-Endpunkte für die Verwaltung der Backend-Operationen Ihres Shops und umfasst sowohl REST- als auch GraphQL-Optionen.\n" +"Die {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API ist der zentrale " +"Knotenpunkt für die Verwaltung von Produktlisten, die Überwachung von " +"Bestellungen und den Zugriff auf Analysen für Ihren Elektronikshop. Sie " +"bietet RESTful-Endpunkte für die Verwaltung der Backend-Operationen Ihres " +"Shops und umfasst sowohl REST- als auch GraphQL-Optionen.\n" "\n" "## Hauptmerkmale\n" -"- **Produktkatalog:** Verwalten Sie Produktdetails, Preise und Verfügbarkeit.\n" -"- **Bestellverwaltung:** Zugriff auf detaillierte Bestellinformationen und effiziente Bearbeitung von Kundenanfragen.\n" -"- **Benutzerrollen & Berechtigungen:** Legen Sie Benutzerrollen und Berechtigungen für die interne Verwaltung fest.\n" -"- **Benutzerdefinierte Integrationen:** Verbinden Sie Ihr System mit externen Plattformen über leistungsstarke APIs.\n" -"- **Detailliertes Reporting:** Erstellen Sie umfassende Berichte über Bestellungen, Verkaufsleistung und Produktdaten.\n" -"- **Echtzeitdaten:** Erhalten Sie Live-Updates zu Bestand, Preisen und Bestellstatus.\n" +"- **Produktkatalog:** Verwalten Sie Produktdetails, Preise und " +"Verfügbarkeit.\n" +"- **Bestellverwaltung:** Zugriff auf detaillierte Bestellinformationen und " +"effiziente Bearbeitung von Kundenanfragen.\n" +"- **Benutzerrollen & Berechtigungen:** Legen Sie Benutzerrollen und " +"Berechtigungen für die interne Verwaltung fest.\n" +"- **Benutzerdefinierte Integrationen:** Verbinden Sie Ihr System mit " +"externen Plattformen über leistungsstarke APIs.\n" +"- **Detailliertes Reporting:** Erstellen Sie umfassende Berichte über " +"Bestellungen, Verkaufsleistung und Produktdaten.\n" +"- **Echtzeitdaten:** Erhalten Sie Live-Updates zu Bestand, Preisen und " +"Bestellstatus.\n" "\n" "## Authentifizierung\n" -"- Die Authentifizierung erfolgt über JWT-Tokens. Fügen Sie das Token in den `X-EVIBES-AUTH`-Header Ihrer Anfragen im Format `Bearer ` ein.\n" -"- Die Lebensdauer des Zugangstokens beträgt {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Die Lebensdauer von Auffrischungstoken beträgt {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} Stunden.\n" -"- Aktualisierungs-Token werden nach der Verwendung automatisch ungültig gemacht.\n" +"- Die Authentifizierung erfolgt über JWT-Tokens. Fügen Sie das Token in den " +"`X-EVIBES-AUTH`-Header Ihrer Anfragen im Format `Bearer ` ein.\n" +"- Die Lebensdauer des Zugangstokens beträgt {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Die Lebensdauer von Auffrischungstoken beträgt {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} Stunden.\n" +"- Aktualisierungs-Token werden nach der Verwendung automatisch ungültig " +"gemacht.\n" "\n" "## I18N\n" -"- Wenden Sie einen `Accept-Language`-Header an, um eine nicht standardmäßige Sprache zu verwenden. Eine Liste aller Sprachen ist unter `/app/languages/` verfügbar.\n" +"- Wenden Sie einen `Accept-Language`-Header an, um eine nicht standardmäßige " +"Sprache zu verwenden. Eine Liste aller Sprachen ist unter `/app/languages/` " +"verfügbar.\n" "\n" "## Version\n" "Aktuelle API-Version: {EVIBES_VERSION}\n" @@ -217,25 +278,24 @@ msgid "Home" msgstr "Startseite" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Dokumentation" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Schaufenster" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Unterstützung" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "GraphQL Docs" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Plattform REST Docs" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST-Dokumente" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Unterstützung" + +#~ msgid "Documentation" +#~ msgstr "Dokumentation" diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.mo b/evibes/locale/en_GB/LC_MESSAGES/django.mo index 7d0b5fb9..ff2f8879 100644 Binary files a/evibes/locale/en_GB/LC_MESSAGES/django.mo and b/evibes/locale/en_GB/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.po b/evibes/locale/en_GB/LC_MESSAGES/django.po index 4c7c2a6d..5a69d19d 100644 --- a/evibes/locale/en_GB/LC_MESSAGES/django.po +++ b/evibes/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -120,45 +120,71 @@ msgstr "An entity for storing analytics data" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -166,51 +192,79 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -220,25 +274,24 @@ msgid "Home" msgstr "Home" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentation" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Storefront" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Support" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "GraphQL Docs" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Platform REST Docs" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST Docs" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Support" + +#~ msgid "Documentation" +#~ msgstr "Documentation" diff --git a/evibes/locale/en_US/LC_MESSAGES/django.mo b/evibes/locale/en_US/LC_MESSAGES/django.mo index 40750891..50df54d2 100644 Binary files a/evibes/locale/en_US/LC_MESSAGES/django.mo and b/evibes/locale/en_US/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/en_US/LC_MESSAGES/django.po b/evibes/locale/en_US/LC_MESSAGES/django.po index c44af938..6c9bb155 100644 --- a/evibes/locale/en_US/LC_MESSAGES/django.po +++ b/evibes/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -116,45 +116,71 @@ msgstr "An entity for storing analytics data" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -162,51 +188,79 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -216,25 +270,24 @@ msgid "Home" msgstr "Home" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentation" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Storefront" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Support" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "GraphQL Docs" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Platform REST Docs" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST Docs" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Support" + +#~ msgid "Documentation" +#~ msgstr "Documentation" diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.mo b/evibes/locale/es_ES/LC_MESSAGES/django.mo index 9de7fda4..4816cb36 100644 Binary files a/evibes/locale/es_ES/LC_MESSAGES/django.mo and b/evibes/locale/es_ES/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.po b/evibes/locale/es_ES/LC_MESSAGES/django.po index c86821af..b4ea6f67 100644 --- a/evibes/locale/es_ES/LC_MESSAGES/django.po +++ b/evibes/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -118,45 +118,75 @@ msgstr "Una entidad para almacenar datos analíticos" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bienvenido a la {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentación de la API B2B.\n" +"Bienvenido a la {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentación de " +"la API B2B.\n" "\n" -"La {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API está diseñada para proporcionar una integración perfecta para los comerciantes que venden una amplia gama de productos electrónicos. A través de esta API, los comerciantes asociados pueden gestionar productos, pedidos e inventario con facilidad, al tiempo que acceden a los niveles de existencias en tiempo real.\n" +"La {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API está diseñada para " +"proporcionar una integración perfecta para los comerciantes que venden una " +"amplia gama de productos electrónicos. A través de esta API, los " +"comerciantes asociados pueden gestionar productos, pedidos e inventario con " +"facilidad, al tiempo que acceden a los niveles de existencias en tiempo " +"real.\n" "\n" "## Características principales\n" -"- Gestión de productos:** Cree, actualice y gestione fácilmente sus listados de productos con especificaciones detalladas.\n" -"- **Procesamiento de Pedidos:** Maneje los pedidos a granel de manera eficiente con operaciones simplificadas para los comerciantes.\n" -"- **Gestión de Inventario:** Mantenga un seguimiento de los niveles de existencias en tiempo real, asegurando el cumplimiento sin problemas.\n" -"- Transacciones seguras:** Transacciones seguras y encriptadas para proteger la información comercial confidencial.\n" -"- **Soporte multidivisa:** Amplíe el alcance de su mercado con transacciones multidivisa.\n" -"- **Notificaciones en tiempo real:** Manténgase actualizado con alertas instantáneas sobre los cambios en las existencias y el estado de los pedidos.\n" +"- Gestión de productos:** Cree, actualice y gestione fácilmente sus listados " +"de productos con especificaciones detalladas.\n" +"- **Procesamiento de Pedidos:** Maneje los pedidos a granel de manera " +"eficiente con operaciones simplificadas para los comerciantes.\n" +"- **Gestión de Inventario:** Mantenga un seguimiento de los niveles de " +"existencias en tiempo real, asegurando el cumplimiento sin problemas.\n" +"- Transacciones seguras:** Transacciones seguras y encriptadas para proteger " +"la información comercial confidencial.\n" +"- **Soporte multidivisa:** Amplíe el alcance de su mercado con transacciones " +"multidivisa.\n" +"- **Notificaciones en tiempo real:** Manténgase actualizado con alertas " +"instantáneas sobre los cambios en las existencias y el estado de los " +"pedidos.\n" "\n" "## Autenticación\n" -"- La autenticación se gestiona a través de su token de comerciante. Incluya el token en la cabecera `X-EVIBES-B2B-AUTH` de sus solicitudes con el formato `Bearer `.\n" +"- La autenticación se gestiona a través de su token de comerciante. Incluya " +"el token en la cabecera `X-EVIBES-B2B-AUTH` de sus solicitudes con el " +"formato `Bearer `.\n" "\n" "## I18N\n" -"- Aplique una cabecera `Accept-Language` para utilizar un idioma no predeterminado. Una lista de todos los idiomas está disponible en `/app/languages/`.\n" +"- Aplique una cabecera `Accept-Language` para utilizar un idioma no " +"predeterminado. Una lista de todos los idiomas está disponible en `/app/" +"languages/`.\n" "\n" "## Versión\n" "Versión actual de la API: {EVIBES_VERSION}\n" @@ -164,51 +194,84 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bienvenido a la {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentación de la API de la Plataforma.\n" +"Bienvenido a la {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentación de " +"la API de la Plataforma.\n" "\n" -"La {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API es el eje central para la gestión de listados de productos, seguimiento de pedidos, y el acceso a los análisis de su tienda de electrónica. Proporciona puntos finales RESTful para gestionar las operaciones de backend de su tienda e incluye opciones REST y GraphQL.\n" +"La {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API es el eje central para la " +"gestión de listados de productos, seguimiento de pedidos, y el acceso a los " +"análisis de su tienda de electrónica. Proporciona puntos finales RESTful " +"para gestionar las operaciones de backend de su tienda e incluye opciones " +"REST y GraphQL.\n" "\n" "## Características principales\n" -"- **Catálogo de productos:** Gestiona los detalles de los productos, precios y disponibilidad.\n" -"- **Gestión de pedidos:** Acceda a información detallada de los pedidos y procese las solicitudes de los clientes de forma eficiente.\n" -"- **Roles y Permisos de Usuario:** Establecer roles y permisos de usuario para la gestión interna.\n" -"- **Integraciones personalizadas:** Conecte su sistema con plataformas externas a través de potentes API.\n" -"- **Informes detallados:** Genere informes completos sobre pedidos, rendimiento de ventas y datos de productos.\n" -"- **Datos en tiempo real:** Obtenga actualizaciones en tiempo real sobre el inventario, los precios y el estado de los pedidos.\n" +"- **Catálogo de productos:** Gestiona los detalles de los productos, precios " +"y disponibilidad.\n" +"- **Gestión de pedidos:** Acceda a información detallada de los pedidos y " +"procese las solicitudes de los clientes de forma eficiente.\n" +"- **Roles y Permisos de Usuario:** Establecer roles y permisos de usuario " +"para la gestión interna.\n" +"- **Integraciones personalizadas:** Conecte su sistema con plataformas " +"externas a través de potentes API.\n" +"- **Informes detallados:** Genere informes completos sobre pedidos, " +"rendimiento de ventas y datos de productos.\n" +"- **Datos en tiempo real:** Obtenga actualizaciones en tiempo real sobre el " +"inventario, los precios y el estado de los pedidos.\n" "\n" "## Autenticación\n" -"- La autenticación se gestiona mediante tokens JWT. Incluya el token en la cabecera `X-EVIBES-AUTH` de sus peticiones con el formato `Bearer `.\n" -"- El tiempo de vida del token de acceso es {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- La vida útil del token de actualización es de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} horas.\n" -"- Los tokens de actualización se invalidan automáticamente después de su uso.\n" +"- La autenticación se gestiona mediante tokens JWT. Incluya el token en la " +"cabecera `X-EVIBES-AUTH` de sus peticiones con el formato `Bearer " +"`.\n" +"- El tiempo de vida del token de acceso es {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- La vida útil del token de actualización es de {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} horas.\n" +"- Los tokens de actualización se invalidan automáticamente después de su " +"uso.\n" "\n" "## I18N\n" -"- Aplicar una cabecera `Accept-Language` para utilizar un idioma no predeterminado. Una lista de todos los idiomas está disponible en `/app/languages/`.\n" +"- Aplicar una cabecera `Accept-Language` para utilizar un idioma no " +"predeterminado. Una lista de todos los idiomas está disponible en `/app/" +"languages/`.\n" "\n" "## Versión\n" "Versión actual de la API: {EVIBES_VERSION}\n" @@ -218,25 +281,24 @@ msgid "Home" msgstr "Inicio" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentación" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Escaparate" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Ayuda" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Documentos GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Plataforma REST Docs" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "Documentos B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Ayuda" + +#~ msgid "Documentation" +#~ msgstr "Documentación" diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.mo b/evibes/locale/fr_FR/LC_MESSAGES/django.mo index ea893f3f..c6255ae3 100644 Binary files a/evibes/locale/fr_FR/LC_MESSAGES/django.mo and b/evibes/locale/fr_FR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.po b/evibes/locale/fr_FR/LC_MESSAGES/django.po index ae451730..ade06253 100644 --- a/evibes/locale/fr_FR/LC_MESSAGES/django.po +++ b/evibes/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -96,8 +96,8 @@ msgstr "OpenAI API Key" #: evibes/settings/constance.py:40 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" -"Clé API abstraite, si elle est vide - aucune caractéristique abstraite n'est" -" fournie" +"Clé API abstraite, si elle est vide - aucune caractéristique abstraite n'est " +"fournie" #: evibes/settings/constance.py:42 msgid "HTTP Proxy" @@ -118,45 +118,73 @@ msgstr "Une entité pour stocker des données analytiques" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bienvenue dans la documentation de l'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentation de l'API B2B.\n" +"Bienvenue dans la documentation de l'API {CONSTANCE_CONFIG." +"get(\"PROJECT_NAME\")[0]} Documentation de l'API B2B.\n" "\n" -"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API est conçue pour offrir une intégration transparente aux commerçants qui vendent une large gamme de produits électroniques. Grâce à cette API, les commerçants partenaires peuvent gérer facilement les produits, les commandes et les stocks, tout en accédant aux niveaux de stock en temps réel.\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API est conçue pour " +"offrir une intégration transparente aux commerçants qui vendent une large " +"gamme de produits électroniques. Grâce à cette API, les commerçants " +"partenaires peuvent gérer facilement les produits, les commandes et les " +"stocks, tout en accédant aux niveaux de stock en temps réel.\n" "\n" "## Caractéristiques principales\n" -"- Gestion des produits:** Créez, mettez à jour et gérez facilement vos listes de produits avec des spécifications détaillées.\n" -"- Traitement des commandes:** Traitez efficacement les commandes en gros grâce à des opérations rationalisées pour les commerçants.\n" -"- Gestion des stocks:** Gardez une trace des niveaux de stock en temps réel, garantissant une exécution sans faille.\n" -"- Transactions sécurisées:** Transactions sécurisées et cryptées pour protéger les informations commerciales sensibles.\n" -"- Support multi-devises:** Élargissez votre marché grâce aux transactions multi-devises.\n" -"- Notifications en temps réel:** Restez informé grâce à des alertes instantanées sur les variations de stock et l'état des commandes.\n" +"- Gestion des produits:** Créez, mettez à jour et gérez facilement vos " +"listes de produits avec des spécifications détaillées.\n" +"- Traitement des commandes:** Traitez efficacement les commandes en gros " +"grâce à des opérations rationalisées pour les commerçants.\n" +"- Gestion des stocks:** Gardez une trace des niveaux de stock en temps réel, " +"garantissant une exécution sans faille.\n" +"- Transactions sécurisées:** Transactions sécurisées et cryptées pour " +"protéger les informations commerciales sensibles.\n" +"- Support multi-devises:** Élargissez votre marché grâce aux transactions " +"multi-devises.\n" +"- Notifications en temps réel:** Restez informé grâce à des alertes " +"instantanées sur les variations de stock et l'état des commandes.\n" "\n" "## Authentification\n" -"- L'authentification est gérée par votre jeton de commerçant. Incluez le jeton dans l'en-tête `X-EVIBES-B2B-AUTH` de vos requêtes au format `Bearer `.\n" +"- L'authentification est gérée par votre jeton de commerçant. Incluez le " +"jeton dans l'en-tête `X-EVIBES-B2B-AUTH` de vos requêtes au format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Appliquez un en-tête `Accept-Language` pour utiliser une langue autre que celle par défaut. Une liste de toutes les langues est disponible dans `/app/languages/`.\n" +"- Appliquez un en-tête `Accept-Language` pour utiliser une langue autre que " +"celle par défaut. Une liste de toutes les langues est disponible dans `/app/" +"languages/`.\n" "\n" "## Version\n" "Version actuelle de l'API : {EVIBES_VERSION}\n" @@ -164,51 +192,83 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bienvenue dans la documentation de l'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentation de l'API de la plate-forme.\n" +"Bienvenue dans la documentation de l'API {CONSTANCE_CONFIG." +"get(\"PROJECT_NAME\")[0]} Documentation de l'API de la plate-forme.\n" "\n" -"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} est le centre névralgique de la gestion des listes de produits, du suivi des commandes et de l'accès aux analyses pour votre magasin d'électronique. Elle fournit des points d'extrémité RESTful pour gérer les opérations de backend de votre magasin et comprend des options REST et GraphQL.\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} est le centre névralgique " +"de la gestion des listes de produits, du suivi des commandes et de l'accès " +"aux analyses pour votre magasin d'électronique. Elle fournit des points " +"d'extrémité RESTful pour gérer les opérations de backend de votre magasin et " +"comprend des options REST et GraphQL.\n" "\n" "## Caractéristiques principales\n" -"- Catalogue de produits:** Gérer les détails, les prix et la disponibilité des produits.\n" -"- Gestion des commandes:** Accédez aux informations détaillées des commandes et traitez efficacement les demandes des clients.\n" -"- Rôles et permissions des utilisateurs:** Définissez les rôles et permissions des utilisateurs pour la gestion interne.\n" -"- Intégrations personnalisées:** Connectez votre système à des plateformes externes grâce à des API puissantes.\n" -"- Rapports détaillés:** Générez des rapports complets sur les commandes, les performances de vente et les données sur les produits.\n" -"- Données en temps réel:** Obtenez des mises à jour en direct sur les stocks, les prix et les statuts des commandes.\n" +"- Catalogue de produits:** Gérer les détails, les prix et la disponibilité " +"des produits.\n" +"- Gestion des commandes:** Accédez aux informations détaillées des commandes " +"et traitez efficacement les demandes des clients.\n" +"- Rôles et permissions des utilisateurs:** Définissez les rôles et " +"permissions des utilisateurs pour la gestion interne.\n" +"- Intégrations personnalisées:** Connectez votre système à des plateformes " +"externes grâce à des API puissantes.\n" +"- Rapports détaillés:** Générez des rapports complets sur les commandes, les " +"performances de vente et les données sur les produits.\n" +"- Données en temps réel:** Obtenez des mises à jour en direct sur les " +"stocks, les prix et les statuts des commandes.\n" "\n" "## Authentification\n" -"- L'authentification est gérée par des jetons JWT. Incluez le jeton dans l'en-tête `X-EVIBES-AUTH` de vos requêtes au format `Bearer `.\n" -"- La durée de vie du jeton d'accès est de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- La durée de vie du jeton de rafraîchissement est de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} heures.\n" -"- Les jetons de rafraîchissement sont automatiquement invalidés après utilisation.\n" +"- L'authentification est gérée par des jetons JWT. Incluez le jeton dans " +"l'en-tête `X-EVIBES-AUTH` de vos requêtes au format `Bearer `.\n" +"- La durée de vie du jeton d'accès est de {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- La durée de vie du jeton de rafraîchissement est de {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} heures.\n" +"- Les jetons de rafraîchissement sont automatiquement invalidés après " +"utilisation.\n" "\n" "## I18N\n" -"- Appliquer un en-tête `Accept-Language` pour utiliser une langue autre que celle par défaut. Une liste de toutes les langues est disponible dans `/app/languages/`.\n" +"- Appliquer un en-tête `Accept-Language` pour utiliser une langue autre que " +"celle par défaut. Une liste de toutes les langues est disponible dans `/app/" +"languages/`.\n" "\n" "## Version\n" "Version actuelle de l'API : {EVIBES_VERSION}\n" @@ -218,25 +278,24 @@ msgid "Home" msgstr "Accueil" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentation" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Vitrine" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Soutien" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Docs GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Docs REST de la plateforme" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST Docs" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Soutien" + +#~ msgid "Documentation" +#~ msgstr "Documentation" diff --git a/evibes/locale/hi_IN/LC_MESSAGES/django.po b/evibes/locale/hi_IN/LC_MESSAGES/django.po index c5fcec9c..3db90fd8 100644 --- a/evibes/locale/hi_IN/LC_MESSAGES/django.po +++ b/evibes/locale/hi_IN/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -201,25 +201,21 @@ msgid "Home" msgstr "" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "" diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.mo b/evibes/locale/it_IT/LC_MESSAGES/django.mo index 7a358bb0..d8eb0d6f 100644 Binary files a/evibes/locale/it_IT/LC_MESSAGES/django.mo and b/evibes/locale/it_IT/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.po b/evibes/locale/it_IT/LC_MESSAGES/django.po index a88eee66..f3881a17 100644 --- a/evibes/locale/it_IT/LC_MESSAGES/django.po +++ b/evibes/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -117,45 +117,73 @@ msgstr "Un'entità per la memorizzazione dei dati analitici" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Benvenuti nella documentazione di {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentazione dell'API B2B.\n" +"Benvenuti nella documentazione di {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")" +"[0]} Documentazione dell'API B2B.\n" "\n" -"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API B2B è stata progettata per fornire un'integrazione perfetta ai commercianti che vendono un'ampia gamma di prodotti elettronici. Attraverso questa API, i commercianti partner possono gestire prodotti, ordini e inventario con facilità, accedendo ai livelli di stock in tempo reale.\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API B2B è stata progettata " +"per fornire un'integrazione perfetta ai commercianti che vendono un'ampia " +"gamma di prodotti elettronici. Attraverso questa API, i commercianti partner " +"possono gestire prodotti, ordini e inventario con facilità, accedendo ai " +"livelli di stock in tempo reale.\n" "\n" "## Caratteristiche principali\n" -"- **Gestione dei prodotti:** Creare, aggiornare e gestire facilmente gli elenchi dei prodotti con specifiche dettagliate.\n" -"- Elaborazione degli ordini:** Gestione efficiente degli ordini di massa con operazioni semplificate per i commercianti.\n" -"- Gestione dell'inventario:** Tenere sotto controllo i livelli delle scorte in tempo reale, per garantire un'evasione senza intoppi.\n" -"- Transazioni sicure:** Transazioni sicure e crittografate per proteggere le informazioni aziendali sensibili.\n" -"- Supporto per più valute:** Espandete il vostro mercato con transazioni in più valute.\n" -"- Notifiche in tempo reale:** Rimanete aggiornati con avvisi istantanei sulle variazioni di stock e sullo stato degli ordini.\n" +"- **Gestione dei prodotti:** Creare, aggiornare e gestire facilmente gli " +"elenchi dei prodotti con specifiche dettagliate.\n" +"- Elaborazione degli ordini:** Gestione efficiente degli ordini di massa con " +"operazioni semplificate per i commercianti.\n" +"- Gestione dell'inventario:** Tenere sotto controllo i livelli delle scorte " +"in tempo reale, per garantire un'evasione senza intoppi.\n" +"- Transazioni sicure:** Transazioni sicure e crittografate per proteggere le " +"informazioni aziendali sensibili.\n" +"- Supporto per più valute:** Espandete il vostro mercato con transazioni in " +"più valute.\n" +"- Notifiche in tempo reale:** Rimanete aggiornati con avvisi istantanei " +"sulle variazioni di stock e sullo stato degli ordini.\n" "\n" "## Autenticazione\n" -"- L'autenticazione è gestita tramite il token del commerciante. Includete il token nell'intestazione `X-EVIBES-B2B-AUTH` delle vostre richieste nel formato `Bearer `.\n" +"- L'autenticazione è gestita tramite il token del commerciante. Includete il " +"token nell'intestazione `X-EVIBES-B2B-AUTH` delle vostre richieste nel " +"formato `Bearer `.\n" "\n" "## I18N\n" -"- Applicare un'intestazione `Accept-Language` per utilizzare una lingua non predefinita. Un elenco di tutte le lingue è disponibile in `/app/languages/`.\n" +"- Applicare un'intestazione `Accept-Language` per utilizzare una lingua non " +"predefinita. Un elenco di tutte le lingue è disponibile in `/app/languages/" +"`.\n" "\n" "## Versione\n" "Versione attuale dell'API: {EVIBES_VERSION}\n" @@ -163,51 +191,83 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Benvenuti nella documentazione della {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentazione dell'API della piattaforma.\n" +"Benvenuti nella documentazione della {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")" +"[0]} Documentazione dell'API della piattaforma.\n" "\n" -"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} è l'hub centrale per la gestione delle inserzioni dei prodotti, il monitoraggio degli ordini e l'accesso alle analisi del vostro negozio di elettronica. Fornisce endpoint REST per la gestione delle operazioni di backend del negozio e include opzioni REST e GraphQL.\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} è l'hub centrale per la " +"gestione delle inserzioni dei prodotti, il monitoraggio degli ordini e " +"l'accesso alle analisi del vostro negozio di elettronica. Fornisce endpoint " +"REST per la gestione delle operazioni di backend del negozio e include " +"opzioni REST e GraphQL.\n" "\n" "## Caratteristiche principali\n" -"- **Catalogo dei prodotti:** Gestione dei dettagli dei prodotti, dei prezzi e della disponibilità.\n" -"- Gestione degli ordini:** Accesso a informazioni dettagliate sugli ordini e gestione efficiente delle richieste dei clienti.\n" -"- Ruoli e permessi degli utenti:** Impostazione dei ruoli e dei permessi degli utenti per la gestione interna.\n" -"- Integrazioni personalizzate:** Collegare il sistema a piattaforme esterne tramite potenti API.\n" -"- Reporting dettagliato:** Generazione di report completi su ordini, performance di vendita e dati di prodotto.\n" -"- Dati in tempo reale:** Ricevere aggiornamenti in tempo reale su inventario, prezzi e stato degli ordini.\n" +"- **Catalogo dei prodotti:** Gestione dei dettagli dei prodotti, dei prezzi " +"e della disponibilità.\n" +"- Gestione degli ordini:** Accesso a informazioni dettagliate sugli ordini e " +"gestione efficiente delle richieste dei clienti.\n" +"- Ruoli e permessi degli utenti:** Impostazione dei ruoli e dei permessi " +"degli utenti per la gestione interna.\n" +"- Integrazioni personalizzate:** Collegare il sistema a piattaforme esterne " +"tramite potenti API.\n" +"- Reporting dettagliato:** Generazione di report completi su ordini, " +"performance di vendita e dati di prodotto.\n" +"- Dati in tempo reale:** Ricevere aggiornamenti in tempo reale su " +"inventario, prezzi e stato degli ordini.\n" "\n" "## Autenticazione\n" -"- L'autenticazione è gestita tramite token JWT. Includere il token nell'intestazione `X-EVIBES-AUTH` delle richieste nel formato `Bearer `.\n" -"- La durata del token di accesso è di {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- La durata del token di aggiornamento è di {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ore.\n" +"- L'autenticazione è gestita tramite token JWT. Includere il token " +"nell'intestazione `X-EVIBES-AUTH` delle richieste nel formato `Bearer " +"`.\n" +"- La durata del token di accesso è di {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- La durata del token di aggiornamento è di {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ore.\n" "- I token di aggiornamento vengono automaticamente invalidati dopo l'uso.\n" "\n" "## I18N\n" -"- Applicare un'intestazione `Accept-Language` per usare una lingua non predefinita. Un elenco di tutte le lingue è disponibile in `/app/languages/`.\n" +"- Applicare un'intestazione `Accept-Language` per usare una lingua non " +"predefinita. Un elenco di tutte le lingue è disponibile in `/app/languages/" +"`.\n" "\n" "## Versione\n" "Versione attuale dell'API: {EVIBES_VERSION}\n" @@ -217,25 +277,24 @@ msgid "Home" msgstr "Casa" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentazione" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Storefront" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Supporto" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Documenti GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Documenti della piattaforma REST" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "Documenti REST B2B" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Supporto" + +#~ msgid "Documentation" +#~ msgstr "Documentazione" diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.mo b/evibes/locale/ja_JP/LC_MESSAGES/django.mo index e3afecc8..ff907dd1 100644 Binary files a/evibes/locale/ja_JP/LC_MESSAGES/django.mo and b/evibes/locale/ja_JP/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.po b/evibes/locale/ja_JP/LC_MESSAGES/django.po index ee33f1f3..74afad3f 100644 --- a/evibes/locale/ja_JP/LC_MESSAGES/django.po +++ b/evibes/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -116,45 +116,68 @@ msgstr "分析データを保存するエンティティ" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"ようこそ{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}へ。B2B API ドキュメントへようこそ。\n" +"ようこそ{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}へ。B2B API ドキュメントへ" +"ようこそ。\n" "\n" -"PH_1__}はB2B API は、さまざまな電子機器を販売するマーチャントにシームレスな統合を提供するように設計されています。このAPIを通じて、パートナーである販売業者は、リアルタイムの在庫レベルにアクセスしながら、商品、注文、在庫を簡単に管理できます。\n" +"PH_1__}はB2B API は、さまざまな電子機器を販売するマーチャントにシームレスな統" +"合を提供するように設計されています。このAPIを通じて、パートナーである販売業者" +"は、リアルタイムの在庫レベルにアクセスしながら、商品、注文、在庫を簡単に管理" +"できます。\n" "\n" "## 主な機能\n" "- 商品管理:** 商品リストを簡単に作成、更新、詳細な仕様で管理できます。\n" "- 注文処理:**商人のための合理化された操作で効率的に大量注文を処理します。\n" "- 在庫管理:**リアルタイムで在庫レベルを追跡し、円滑な履行を確保します。\n" -"- **安全なトランザクション: **機密ビジネス情報を保護する安全な、暗号化されたトランザクション。\n" -"- **多通貨サポート: **多通貨トランザクションとのあなたの市場の範囲を拡大して下さい。\n" -"- リアルタイム通知:**在庫変更と注文ステータスのインスタントアラートで更新されます。\n" +"- **安全なトランザクション: **機密ビジネス情報を保護する安全な、暗号化された" +"トランザクション。\n" +"- **多通貨サポート: **多通貨トランザクションとのあなたの市場の範囲を拡大して" +"下さい。\n" +"- リアルタイム通知:**在庫変更と注文ステータスのインスタントアラートで更新さ" +"れます。\n" "\n" "## 認証\n" -"- 認証はマーチャントトークンによって行われます。リクエストの `X-EVIBES-B2B-AUTH` ヘッダーに `Bearer ` という形式でトークンを含めてください。\n" +"- 認証はマーチャントトークンによって行われます。リクエストの `X-EVIBES-B2B-" +"AUTH` ヘッダーに `Bearer ` という形式でトークンを含めてくださ" +"い。\n" "\n" "## 国際化\n" -"- デフォルト以外の言語を使う場合は `Accept-Language` ヘッダを付ける。全言語のリストは `/app/languages/` にあります。\n" +"- デフォルト以外の言語を使う場合は `Accept-Language` ヘッダを付ける。全言語の" +"リストは `/app/languages/` にあります。\n" "\n" "## バージョン\n" "現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}.\n" @@ -162,51 +185,76 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"ようこそ{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}へ。Platform API ドキュメントへようこそ。\n" +"ようこそ{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}へ。Platform API ドキュメ" +"ントへようこそ。\n" "\n" -"PH_1__}はAPI は、商品リストの管理、注文の監視、家電量販店の分析へのアクセスを行うための中心的なハブです。ストアのバックエンド操作を管理するためのRESTfulエンドポイントを提供し、RESTとGraphQLの両方のオプションがあります。\n" +"PH_1__}はAPI は、商品リストの管理、注文の監視、家電量販店の分析へのアクセスを" +"行うための中心的なハブです。ストアのバックエンド操作を管理するためのRESTfulエ" +"ンドポイントを提供し、RESTとGraphQLの両方のオプションがあります。\n" "\n" "## 主な機能\n" "- 商品カタログ:** 商品の詳細、価格、在庫状況を管理します。\n" -"- 注文管理:** 詳細な注文情報にアクセスし、顧客のリクエストを効率的に処理します。\n" +"- 注文管理:** 詳細な注文情報にアクセスし、顧客のリクエストを効率的に処理しま" +"す。\n" "- ユーザーの役割と権限:**内部管理のためのユーザーの役割と権限を設定します。\n" -"- カスタム統合:**強力なAPIを介して外部プラットフォームとシステムを接続します。\n" -"- **詳細なレポート:**受注、販売実績、および製品データに関する包括的なレポートを生成します。\n" +"- カスタム統合:**強力なAPIを介して外部プラットフォームとシステムを接続しま" +"す。\n" +"- **詳細なレポート:**受注、販売実績、および製品データに関する包括的なレポー" +"トを生成します。\n" "- **リアルタイムデータ:**在庫、価格、注文状況のライブ更新を取得します。\n" "\n" "## 認証\n" -"- 認証はJWTトークンで行われます。リクエストの `X-EVIBES-AUTH` ヘッダーに、`Bearer ` という形式でトークンを含めてください。\n" -"- アクセストークンの有効期限は {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} です。{\"minutes\" if not DEBUG else \"hours\"}です。\n" -"- リフレッシュ・トークンの有効期限は {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} 時間です。\n" +"- 認証はJWTトークンで行われます。リクエストの `X-EVIBES-AUTH` ヘッダーに、" +"`Bearer ` という形式でトークンを含めてください。\n" +"- アクセストークンの有効期限は {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} です。{\"minutes\" if not " +"DEBUG else \"hours\"}です。\n" +"- リフレッシュ・トークンの有効期限は {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} 時間です。\n" "- リフレッシュトークンは使用後に自動的に無効になります。\n" "\n" "## I18N\n" -"- デフォルト以外の言語を使用するには `Accept-Language` ヘッダーを適用する。全言語のリストは `/app/languages/` にあります。\n" +"- デフォルト以外の言語を使用するには `Accept-Language` ヘッダーを適用する。全" +"言語のリストは `/app/languages/` にあります。\n" "\n" "## バージョン\n" "現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}.\n" @@ -216,25 +264,24 @@ msgid "Home" msgstr "ホーム" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "ドキュメンテーション" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "ストアフロント" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "サポート" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "GraphQLドキュメント" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "プラットフォームRESTドキュメント" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST ドキュメント" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "サポート" + +#~ msgid "Documentation" +#~ msgstr "ドキュメンテーション" diff --git a/evibes/locale/kk_KZ/LC_MESSAGES/django.po b/evibes/locale/kk_KZ/LC_MESSAGES/django.po index c5fcec9c..3db90fd8 100644 --- a/evibes/locale/kk_KZ/LC_MESSAGES/django.po +++ b/evibes/locale/kk_KZ/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -201,25 +201,21 @@ msgid "Home" msgstr "" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "" diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.mo b/evibes/locale/nl_NL/LC_MESSAGES/django.mo index 511c9c75..a1e2bbbc 100644 Binary files a/evibes/locale/nl_NL/LC_MESSAGES/django.mo and b/evibes/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.po b/evibes/locale/nl_NL/LC_MESSAGES/django.po index c8ada352..590e8add 100644 --- a/evibes/locale/nl_NL/LC_MESSAGES/django.po +++ b/evibes/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -117,45 +117,72 @@ msgstr "Een entiteit voor het opslaan van analytische gegevens" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Welkom bij de {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentatie.\n" +"Welkom bij de {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentatie.\n" "\n" -"De {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is ontworpen om naadloze integratie te bieden voor verkopers van een breed scala aan elektronica. Via deze API kunnen handelaren met wie u samenwerkt eenvoudig producten, bestellingen en voorraden beheren, terwijl u ook toegang hebt tot realtime voorraadniveaus.\n" +"De {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is ontworpen om " +"naadloze integratie te bieden voor verkopers van een breed scala aan " +"elektronica. Via deze API kunnen handelaren met wie u samenwerkt eenvoudig " +"producten, bestellingen en voorraden beheren, terwijl u ook toegang hebt tot " +"realtime voorraadniveaus.\n" "\n" "## Belangrijkste functies\n" -"- **Productbeheer:**Maak, update en beheer eenvoudig je productlijsten met gedetailleerde specificaties.\n" -"- Orderverwerking:** Behandel bulkorders efficiënt met gestroomlijnde operaties voor verkopers.\n" -"- Voorraadbeheer:** Houd voorraadniveaus in real-time bij, voor een soepele afhandeling.\n" -"- **Veilige transacties:**Veiligde en versleutelde transacties om gevoelige bedrijfsinformatie te beschermen.\n" -"- Ondersteuning voor meerdere valuta:** Vergroot uw marktbereik met transacties in meerdere valuta.\n" -"- **Real-Time Meldingen:** Blijf op de hoogte met directe meldingen over voorraadwijzigingen en orderstatussen.\n" +"- **Productbeheer:**Maak, update en beheer eenvoudig je productlijsten met " +"gedetailleerde specificaties.\n" +"- Orderverwerking:** Behandel bulkorders efficiënt met gestroomlijnde " +"operaties voor verkopers.\n" +"- Voorraadbeheer:** Houd voorraadniveaus in real-time bij, voor een soepele " +"afhandeling.\n" +"- **Veilige transacties:**Veiligde en versleutelde transacties om gevoelige " +"bedrijfsinformatie te beschermen.\n" +"- Ondersteuning voor meerdere valuta:** Vergroot uw marktbereik met " +"transacties in meerdere valuta.\n" +"- **Real-Time Meldingen:** Blijf op de hoogte met directe meldingen over " +"voorraadwijzigingen en orderstatussen.\n" "\n" "## Authenticatie\n" -"- Authenticatie wordt afgehandeld via uw handelaarstoken. Neem het token op in de `X-EVIBES-B2B-AUTH` header van je verzoeken in het formaat `Bearer `.\n" +"- Authenticatie wordt afgehandeld via uw handelaarstoken. Neem het token op " +"in de `X-EVIBES-B2B-AUTH` header van je verzoeken in het formaat `Bearer " +"`.\n" "\n" "## I18N\n" -"- Gebruik een `Accept-Language` header om een niet-standaard taal te gebruiken. Een lijst van alle talen is beschikbaar op `/app/languages/`.\n" +"- Gebruik een `Accept-Language` header om een niet-standaard taal te " +"gebruiken. Een lijst van alle talen is beschikbaar op `/app/languages/`.\n" "\n" "## Versie\n" "Huidige API-versie: {EVIBES_VERSION}\n" @@ -163,51 +190,80 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Welkom bij de {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentatie.\n" +"Welkom bij de {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentatie.\n" "\n" -"De {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is de centrale hub voor het beheren van productoverzichten, het controleren van bestellingen en het opvragen van analyses voor uw elektronicawinkel. De API biedt REST-achtige eindpunten voor het beheer van de back-end activiteiten van uw winkel en bevat zowel REST- als GraphQL-opties.\n" +"De {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is de centrale hub voor " +"het beheren van productoverzichten, het controleren van bestellingen en het " +"opvragen van analyses voor uw elektronicawinkel. De API biedt REST-achtige " +"eindpunten voor het beheer van de back-end activiteiten van uw winkel en " +"bevat zowel REST- als GraphQL-opties.\n" "\n" "## Belangrijkste functies\n" "- **Productcatalogus:** Beheer productgegevens, prijzen en beschikbaarheid.\n" -"- Orderbeheer:**Toegang tot gedetailleerde orderinformatie en efficiënte verwerking van klantverzoeken.\n" -"- **Gebruikersrollen en -rechten:** Stel gebruikersrollen en -rechten in voor intern beheer.\n" -"- **Aangepaste integraties:** Verbind uw systeem met externe platforms via krachtige API's.\n" -"- **Detailrapportage:** Genereer uitgebreide rapporten over bestellingen, verkoopprestaties en productgegevens.\n" -"- Realtime gegevens:** Ontvang live updates over voorraad, prijzen en orderstatussen.\n" +"- Orderbeheer:**Toegang tot gedetailleerde orderinformatie en efficiënte " +"verwerking van klantverzoeken.\n" +"- **Gebruikersrollen en -rechten:** Stel gebruikersrollen en -rechten in " +"voor intern beheer.\n" +"- **Aangepaste integraties:** Verbind uw systeem met externe platforms via " +"krachtige API's.\n" +"- **Detailrapportage:** Genereer uitgebreide rapporten over bestellingen, " +"verkoopprestaties en productgegevens.\n" +"- Realtime gegevens:** Ontvang live updates over voorraad, prijzen en " +"orderstatussen.\n" "\n" "## Authenticatie\n" -"- Authenticatie wordt afgehandeld via JWT-tokens. Neem het token op in de `X-EVIBES-AUTH` header van uw verzoeken in het formaat `Bearer `.\n" -"- De levensduur van het toegangstoken is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- De levensduur van een verversingstoken is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} uur.\n" +"- Authenticatie wordt afgehandeld via JWT-tokens. Neem het token op in de `X-" +"EVIBES-AUTH` header van uw verzoeken in het formaat `Bearer `.\n" +"- De levensduur van het toegangstoken is {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- De levensduur van een verversingstoken is {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} uur.\n" "- Refresh tokens worden na gebruik automatisch ongeldig gemaakt.\n" "\n" "## I18N\n" -"- Pas een `Accept-Language` header toe om een niet-standaard taal te gebruiken. Een lijst van alle talen is beschikbaar op `/app/languages/`.\n" +"- Pas een `Accept-Language` header toe om een niet-standaard taal te " +"gebruiken. Een lijst van alle talen is beschikbaar op `/app/languages/`.\n" "\n" "## Versie\n" "Huidige API-versie: {EVIBES_VERSION}\n" @@ -217,25 +273,24 @@ msgid "Home" msgstr "Home" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentatie" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Winkelpui" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Ondersteuning" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "GraphQL-documenten" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Platform REST-documenten" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST-documenten" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Ondersteuning" + +#~ msgid "Documentation" +#~ msgstr "Documentatie" diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.mo b/evibes/locale/pl_PL/LC_MESSAGES/django.mo index 028b6e29..20f298c8 100644 Binary files a/evibes/locale/pl_PL/LC_MESSAGES/django.mo and b/evibes/locale/pl_PL/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.po b/evibes/locale/pl_PL/LC_MESSAGES/django.po index 4f2819d5..9c7a0760 100644 --- a/evibes/locale/pl_PL/LC_MESSAGES/django.po +++ b/evibes/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -116,23 +116,36 @@ msgstr "Jednostka do przechowywania danych analitycznych" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -140,21 +153,34 @@ msgstr "" "\n" "Witamy w dokumentacji {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API.\n" "\n" -"Interfejs {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API został zaprojektowany w celu zapewnienia płynnej integracji dla sprzedawców sprzedających szeroką gamę elektroniki. Dzięki temu interfejsowi API współpracujący sprzedawcy mogą z łatwością zarządzać produktami, zamówieniami i zapasami, uzyskując jednocześnie dostęp do stanów magazynowych w czasie rzeczywistym.\n" +"Interfejs {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API został " +"zaprojektowany w celu zapewnienia płynnej integracji dla sprzedawców " +"sprzedających szeroką gamę elektroniki. Dzięki temu interfejsowi API " +"współpracujący sprzedawcy mogą z łatwością zarządzać produktami, " +"zamówieniami i zapasami, uzyskując jednocześnie dostęp do stanów " +"magazynowych w czasie rzeczywistym.\n" "\n" "## Kluczowe funkcje\n" -"- Zarządzanie produktami:** Łatwe tworzenie, aktualizowanie i zarządzanie listami produktów ze szczegółowymi specyfikacjami.\n" -"- Przetwarzanie zamówień:** Efektywna obsługa zamówień masowych dzięki usprawnionym operacjom dla sprzedawców.\n" -"- Zarządzanie zapasami:** Śledź poziomy zapasów w czasie rzeczywistym, zapewniając płynną realizację zamówień.\n" -"- Bezpieczne transakcje:** Bezpieczne i szyfrowane transakcje w celu ochrony poufnych informacji biznesowych.\n" -"- Obsługa wielu walut:** Rozszerz swój zasięg rynkowy dzięki transakcjom wielowalutowym.\n" -"- Powiadomienia w czasie rzeczywistym:** Bądź na bieżąco dzięki natychmiastowym alertom o zmianach zapasów i statusach zamówień.\n" +"- Zarządzanie produktami:** Łatwe tworzenie, aktualizowanie i zarządzanie " +"listami produktów ze szczegółowymi specyfikacjami.\n" +"- Przetwarzanie zamówień:** Efektywna obsługa zamówień masowych dzięki " +"usprawnionym operacjom dla sprzedawców.\n" +"- Zarządzanie zapasami:** Śledź poziomy zapasów w czasie rzeczywistym, " +"zapewniając płynną realizację zamówień.\n" +"- Bezpieczne transakcje:** Bezpieczne i szyfrowane transakcje w celu ochrony " +"poufnych informacji biznesowych.\n" +"- Obsługa wielu walut:** Rozszerz swój zasięg rynkowy dzięki transakcjom " +"wielowalutowym.\n" +"- Powiadomienia w czasie rzeczywistym:** Bądź na bieżąco dzięki " +"natychmiastowym alertom o zmianach zapasów i statusach zamówień.\n" "\n" "## Uwierzytelnianie\n" -"- Uwierzytelnianie jest obsługiwane przez token sprzedawcy. Dołącz token w nagłówku `X-EVIBES-B2B-AUTH` swoich żądań w formacie `Bearer `.\n" +"- Uwierzytelnianie jest obsługiwane przez token sprzedawcy. Dołącz token w " +"nagłówku `X-EVIBES-B2B-AUTH` swoich żądań w formacie `Bearer `.\n" "\n" "## I18N\n" -"- Zastosuj nagłówek `Accept-Language`, aby użyć języka innego niż domyślny. Lista wszystkich języków jest dostępna pod adresem `/app/languages/`.\n" +"- Zastosuj nagłówek `Accept-Language`, aby użyć języka innego niż domyślny. " +"Lista wszystkich języków jest dostępna pod adresem `/app/languages/`.\n" "\n" "## Wersja\n" "Aktualna wersja API: {EVIBES_VERSION}\n" @@ -162,51 +188,81 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Witamy w dokumentacji {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Dokumentacja API platformy.\n" +"Witamy w dokumentacji {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} " +"Dokumentacja API platformy.\n" "\n" -"Interfejs API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API to centralne centrum zarządzania listami produktów, monitorowania zamówień i uzyskiwania dostępu do analiz dla sklepu elektronicznego. Zapewnia punkty końcowe RESTful do zarządzania operacjami zaplecza sklepu i zawiera zarówno opcje REST, jak i GraphQL.\n" +"Interfejs API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API to centralne " +"centrum zarządzania listami produktów, monitorowania zamówień i uzyskiwania " +"dostępu do analiz dla sklepu elektronicznego. Zapewnia punkty końcowe " +"RESTful do zarządzania operacjami zaplecza sklepu i zawiera zarówno opcje " +"REST, jak i GraphQL.\n" "\n" "## Kluczowe funkcje\n" -"- Katalog produktów:** Zarządzanie szczegółami produktów, cenami i dostępnością.\n" -"- Zarządzanie zamówieniami:** Dostęp do szczegółowych informacji o zamówieniach i wydajne przetwarzanie żądań klientów.\n" -"- **User Roles & Permissions:** Ustawianie ról i uprawnień użytkowników dla wewnętrznego zarządzania.\n" -"- Niestandardowe integracje:** Połącz swój system z zewnętrznymi platformami za pomocą potężnych interfejsów API.\n" -"- **Szczegółowe raportowanie:** Generowanie kompleksowych raportów dotyczących zamówień, wyników sprzedaży i danych produktowych.\n" -"- **Dane w czasie rzeczywistym:** Uzyskaj aktualizacje na żywo dotyczące zapasów, cen i statusów zamówień.\n" +"- Katalog produktów:** Zarządzanie szczegółami produktów, cenami i " +"dostępnością.\n" +"- Zarządzanie zamówieniami:** Dostęp do szczegółowych informacji o " +"zamówieniach i wydajne przetwarzanie żądań klientów.\n" +"- **User Roles & Permissions:** Ustawianie ról i uprawnień użytkowników dla " +"wewnętrznego zarządzania.\n" +"- Niestandardowe integracje:** Połącz swój system z zewnętrznymi platformami " +"za pomocą potężnych interfejsów API.\n" +"- **Szczegółowe raportowanie:** Generowanie kompleksowych raportów " +"dotyczących zamówień, wyników sprzedaży i danych produktowych.\n" +"- **Dane w czasie rzeczywistym:** Uzyskaj aktualizacje na żywo dotyczące " +"zapasów, cen i statusów zamówień.\n" "\n" "## Uwierzytelnianie\n" -"- Uwierzytelnianie jest obsługiwane za pomocą tokenów JWT. Dołącz token w nagłówku `X-EVIBES-AUTH` swoich żądań w formacie `Bearer `.\n" -"- Okres ważności tokenu dostępu wynosi {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Okres ważności tokenu odświeżania wynosi {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} godzin.\n" +"- Uwierzytelnianie jest obsługiwane za pomocą tokenów JWT. Dołącz token w " +"nagłówku `X-EVIBES-AUTH` swoich żądań w formacie `Bearer `.\n" +"- Okres ważności tokenu dostępu wynosi {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Okres ważności tokenu odświeżania wynosi {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} godzin.\n" "- Tokeny odświeżania są automatycznie unieważniane po użyciu.\n" "\n" "## I18N\n" -"- Zastosuj nagłówek `Accept-Language`, aby użyć języka innego niż domyślny. Lista wszystkich języków jest dostępna pod adresem `/app/languages/`.\n" +"- Zastosuj nagłówek `Accept-Language`, aby użyć języka innego niż domyślny. " +"Lista wszystkich języków jest dostępna pod adresem `/app/languages/`.\n" "\n" "## Wersja\n" "Aktualna wersja API: {EVIBES_VERSION}\n" @@ -216,25 +272,24 @@ msgid "Home" msgstr "Strona główna" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Dokumentacja" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Witryna sklepowa" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Wsparcie" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Dokumenty GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Dokumenty platformy REST" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "Dokumenty B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Wsparcie" + +#~ msgid "Documentation" +#~ msgstr "Dokumentacja" diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.mo b/evibes/locale/pt_BR/LC_MESSAGES/django.mo index 0dd2d337..1151221c 100644 Binary files a/evibes/locale/pt_BR/LC_MESSAGES/django.mo and b/evibes/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.po b/evibes/locale/pt_BR/LC_MESSAGES/django.po index 45f18348..f11e30df 100644 --- a/evibes/locale/pt_BR/LC_MESSAGES/django.po +++ b/evibes/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -116,45 +116,72 @@ msgstr "Uma entidade para armazenar dados analíticos" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bem-vindo à documentação da {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentação da API B2B.\n" +"Bem-vindo à documentação da {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} " +"Documentação da API B2B.\n" "\n" -"A {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API foi projetada para fornecer uma integração perfeita para os comerciantes que vendem uma ampla variedade de produtos eletrônicos. Por meio dessa API, os comerciantes parceiros podem gerenciar produtos, pedidos e estoque com facilidade, enquanto acessam os níveis de estoque em tempo real.\n" +"A {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API foi projetada para " +"fornecer uma integração perfeita para os comerciantes que vendem uma ampla " +"variedade de produtos eletrônicos. Por meio dessa API, os comerciantes " +"parceiros podem gerenciar produtos, pedidos e estoque com facilidade, " +"enquanto acessam os níveis de estoque em tempo real.\n" "\n" "## Principais recursos\n" -"- Gerenciamento de produtos:** Crie, atualize e gerencie facilmente suas listas de produtos com especificações detalhadas.\n" -"- Processamento de pedidos:** Trate os pedidos em massa de forma eficiente com operações simplificadas para os comerciantes.\n" -"- Gerenciamento de estoque:** Acompanhe os níveis de estoque em tempo real, garantindo o atendimento sem problemas.\n" -"- Transações seguras:** Transações seguras e criptografadas para proteger informações comerciais confidenciais.\n" -"- Suporte a várias moedas:** Amplie seu alcance de mercado com transações em várias moedas.\n" -"- Notificações em tempo real:** Mantenha-se atualizado com alertas instantâneos sobre alterações de estoque e status de pedidos.\n" +"- Gerenciamento de produtos:** Crie, atualize e gerencie facilmente suas " +"listas de produtos com especificações detalhadas.\n" +"- Processamento de pedidos:** Trate os pedidos em massa de forma eficiente " +"com operações simplificadas para os comerciantes.\n" +"- Gerenciamento de estoque:** Acompanhe os níveis de estoque em tempo real, " +"garantindo o atendimento sem problemas.\n" +"- Transações seguras:** Transações seguras e criptografadas para proteger " +"informações comerciais confidenciais.\n" +"- Suporte a várias moedas:** Amplie seu alcance de mercado com transações em " +"várias moedas.\n" +"- Notificações em tempo real:** Mantenha-se atualizado com alertas " +"instantâneos sobre alterações de estoque e status de pedidos.\n" "\n" "## Autenticação\n" -"- A autenticação é feita por meio de seu token de comerciante. Inclua o token no cabeçalho `X-EVIBES-B2B-AUTH` de suas solicitações no formato `Bearer `.\n" +"- A autenticação é feita por meio de seu token de comerciante. Inclua o " +"token no cabeçalho `X-EVIBES-B2B-AUTH` de suas solicitações no formato " +"`Bearer `.\n" "\n" "## I18N\n" -"- Aplique um cabeçalho `Accept-Language` para usar um idioma não padrão. Uma lista de todos os idiomas está disponível em `/app/languages/`.\n" +"- Aplique um cabeçalho `Accept-Language` para usar um idioma não padrão. Uma " +"lista de todos os idiomas está disponível em `/app/languages/`.\n" "\n" "## Versão\n" "Versão atual da API: {EVIBES_VERSION}\n" @@ -162,51 +189,82 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bem-vindo à documentação da {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentação da API da plataforma.\n" +"Bem-vindo à documentação da {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} " +"Documentação da API da plataforma.\n" "\n" -"A API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API é o hub central para gerenciar listagens de produtos, monitorar pedidos e acessar análises da sua loja de eletrônicos. Ela fornece pontos de extremidade RESTful para gerenciar as operações de back-end de sua loja e inclui opções REST e GraphQL.\n" +"A API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API é o hub central para " +"gerenciar listagens de produtos, monitorar pedidos e acessar análises da sua " +"loja de eletrônicos. Ela fornece pontos de extremidade RESTful para " +"gerenciar as operações de back-end de sua loja e inclui opções REST e " +"GraphQL.\n" "\n" "## Principais recursos\n" -"- Catálogo de produtos:** Gerencie detalhes, preços e disponibilidade dos produtos.\n" -"- Gerenciamento de pedidos:** Acesse informações detalhadas sobre os pedidos e processe as solicitações dos clientes com eficiência.\n" -"- Funções e permissões do usuário:** Defina funções e permissões do usuário para gerenciamento interno.\n" -"- Integrações personalizadas:** Conecte seu sistema a plataformas externas por meio de APIs avançadas.\n" -"- Relatórios detalhados:** Gere relatórios abrangentes sobre pedidos, desempenho de vendas e dados de produtos.\n" -"- Dados em tempo real:** Receba atualizações em tempo real sobre estoque, preços e status de pedidos.\n" +"- Catálogo de produtos:** Gerencie detalhes, preços e disponibilidade dos " +"produtos.\n" +"- Gerenciamento de pedidos:** Acesse informações detalhadas sobre os pedidos " +"e processe as solicitações dos clientes com eficiência.\n" +"- Funções e permissões do usuário:** Defina funções e permissões do usuário " +"para gerenciamento interno.\n" +"- Integrações personalizadas:** Conecte seu sistema a plataformas externas " +"por meio de APIs avançadas.\n" +"- Relatórios detalhados:** Gere relatórios abrangentes sobre pedidos, " +"desempenho de vendas e dados de produtos.\n" +"- Dados em tempo real:** Receba atualizações em tempo real sobre estoque, " +"preços e status de pedidos.\n" "\n" "## Autenticação\n" -"- A autenticação é tratada por meio de tokens JWT. Inclua o token no cabeçalho `X-EVIBES-AUTH` de suas solicitações no formato `Bearer `.\n" -"- O tempo de vida do token de acesso é {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- A vida útil do token de atualização é de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} horas.\n" +"- A autenticação é tratada por meio de tokens JWT. Inclua o token no " +"cabeçalho `X-EVIBES-AUTH` de suas solicitações no formato `Bearer " +"`.\n" +"- O tempo de vida do token de acesso é {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- A vida útil do token de atualização é de {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} horas.\n" "- Os tokens de atualização são automaticamente invalidados após o uso.\n" "\n" "## I18N\n" -"- Aplique um cabeçalho `Accept-Language` para usar um idioma não padrão. Uma lista de todos os idiomas está disponível em `/app/languages/`.\n" +"- Aplique um cabeçalho `Accept-Language` para usar um idioma não padrão. Uma " +"lista de todos os idiomas está disponível em `/app/languages/`.\n" "\n" "## Versão\n" "Versão atual da API: {EVIBES_VERSION}\n" @@ -216,25 +274,24 @@ msgid "Home" msgstr "Início" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentação" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Vitrine" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Suporte" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Documentos do GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Documentos REST da plataforma" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "Documentos B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Suporte" + +#~ msgid "Documentation" +#~ msgstr "Documentação" diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.mo b/evibes/locale/ro_RO/LC_MESSAGES/django.mo index 2ab187b6..ae066bc5 100644 Binary files a/evibes/locale/ro_RO/LC_MESSAGES/django.mo and b/evibes/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.po b/evibes/locale/ro_RO/LC_MESSAGES/django.po index 27f020eb..d6328c55 100644 --- a/evibes/locale/ro_RO/LC_MESSAGES/django.po +++ b/evibes/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -118,45 +118,73 @@ msgstr "O entitate pentru stocarea datelor analitice" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bine ați venit la documentația {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentația API B2B.\n" +"Bine ați venit la documentația {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} " +"Documentația API B2B.\n" "\n" -"API-ul {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API este conceput pentru a oferi o integrare fără probleme pentru comercianții care vând o gamă largă de produse electronice. Prin intermediul acestui API, comercianții parteneri pot gestiona cu ușurință produsele, comenzile și inventarul, accesând în același timp nivelurile stocurilor în timp real.\n" +"API-ul {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API este conceput " +"pentru a oferi o integrare fără probleme pentru comercianții care vând o " +"gamă largă de produse electronice. Prin intermediul acestui API, " +"comercianții parteneri pot gestiona cu ușurință produsele, comenzile și " +"inventarul, accesând în același timp nivelurile stocurilor în timp real.\n" "\n" "## Caracteristici cheie\n" -"- **Product Management: ** Creați, actualizați și gestionați cu ușurință listele de produse cu specificații detaliate.\n" -"- **Procesarea comenzilor:** Gestionați eficient comenzile voluminoase cu operațiuni simplificate pentru comercianți.\n" -"- **Gestionarea stocurilor:** Urmăriți nivelul stocurilor în timp real, asigurând o execuție fără probleme.\n" -"- **Secure Transactions:** Tranzacții sigure și criptate pentru a proteja informațiile comerciale sensibile.\n" -"- **Suport în mai multe valute:** Extindeți aria de acoperire a pieței dvs. cu tranzacții în mai multe valute.\n" -"- **Notificări în timp real:** Rămâneți la curent cu alertele instantanee privind modificările stocurilor și starea comenzilor.\n" +"- **Product Management: ** Creați, actualizați și gestionați cu ușurință " +"listele de produse cu specificații detaliate.\n" +"- **Procesarea comenzilor:** Gestionați eficient comenzile voluminoase cu " +"operațiuni simplificate pentru comercianți.\n" +"- **Gestionarea stocurilor:** Urmăriți nivelul stocurilor în timp real, " +"asigurând o execuție fără probleme.\n" +"- **Secure Transactions:** Tranzacții sigure și criptate pentru a proteja " +"informațiile comerciale sensibile.\n" +"- **Suport în mai multe valute:** Extindeți aria de acoperire a pieței dvs. " +"cu tranzacții în mai multe valute.\n" +"- **Notificări în timp real:** Rămâneți la curent cu alertele instantanee " +"privind modificările stocurilor și starea comenzilor.\n" "\n" "## Autentificare\n" -"- Autentificarea se realizează prin intermediul token-ului dvs. de comerciant. Includeți tokenul în antetul `X-EVIBES-B2B-AUTH` al cererilor dvs. în formatul `Bearer `.\n" +"- Autentificarea se realizează prin intermediul token-ului dvs. de " +"comerciant. Includeți tokenul în antetul `X-EVIBES-B2B-AUTH` al cererilor " +"dvs. în formatul `Bearer `.\n" "\n" "## I18N\n" -"- Aplicați un antet `Accept-Language` pentru a utiliza o altă limbă decât cea implicită. O listă a tuturor limbilor este disponibilă la `/app/languages/`.\n" +"- Aplicați un antet `Accept-Language` pentru a utiliza o altă limbă decât " +"cea implicită. O listă a tuturor limbilor este disponibilă la `/app/" +"languages/`.\n" "\n" "## Versiune\n" "Versiunea curentă a API: {EVIBES_VERSION}\n" @@ -164,51 +192,83 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Bine ați venit la documentația {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Bine ați venit la documentația {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} " +"Platform API documentation.\n" "\n" -"API-ul {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API este hub-ul central pentru gestionarea listelor de produse, monitorizarea comenzilor și accesarea analizelor pentru magazinul dvs. de electronice. Acesta oferă puncte finale RESTful pentru gestionarea operațiunilor backend ale magazinului dvs. și include opțiuni REST și GraphQL.\n" +"API-ul {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API este hub-ul central " +"pentru gestionarea listelor de produse, monitorizarea comenzilor și " +"accesarea analizelor pentru magazinul dvs. de electronice. Acesta oferă " +"puncte finale RESTful pentru gestionarea operațiunilor backend ale " +"magazinului dvs. și include opțiuni REST și GraphQL.\n" "\n" "## Caracteristici cheie\n" -"- **Product Catalog:** Gestionați detaliile, prețurile și disponibilitatea produselor.\n" -"- **Order Management:** Accesați informații detaliate despre comenzi și procesați eficient cererile clienților.\n" -"- **Role și permisiuni ale utilizatorilor:** Setați rolurile și permisiunile utilizatorilor pentru gestionarea internă.\n" -"- **Integrații personalizate:** Conectați sistemul dvs. cu platforme externe prin API-uri puternice.\n" -"- **Raportare detaliată:** Generați rapoarte complete privind comenzile, performanța vânzărilor și datele despre produse.\n" -"- **Date în timp real:** Obțineți actualizări în timp real cu privire la inventar, prețuri și statusul comenzilor.\n" +"- **Product Catalog:** Gestionați detaliile, prețurile și disponibilitatea " +"produselor.\n" +"- **Order Management:** Accesați informații detaliate despre comenzi și " +"procesați eficient cererile clienților.\n" +"- **Role și permisiuni ale utilizatorilor:** Setați rolurile și permisiunile " +"utilizatorilor pentru gestionarea internă.\n" +"- **Integrații personalizate:** Conectați sistemul dvs. cu platforme externe " +"prin API-uri puternice.\n" +"- **Raportare detaliată:** Generați rapoarte complete privind comenzile, " +"performanța vânzărilor și datele despre produse.\n" +"- **Date în timp real:** Obțineți actualizări în timp real cu privire la " +"inventar, prețuri și statusul comenzilor.\n" "\n" "## Autentificare\n" -"- Autentificarea este gestionată prin jetoane JWT. Includeți tokenul în antetul `X-EVIBES-AUTH` al cererilor dvs. în formatul `Bearer `.\n" -"- Durata de viață a jetonului de acces este {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Durata de viață a jetonului de reîmprospătare este de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ore.\n" +"- Autentificarea este gestionată prin jetoane JWT. Includeți tokenul în " +"antetul `X-EVIBES-AUTH` al cererilor dvs. în formatul `Bearer " +"`.\n" +"- Durata de viață a jetonului de acces este {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Durata de viață a jetonului de reîmprospătare este de {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ore.\n" "- Jetoanele de reîmprospătare sunt invalidate automat după utilizare.\n" "\n" "## I18N\n" -"- Aplicați un antet `Accept-Language` pentru a utiliza o altă limbă decât cea implicită. O listă a tuturor limbilor este disponibilă la `/app/languages/`.\n" +"- Aplicați un antet `Accept-Language` pentru a utiliza o altă limbă decât " +"cea implicită. O listă a tuturor limbilor este disponibilă la `/app/" +"languages/`.\n" "\n" "## Versiune\n" "Versiunea curentă a API: {EVIBES_VERSION}\n" @@ -218,25 +278,24 @@ msgid "Home" msgstr "Acasă" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Documentație" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Vitrină" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Sprijin" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Docuri GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Platforma REST Docs" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "Docuri B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Sprijin" + +#~ msgid "Documentation" +#~ msgstr "Documentație" diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.mo b/evibes/locale/ru_RU/LC_MESSAGES/django.mo index 6d97bc36..fe82d00f 100644 Binary files a/evibes/locale/ru_RU/LC_MESSAGES/django.mo and b/evibes/locale/ru_RU/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.po b/evibes/locale/ru_RU/LC_MESSAGES/django.po index dbad4a33..3350eb49 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/evibes/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -117,45 +117,72 @@ msgstr "Сущность для хранения аналитических да #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Добро пожаловать в {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Документация по B2B API.\n" +"Добро пожаловать в {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Документация " +"по B2B API.\n" "\n" -"API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API разработан для обеспечения бесшовной интеграции для продавцов, продающих широкий спектр электроники. С помощью этого API продавцы-партнеры могут легко управлять товарами, заказами и инвентарем, получая доступ к уровню запасов в режиме реального времени.\n" +"API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API разработан для " +"обеспечения бесшовной интеграции для продавцов, продающих широкий спектр " +"электроники. С помощью этого API продавцы-партнеры могут легко управлять " +"товарами, заказами и инвентарем, получая доступ к уровню запасов в режиме " +"реального времени.\n" "\n" "## Ключевые особенности\n" -"- **Управление продуктами:** Удобное создание, обновление и управление списками продуктов с подробными характеристиками.\n" -"- **Обработка заказов:** Эффективная обработка оптовых заказов с оптимизированными операциями для продавцов.\n" -"- **Управление запасами:** Следите за уровнем запасов в режиме реального времени, обеспечивая бесперебойное выполнение заказов.\n" -"- **Безопасные транзакции:** Безопасные и зашифрованные транзакции для защиты конфиденциальной деловой информации.\n" -"- Мультивалютная поддержка:** Расширьте свой рынок с помощью мультивалютных транзакций.\n" -"- **Уведомления в режиме реального времени:** Получайте мгновенные уведомления об изменениях на складе и статусе заказа.\n" +"- **Управление продуктами:** Удобное создание, обновление и управление " +"списками продуктов с подробными характеристиками.\n" +"- **Обработка заказов:** Эффективная обработка оптовых заказов с " +"оптимизированными операциями для продавцов.\n" +"- **Управление запасами:** Следите за уровнем запасов в режиме реального " +"времени, обеспечивая бесперебойное выполнение заказов.\n" +"- **Безопасные транзакции:** Безопасные и зашифрованные транзакции для " +"защиты конфиденциальной деловой информации.\n" +"- Мультивалютная поддержка:** Расширьте свой рынок с помощью мультивалютных " +"транзакций.\n" +"- **Уведомления в режиме реального времени:** Получайте мгновенные " +"уведомления об изменениях на складе и статусе заказа.\n" "\n" "## Аутентификация\n" -"- Аутентификация осуществляется с помощью токена продавца. Включите токен в заголовок `X-EVIBES-B2B-AUTH` ваших запросов в формате `Bearer <ваш_токен>`.\n" +"- Аутентификация осуществляется с помощью токена продавца. Включите токен в " +"заголовок `X-EVIBES-B2B-AUTH` ваших запросов в формате `Bearer " +"<ваш_токен>`.\n" "\n" "## I18N\n" -"- Применяйте заголовок `Accept-Language` для использования языка не по умолчанию. Список всех языков доступен по адресу `/app/languages/`.\n" +"- Применяйте заголовок `Accept-Language` для использования языка не по " +"умолчанию. Список всех языков доступен по адресу `/app/languages/`.\n" "\n" "## Версия\n" "Текущая версия API: {EVIBES_VERSION}\n" @@ -163,51 +190,80 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" "\n" -"Добро пожаловать в API-документацию {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}.\n" +"Добро пожаловать в API-документацию {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")" +"[0]}.\n" "\n" -"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API является центральным узлом для управления списками товаров, мониторинга заказов и доступа к аналитике для вашего магазина электроники. Он предоставляет конечные точки REST для управления внутренними операциями вашего магазина и включает в себя как REST, так и GraphQL.\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API является центральным узлом " +"для управления списками товаров, мониторинга заказов и доступа к аналитике " +"для вашего магазина электроники. Он предоставляет конечные точки REST для " +"управления внутренними операциями вашего магазина и включает в себя как " +"REST, так и GraphQL.\n" "\n" "## Ключевые особенности.\n" "- **Каталог товаров:** Управление информацией о товарах, ценами и наличием.\n" -"- **Управление заказами:** Доступ к подробной информации о заказе и эффективная обработка запросов клиентов.\n" -"- **Роли и разрешения пользователей:** Настройка ролей и разрешений пользователей для внутреннего управления.\n" -"- **Заказные интеграции:** Соедините вашу систему с внешними платформами с помощью мощных API.\n" -"- **Подробная отчетность:** Создавайте подробные отчеты о заказах, показателях продаж и данных о товарах.\n" -"- **Данные в режиме реального времени:** Получайте оперативные обновления о состоянии запасов, ценах и заказах.\n" +"- **Управление заказами:** Доступ к подробной информации о заказе и " +"эффективная обработка запросов клиентов.\n" +"- **Роли и разрешения пользователей:** Настройка ролей и разрешений " +"пользователей для внутреннего управления.\n" +"- **Заказные интеграции:** Соедините вашу систему с внешними платформами с " +"помощью мощных API.\n" +"- **Подробная отчетность:** Создавайте подробные отчеты о заказах, " +"показателях продаж и данных о товарах.\n" +"- **Данные в режиме реального времени:** Получайте оперативные обновления о " +"состоянии запасов, ценах и заказах.\n" "\n" "## Аутентификация\n" -"- Аутентификация осуществляется с помощью JWT-токенов. Включите токен в заголовок `X-EVIBES-AUTH` ваших запросов в формате `Bearer <ваш_токен>`.\n" -"- Срок действия токена доступа составляет {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Время жизни маркера обновления составляет {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} часов.\n" +"- Аутентификация осуществляется с помощью JWT-токенов. Включите токен в " +"заголовок `X-EVIBES-AUTH` ваших запросов в формате `Bearer <ваш_токен>`.\n" +"- Срок действия токена доступа составляет {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} " +"{\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Время жизни маркера обновления составляет {SIMPLE_JWT." +"get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} часов.\n" "- Токены обновления автоматически аннулируются после использования.\n" "\n" "## I18N\n" -"- Применяйте заголовок `Accept-Language` для использования языка не по умолчанию. Список всех языков доступен по адресу `/app/languages/`.\n" +"- Применяйте заголовок `Accept-Language` для использования языка не по " +"умолчанию. Список всех языков доступен по адресу `/app/languages/`.\n" "\n" "## Версия\n" "Текущая версия API: {EVIBES_VERSION}\n" @@ -217,25 +273,24 @@ msgid "Home" msgstr "Главная" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "Документация" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "Витрина" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "Поддержка" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "Документация по GraphQL" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "Документация по REST" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "Документация по B2B REST" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "Поддержка" + +#~ msgid "Documentation" +#~ msgstr "Документация" diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.mo b/evibes/locale/zh_Hans/LC_MESSAGES/django.mo index 34974e71..568429ac 100644 Binary files a/evibes/locale/zh_Hans/LC_MESSAGES/django.mo and b/evibes/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.po b/evibes/locale/zh_Hans/LC_MESSAGES/django.po index 2d2b681a..7664ebc1 100644 --- a/evibes/locale/zh_Hans/LC_MESSAGES/django.po +++ b/evibes/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:46+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -116,23 +116,36 @@ msgstr "存储分析数据的实体" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " +"provide seamless integration for merchants selling a wide range of " +"electronics. Through this API, partnered merchants can manage products, " +"orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product " +"listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined " +"operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, " +"ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect " +"sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency " +"transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock " +"changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"- Authentication is handled via your merchant token. Include the token in " +"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " +"`.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -140,7 +153,9 @@ msgstr "" "\n" "欢迎访问 {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}B2B API 文档。\n" "\n" -"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}B2B API 旨在为销售各种电子产品的商家提供无缝集成。通过该 API,合作商家可以轻松管理产品、订单和库存,同时访问实时库存水平。\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}B2B API 旨在为销售各种电子产品的商" +"家提供无缝集成。通过该 API,合作商家可以轻松管理产品、订单和库存,同时访问实" +"时库存水平。\n" "\n" "## 关键功能\n" "- 产品管理:** 轻松创建、更新和管理具有详细规格的产品列表。\n" @@ -151,10 +166,12 @@ msgstr "" "- 实时通知:** 库存变化和订单状态的即时提醒,让您随时了解最新情况。\n" "\n" "## 身份验证\n" -"- 通过商家令牌进行身份验证。在请求的 `X-EVIBES-B2B-AUTH` 头中包含令牌,格式为 `Bearer `。\n" +"- 通过商家令牌进行身份验证。在请求的 `X-EVIBES-B2B-AUTH` 头中包含令牌,格式" +"为 `Bearer `。\n" "\n" "## I18N\n" -"- 应用 `Accept-Language` 头信息以使用非默认语言。所有语言的列表请访问 `/app/languages/`。\n" +"- 应用 `Accept-Language` 头信息以使用非默认语言。所有语言的列表请访问 `/app/" +"languages/`。\n" "\n" "## 版本\n" "当前的 API 版本:{EVIBES_VERSION}\n" @@ -162,26 +179,40 @@ msgstr "" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " +"documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " +"managing product listings, monitoring orders, and accessing analytics for " +"your electronics store. It provides RESTful endpoints for managing your " +"store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" -"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"- **Order Management:** Access detailed order information and process " +"customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal " +"management.\n" +"- **Custom Integrations:** Connect your system with external platforms " +"through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " +"performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order " +"statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-" +"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " +"\"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of " +"all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" @@ -189,7 +220,9 @@ msgstr "" "\n" "欢迎访问 {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}平台 API 文档。\n" "\n" -"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}API 是管理产品列表、监控订单和访问电子商店分析的中心枢纽。它提供 RESTful 端点,用于管理商店的后台操作,并包含 REST 和 GraphQL 选项。\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}API 是管理产品列表、监控订单和访问" +"电子商店分析的中心枢纽。它提供 RESTful 端点,用于管理商店的后台操作,并包含 " +"REST 和 GraphQL 选项。\n" "\n" "## 关键功能\n" "- 产品目录:** 管理产品详细信息、定价和可用性。\n" @@ -200,13 +233,18 @@ msgstr "" "- 实时数据:** 实时更新库存、定价和订单状态。\n" "\n" "## 身份验证\n" -"- 通过 JWT 标记进行身份验证。在请求的 `X-EVIBES-AUTH` 标头中包含令牌,格式为 `Bearer `。\n" -"- 访问令牌的有效期为 {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600}{\"minutes\" if not DEBUG else \"hours\"}。\n" -"- 刷新令牌的有效期为 {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} 小时。\n" +"- 通过 JWT 标记进行身份验证。在请求的 `X-EVIBES-AUTH` 标头中包含令牌,格式为 " +"`Bearer `。\n" +"- 访问令牌的有效期为 {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 60 if not DEBUG else 3600}{\"minutes\" if not DEBUG else " +"\"hours\"}。\n" +"- 刷新令牌的有效期为 {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." +"total_seconds() // 3600} 小时。\n" "- 刷新令牌在使用后自动失效。\n" "\n" "## I18N\n" -"- 应用 `Accept-Language` 标头来使用非默认语言。所有语言的列表位于 `/app/languages/`。\n" +"- 应用 `Accept-Language` 标头来使用非默认语言。所有语言的列表位于 `/app/" +"languages/`。\n" "\n" "## 版本\n" "当前的 API 版本:{EVIBES_VERSION}\n" @@ -216,25 +254,24 @@ msgid "Home" msgstr "首页" #: evibes/settings/jazzmin.py:21 -msgid "Documentation" -msgstr "文件" - -#: evibes/settings/jazzmin.py:22 msgid "Storefront" msgstr "店面" -#: evibes/settings/jazzmin.py:23 -msgid "Support" -msgstr "支持" - -#: evibes/settings/jazzmin.py:26 +#: evibes/settings/jazzmin.py:24 msgid "GraphQL Docs" msgstr "GraphQL 文档" -#: evibes/settings/jazzmin.py:31 +#: evibes/settings/jazzmin.py:29 msgid "Platform REST Docs" msgstr "平台 REST 文档" -#: evibes/settings/jazzmin.py:36 +#: evibes/settings/jazzmin.py:34 msgid "B2B REST Docs" msgstr "B2B REST 文档" + +#: evibes/settings/jazzmin.py:38 +msgid "Support" +msgstr "支持" + +#~ msgid "Documentation" +#~ msgstr "文件" diff --git a/payments/locale/ar_AR/LC_MESSAGES/django.po b/payments/locale/ar_AR/LC_MESSAGES/django.po index 7fb2ab64..127c03d2 100644 --- a/payments/locale/ar_AR/LC_MESSAGES/django.po +++ b/payments/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "المعاملات" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "المعاملات" @@ -41,15 +41,15 @@ msgstr "الإيداع في الرصيد" msgid "deposit some money to balance" msgstr "إيداع بعض الأموال لتحقيق التوازن" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "طلب المعالجة بعد الدفع" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "تفاصيل المعالجة" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "يجب أن يتناسب مبلغ المعاملة مع {config.PAYMENT_GATEWAY_MINIMUM}-{config." "PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "الرصيد" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "الموازين" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "إيداع الرصيد" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "الشعار" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "مرحباً %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "لقد نجحنا في إيداع رصيد حسابك في %(amount)s. رصيدك الحالي\n" " رصيدك الحالي هو %(balance)s__." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "إذا كان لديك أي أسئلة، فلا تتردد في الاتصال بدعمنا على\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "مع أطيب تحياتي،
فريق%(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "جميع الحقوق محفوظة" @@ -116,7 +116,7 @@ msgstr "مطلوب مزود للحصول على الأسعار من" msgid "couldn't find provider {provider}" msgstr "تعذّر العثور على الموفر {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | إيداع الرصيد" diff --git a/payments/locale/cs_CZ/LC_MESSAGES/django.po b/payments/locale/cs_CZ/LC_MESSAGES/django.po index 4591b484..c09e9710 100644 --- a/payments/locale/cs_CZ/LC_MESSAGES/django.po +++ b/payments/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transakce" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transakce" @@ -41,15 +41,15 @@ msgstr "Vklad do zůstatku" msgid "deposit some money to balance" msgstr "Vložte nějaké peníze na účet" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Objednávka ke zpracování po zaplacení" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Podrobnosti o zpracování" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Částka transakce se musí vejít do rozmezí {config.PAYMENT_GATEWAY_MINIMUM}-" "{config.PAYMENT_GATEWAY_MAXIMUM}." -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Bilance" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Váhy" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Zůstatková záloha" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Ahoj %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Na váš účet jsme úspěšně připsali %(amount)s. Váš aktuální\n" " je %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "Pokud máte jakékoli dotazy, neváhejte kontaktovat naši podporu na adrese\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "S pozdravem,
tým %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Všechna práva vyhrazena" @@ -116,7 +116,7 @@ msgstr "Je třeba mít poskytovatele, od kterého lze získat sazby" msgid "couldn't find provider {provider}" msgstr "Nepodařilo se najít poskytovatele {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Zůstatek vkladu" diff --git a/payments/locale/da_DK/LC_MESSAGES/django.po b/payments/locale/da_DK/LC_MESSAGES/django.po index dee00280..c6f216e8 100644 --- a/payments/locale/da_DK/LC_MESSAGES/django.po +++ b/payments/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transaktion" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transaktioner" @@ -41,15 +41,15 @@ msgstr "Indbetaling til saldo" msgid "deposit some money to balance" msgstr "Sæt nogle penge ind på saldoen" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Ordre til behandling efter betaling" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Behandling af detaljer" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Transaktionsbeløbet skal passe ind i {config.PAYMENT_GATEWAY_MINIMUM}-" "{config.PAYMENT_GATEWAY_MAXIMUM}." -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Balance" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Vægte" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Saldoindbetaling" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Hej %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Vi har krediteret din konto med %(amount)s. Din nuværende\n" " saldo er %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "Hvis du har spørgsmål, er du velkommen til at kontakte vores support på\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Med venlig hilsen,
teamet %(project_name)s." -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Alle rettigheder forbeholdes" @@ -116,7 +116,7 @@ msgstr "Der er brug for en udbyder at få priser fra" msgid "couldn't find provider {provider}" msgstr "Kunne ikke finde udbyder {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Saldoindbetaling" diff --git a/payments/locale/de_DE/LC_MESSAGES/django.po b/payments/locale/de_DE/LC_MESSAGES/django.po index c045e97f..fba23cf1 100644 --- a/payments/locale/de_DE/LC_MESSAGES/django.po +++ b/payments/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transaktion" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transaktionen" @@ -41,15 +41,15 @@ msgstr "Einzahlung auf den Saldo" msgid "deposit some money to balance" msgstr "Einzahlung von Geld zum Ausgleich" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Auftrag zur Bearbeitung nach Bezahlung" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Details zur Verarbeitung" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Der Transaktionsbetrag muss zwischen {config.PAYMENT_GATEWAY_MINIMUM}-" "{config.PAYMENT_GATEWAY_MAXIMUM} liegen" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Waage" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Waagen" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Balance Deposit" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Hallo %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Wir haben Ihrem Konto erfolgreich %(amount)s gutgeschrieben. Ihr aktuelles\n" " Saldo beträgt %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "Wenn Sie Fragen haben, wenden Sie sich bitte an unseren Support unter\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Mit freundlichen Grüßen,
das %(project_name)s-Team" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Alle Rechte vorbehalten" @@ -116,7 +116,7 @@ msgstr "Sie benötigen einen Anbieter, bei dem Sie die Preise erfragen können." msgid "couldn't find provider {provider}" msgstr "Anbieter {provider} konnte nicht gefunden werden" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Saldo Einzahlung" diff --git a/payments/locale/en_GB/LC_MESSAGES/django.po b/payments/locale/en_GB/LC_MESSAGES/django.po index 231a1572..7272863f 100644 --- a/payments/locale/en_GB/LC_MESSAGES/django.po +++ b/payments/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transaction" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transactions" @@ -45,15 +45,15 @@ msgstr "Deposit to balance" msgid "deposit some money to balance" msgstr "Deposit some money to balance" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Order to process after paid" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Processing details" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -62,29 +62,29 @@ msgstr "" "Transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." "PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Balance" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Balances" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Balance Deposit" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -93,7 +93,7 @@ msgstr "" "We have successfully credited your account with %(amount)s. Your current\n" " balance is %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -102,12 +102,12 @@ msgstr "" "If you have any questions, feel free to contact our support at\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Best regards,
the %(project_name)s team" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "All rights reserved" @@ -120,7 +120,7 @@ msgstr "A provider to get rates from is required" msgid "couldn't find provider {provider}" msgstr "Couldn't find provider {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Balance Deposit" diff --git a/payments/locale/en_US/LC_MESSAGES/django.po b/payments/locale/en_US/LC_MESSAGES/django.po index 2aa96ff4..876d4fd4 100644 --- a/payments/locale/en_US/LC_MESSAGES/django.po +++ b/payments/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transaction" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transactions" @@ -41,15 +41,15 @@ msgstr "Deposit to balance" msgid "deposit some money to balance" msgstr "Deposit some money to balance" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Order to process after paid" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Processing details" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." "PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Balance" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Scales" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Balance Deposit" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "We have successfully credited your account with %(amount)s. Your current\n" " balance is %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "If you have any questions, feel free to contact our support at\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Best regards,
the %(project_name)s team" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "All rights reserved" @@ -116,7 +116,7 @@ msgstr "A provider to get rates from is required" msgid "couldn't find provider {provider}" msgstr "Couldn't find provider {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Balance Deposit" diff --git a/payments/locale/es_ES/LC_MESSAGES/django.po b/payments/locale/es_ES/LC_MESSAGES/django.po index 59161299..3c9a7935 100644 --- a/payments/locale/es_ES/LC_MESSAGES/django.po +++ b/payments/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transacción" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transacciones" @@ -41,15 +41,15 @@ msgstr "Depósito a cuenta" msgid "deposit some money to balance" msgstr "Depositar dinero para equilibrar" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Orden a tramitar una vez pagada" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Detalles del proceso" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "El importe de la transacción debe ajustarse a {config." "PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Saldo" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Escalas" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Depósito de saldo" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logotipo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Hola %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Hemos ingresado correctamente %(amount)s en su cuenta. Su saldo\n" " actual es de %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -99,12 +99,12 @@ msgstr "" "servicio de asistencia en\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Saludos cordiales,
el equipo %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Todos los derechos reservados" @@ -117,7 +117,7 @@ msgstr "Se necesita un proveedor del que obtener tarifas" msgid "couldn't find provider {provider}" msgstr "No se ha podido encontrar el proveedor {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Depósito de saldo" diff --git a/payments/locale/fr_FR/LC_MESSAGES/django.po b/payments/locale/fr_FR/LC_MESSAGES/django.po index 51d53a90..3da6cc31 100644 --- a/payments/locale/fr_FR/LC_MESSAGES/django.po +++ b/payments/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transaction" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transactions" @@ -41,15 +41,15 @@ msgstr "Dépôt au solde" msgid "deposit some money to balance" msgstr "Déposer de l'argent sur le compte" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Commande à traiter après paiement" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Détails du traitement" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Le montant de la transaction doit être compris entre {config." "PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Balance" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Balances" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Balance Deposit" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Bonjour %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Nous avons crédité votre compte de %(amount)s. Votre solde\n" " est de %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -99,12 +99,12 @@ msgstr "" "d'assistance à l'adresse suivante\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Meilleures salutations,
l'équipe %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Tous droits réservés" @@ -117,7 +117,7 @@ msgstr "Il est nécessaire de disposer d'un fournisseur pour obtenir des tarifs" msgid "couldn't find provider {provider}" msgstr "Impossible de trouver le fournisseur {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Dépôt de solde" diff --git a/payments/locale/hi_IN/LC_MESSAGES/django.po b/payments/locale/hi_IN/LC_MESSAGES/django.po index 1e125048..4fa0dfc6 100644 --- a/payments/locale/hi_IN/LC_MESSAGES/django.po +++ b/payments/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,11 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "" @@ -44,63 +44,63 @@ msgstr "" msgid "deposit some money to balance" msgstr "" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." "PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "" -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" " balance is %(balance)s." msgstr "" -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "" @@ -113,7 +113,7 @@ msgstr "" msgid "couldn't find provider {provider}" msgstr "" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "" diff --git a/payments/locale/it_IT/LC_MESSAGES/django.po b/payments/locale/it_IT/LC_MESSAGES/django.po index 32161916..3b0271c2 100644 --- a/payments/locale/it_IT/LC_MESSAGES/django.po +++ b/payments/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transazione" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transazioni" @@ -41,15 +41,15 @@ msgstr "Deposito a saldo" msgid "deposit some money to balance" msgstr "Depositare del denaro per bilanciare" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Ordine da elaborare dopo il pagamento" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Dettagli di elaborazione" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "L'importo della transazione deve rientrare in {config." "PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Equilibrio" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Bilance" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Saldo Deposito" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Hello %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Abbiamo accreditato il vostro conto con %(amount)s. Il suo saldo attuale\n" " saldo è %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -99,12 +99,12 @@ msgstr "" "all'indirizzo\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Cordiali saluti,
il team %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Tutti i diritti riservati" @@ -117,7 +117,7 @@ msgstr "È necessario un fornitore da cui ottenere le tariffe" msgid "couldn't find provider {provider}" msgstr "Impossibile trovare il fornitore {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Deposito a saldo" diff --git a/payments/locale/ja_JP/LC_MESSAGES/django.po b/payments/locale/ja_JP/LC_MESSAGES/django.po index fbaaeb0f..7377115a 100644 --- a/payments/locale/ja_JP/LC_MESSAGES/django.po +++ b/payments/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "トランザクション" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "トランザクション" @@ -41,15 +41,15 @@ msgstr "預金残高" msgid "deposit some money to balance" msgstr "預金残高を増やす" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "支払い後の処理順序" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "加工内容" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "取引金額は{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}に" "収まる必要があります。" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "バランス" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "体重計" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "預金残高" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "ロゴ" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "こんにちは%(user_first_name)s、" -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "お客様の口座に%(amount)sが入金されました。あなたの現在の\n" " 現在の残高は%(balance)sです。" -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "ご不明な点がございましたら、お気軽に下記までお問い合わせください。\n" " %(contact_email)s。" -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "よろしくお願いします、
%(project_name)sチーム" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "無断複写・転載を禁じます。" @@ -116,7 +116,7 @@ msgstr "レートを取得するプロバイダーが必要" msgid "couldn't find provider {provider}" msgstr "{provider}プロバイダーが見つかりません。" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME}| 預金残高" diff --git a/payments/locale/kk_KZ/LC_MESSAGES/django.po b/payments/locale/kk_KZ/LC_MESSAGES/django.po index 1e125048..4fa0dfc6 100644 --- a/payments/locale/kk_KZ/LC_MESSAGES/django.po +++ b/payments/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,11 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "" @@ -44,63 +44,63 @@ msgstr "" msgid "deposit some money to balance" msgstr "" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." "PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "" -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" " balance is %(balance)s." msgstr "" -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "" @@ -113,7 +113,7 @@ msgstr "" msgid "couldn't find provider {provider}" msgstr "" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "" diff --git a/payments/locale/nl_NL/LC_MESSAGES/django.po b/payments/locale/nl_NL/LC_MESSAGES/django.po index 670bfa0d..9460971f 100644 --- a/payments/locale/nl_NL/LC_MESSAGES/django.po +++ b/payments/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transactie" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transacties" @@ -41,15 +41,15 @@ msgstr "Storting op saldo" msgid "deposit some money to balance" msgstr "Stort wat geld om te balanceren" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Order te verwerken na betaling" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Verwerkingsdetails" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Het transactiebedrag moet passen binnen {config.PAYMENT_GATEWAY_MINIMUM}-" "{config.PAYMENT_GATEWAY_MAXIMUM}." -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Saldo" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Weegschaal" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Saldo Storting" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Hallo %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "We hebben uw rekening succesvol gecrediteerd met %(amount)s. Uw huidige\n" " saldo is %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "Als u vragen hebt, kunt u contact opnemen met onze klantenservice op\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Vriendelijke groeten,
het %(project_name)s team" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Alle rechten voorbehouden" @@ -116,7 +116,7 @@ msgstr "Een provider om tarieven van te krijgen is vereist" msgid "couldn't find provider {provider}" msgstr "Kon provider {provider} niet vinden" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Saldo storting" diff --git a/payments/locale/pl_PL/LC_MESSAGES/django.po b/payments/locale/pl_PL/LC_MESSAGES/django.po index bb3f1061..42a6ec74 100644 --- a/payments/locale/pl_PL/LC_MESSAGES/django.po +++ b/payments/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transakcja" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transakcje" @@ -41,15 +41,15 @@ msgstr "Wpłata na saldo" msgid "deposit some money to balance" msgstr "Wpłać trochę pieniędzy na saldo" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Zamówienie do przetworzenia po opłaceniu" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Szczegóły przetwarzania" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Kwota transakcji musi mieścić się w przedziale {config." "PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Równowaga" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Wagi" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Saldo depozytu" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Witaj %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Twoje konto zostało pomyślnie zasilone kwotą %(amount)s. Aktualne\n" " wynosi %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -99,12 +99,12 @@ msgstr "" "technicznej pod adresem\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Najlepsze pozdrowienia,
zespół %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Wszelkie prawa zastrzeżone" @@ -117,7 +117,7 @@ msgstr "Wymagany jest dostawca, od którego można uzyskać stawki" msgid "couldn't find provider {provider}" msgstr "Nie można znaleźć dostawcy {provider}." -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Wpłata salda" diff --git a/payments/locale/pt_BR/LC_MESSAGES/django.po b/payments/locale/pt_BR/LC_MESSAGES/django.po index 48074d9a..ae88e68b 100644 --- a/payments/locale/pt_BR/LC_MESSAGES/django.po +++ b/payments/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Transação" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Transações" @@ -41,15 +41,15 @@ msgstr "Depósito no saldo" msgid "deposit some money to balance" msgstr "Depositar algum dinheiro no saldo" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Ordem a ser processada após o pagamento" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Detalhes do processamento" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "O valor da transação deve se enquadrar em {config.PAYMENT_GATEWAY_MINIMUM}-" "{config.PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Equilíbrio" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Balanças" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Depósito de saldo" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logotipo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Olá %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Creditamos sua conta com %(amount)s com sucesso. Seu saldo atual\n" " saldo atual é %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "Se tiver alguma dúvida, entre em contato com o nosso suporte em\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Atenciosamente,
a equipe %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Todos os direitos reservados" @@ -116,7 +116,7 @@ msgstr "É necessário um provedor para obter as tarifas" msgid "couldn't find provider {provider}" msgstr "Não foi possível encontrar o provedor {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Depósito de saldo" diff --git a/payments/locale/ro_RO/LC_MESSAGES/django.po b/payments/locale/ro_RO/LC_MESSAGES/django.po index 417b7ff9..e18e72d6 100644 --- a/payments/locale/ro_RO/LC_MESSAGES/django.po +++ b/payments/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Tranzacție" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Tranzacții" @@ -41,15 +41,15 @@ msgstr "Depozit la sold" msgid "deposit some money to balance" msgstr "Depuneți niște bani la sold" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Ordin de procesare după plată" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Detalii de prelucrare" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Valoarea tranzacției trebuie să se încadreze în {config." "PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Echilibru" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Balanță" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Sold Depozit" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Logo" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Bună ziua %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Am creditat cu succes contul dvs. cu %(amount)s. Soldul dvs. actual\n" " actual este %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "Dacă aveți întrebări, nu ezitați să contactați asistența noastră la\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Cele mai bune salutări,
echipa %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Toate drepturile rezervate" @@ -116,7 +116,7 @@ msgstr "Este necesar un furnizor de la care să se obțină tarife" msgid "couldn't find provider {provider}" msgstr "Nu am putut găsi furnizorul {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Depozit sold" diff --git a/payments/locale/ru_RU/LC_MESSAGES/django.po b/payments/locale/ru_RU/LC_MESSAGES/django.po index 5a00a637..469969ea 100644 --- a/payments/locale/ru_RU/LC_MESSAGES/django.po +++ b/payments/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "Транзакция" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "Транзакции" @@ -41,15 +41,15 @@ msgstr "Депозит на баланс" msgid "deposit some money to balance" msgstr "Внесите немного денег на баланс" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "Заказ на обработку после оплаты" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "Детали обработки" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "Сумма транзакции должна вписываться в {config.PAYMENT_GATEWAY_MINIMUM}-" "{config.PAYMENT_GATEWAY_MAXIMUM}" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "Баланс" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "Балансы" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "Балансовый депозит" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "Логотип" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "Привет %(user_first_name)s," -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "Мы успешно зачислили на ваш счет %(amount)s. Ваш текущий\n" " баланс составляет %(balance)s." -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "Если у вас возникнут вопросы, обращайтесь в нашу службу поддержки по адресу\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "С наилучшими пожеланиями,
команда %(project_name)s" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "Все права защищены" @@ -116,7 +116,7 @@ msgstr "Требуется поставщик, у которого можно п msgid "couldn't find provider {provider}" msgstr "Не удалось найти провайдера {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Депозит баланса" diff --git a/payments/locale/zh_Hans/LC_MESSAGES/django.po b/payments/locale/zh_Hans/LC_MESSAGES/django.po index 73e94f8c..18247ba3 100644 --- a/payments/locale/zh_Hans/LC_MESSAGES/django.po +++ b/payments/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: payments/admin.py:15 payments/models.py:43 +#: payments/admin.py:15 payments/models.py:41 msgid "transaction" msgstr "交易" -#: payments/admin.py:16 payments/models.py:44 +#: payments/admin.py:16 payments/models.py:42 msgid "transactions" msgstr "交易" @@ -41,15 +41,15 @@ msgstr "余额存款" msgid "deposit some money to balance" msgstr "为余额存入一些钱" -#: payments/models.py:21 +#: payments/models.py:19 msgid "order to process after paid" msgstr "付款后处理订单" -#: payments/models.py:24 +#: payments/models.py:22 msgid "processing details" msgstr "处理细节" -#: payments/models.py:39 +#: payments/models.py:37 #, python-brace-format msgid "" "transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." @@ -58,29 +58,29 @@ msgstr "" "交易金额必须符合 {config.PAYMENT_GATEWAY_MINIMUM}-{config." "PAYMENT_GATEWAY_MAXIMUM} 的规定。" -#: payments/models.py:61 +#: payments/models.py:59 msgid "balance" msgstr "平衡" -#: payments/models.py:62 +#: payments/models.py:60 msgid "balances" msgstr "天平" -#: payments/templates/balance_deposit_email.html:7 -#: payments/templates/balance_deposit_email.html:100 +#: payments/templates/balance_deposit_email.html:6 +#: payments/templates/balance_deposit_email.html:93 msgid "balance deposit" msgstr "余额存款" -#: payments/templates/balance_deposit_email.html:95 +#: payments/templates/balance_deposit_email.html:88 msgid "logo" msgstr "标志" -#: payments/templates/balance_deposit_email.html:101 +#: payments/templates/balance_deposit_email.html:94 #, python-format msgid "hello %(user_first_name)s," msgstr "你好%(user_first_name)s_、" -#: payments/templates/balance_deposit_email.html:102 +#: payments/templates/balance_deposit_email.html:95 #, python-format msgid "" "we have successfully credited your account with %(amount)s. your current\n" @@ -89,7 +89,7 @@ msgstr "" "我们已成功地将 %(amount)s_记入您的账户。您目前的\n" " 余额为%(balance)s_。" -#: payments/templates/balance_deposit_email.html:105 +#: payments/templates/balance_deposit_email.html:98 #, python-format msgid "" "if you have any questions, feel free to contact our support at\n" @@ -98,12 +98,12 @@ msgstr "" "如果您有任何问题,请随时通过以下方式联系我们的支持人员\n" " %(contact_email)s." -#: payments/templates/balance_deposit_email.html:107 +#: payments/templates/balance_deposit_email.html:100 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "致以最诚挚的问候,
%(project_name)s_团队" -#: payments/templates/balance_deposit_email.html:113 +#: payments/templates/balance_deposit_email.html:106 msgid "all rights reserved" msgstr "保留所有权利" @@ -116,7 +116,7 @@ msgstr "需要提供商提供费率" msgid "couldn't find provider {provider}" msgstr "找不到提供方 {provider}" -#: payments/utils/emailing.py:28 +#: payments/utils/emailing.py:31 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME}| 余额存款" diff --git a/scripts/Windows/compile-messages.ps1 b/scripts/Windows/compile-messages.ps1 index e69de29b..c80b9c9a 100644 --- a/scripts/Windows/compile-messages.ps1 +++ b/scripts/Windows/compile-messages.ps1 @@ -0,0 +1,27 @@ +Set-StrictMode -Version Latest +$ErrorActionPreference = 'Stop' + +.\scripts\Windows\starter.ps1 +if ($LASTEXITCODE -ne 0) { + exit $LASTEXITCODE +} + +if (-not (Test-Path '.env')) +{ + Write-Warning ".env file not found. Exiting without running Docker steps." + exit 0 +} + +Write-Host "Checking placeholders in PO files..." -ForegroundColor Magenta +docker compose exec app poetry run python manage.py check_translated -l en-GB -l ar-AR -l cs-CZ -l da-DK -l de-DE -l en-US -l es-ES -l fr-FR -l hi-IN -l it-IT -l ja-JP -l kk-KZ -l nl-NL -l pl-PL -l pt-BR -l ro-RO -l ru-RU -l zh-hans -a core -a geo -a payments -a vibes_auth -a blog -a root +if ($LASTEXITCODE -ne 0) { + exit $LASTEXITCODE +} +Write-Host "PO files have no placeholder issues!" -ForegroundColor Green + +Write-Host "Compiling PO files into MO files..." -ForegroundColor Magenta +docker compose exec app poetry run python manage.py compilemessages -l en_GB -l ar_AR -l cs_CZ -l da_DK -l de_DE -l en_US -l es_ES -l fr_FR -l hi_IN -l it_IT -l ja_JP -l kk_KZ -l nl_NL -l pl_PL -l pt_BR -l ro_RO -l ru_RU -l zh_Hans +if ($LASTEXITCODE -ne 0) { + exit $LASTEXITCODE +} +Write-Host "Compiled successfully!" -ForegroundColor Green diff --git a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.mo index ce885860..743f0a9f 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 2036a39b..ce03f772 100644 --- a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ msgstr "التحقق من الرمز المميز" msgid "Verify a token (refresh or access)." msgstr "التحقق من الرمز المميز (التحديث أو الوصول)." -#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "الرمز المميز صالح" @@ -93,8 +93,8 @@ msgstr "حذف مستخدم" #: vibes_auth/docs/drf/viewsets.py:33 msgid "reset a user's password by sending a reset password email" msgstr "" -"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة " -"المرور" +"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة" +" المرور" #: vibes_auth/docs/drf/viewsets.py:38 msgid "handle avatar upload for a user" @@ -105,7 +105,7 @@ msgid "confirm a user's password reset" msgstr "تأكيد إعادة تعيين كلمة مرور المستخدم" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "كلمات المرور غير متطابقة" @@ -148,8 +148,8 @@ msgstr "رقم هاتف مشوّه: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "تنسيق السمة غير صالح: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "رابط التفعيل غير صالح!" @@ -161,18 +161,18 @@ msgstr "تم تفعيل الحساب بالفعل..." msgid "something went wrong: {e!s}" msgstr "حدث خطأ ما: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "الرمز غير صالح!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "المنتجات التي شاهدها هذا المستخدم مؤخرًا (بحد أقصى 48)، بترتيب زمني عكسي." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "المجموعات" @@ -180,7 +180,7 @@ msgstr "المجموعات" msgid "wishlist" msgstr "قائمة الرغبات" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "الصورة الرمزية" @@ -193,111 +193,116 @@ msgstr "يمكن استخدام السمات لتخزين البيانات ال msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "اللغة هي واحدة من {LANGUAGES} مع {LANGUAGE_CODE} الافتراضي" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "البريد الإلكتروني" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "عنوان البريد الإلكتروني للمستخدم" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "رقم الهاتف" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "رقم هاتف المستخدم" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "الاسم الأول" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "اسم العائلة" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "صورة ملف تعريف المستخدم" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "تم التحقق" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "حالة التحقق من المستخدم" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "نشط" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "قم بإلغاء تحديد هذا بدلاً من حذف الحسابات" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "مشترك" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "حالة اشتراك المستخدم في النشرة الإخبارية" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "رمز التفعيل" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "السمات" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "المستخدم" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "المستخدمون" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "المجموعة" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "الرمز المميز" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "الرموز المميزة المعلقة" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "الرمز المميز المدرج في القائمة السوداء" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "الرموز المميزة المدرجة في القائمة السوداء" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "لم يتم العثور على حساب نشط" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "يجب تعيين سمة token_class على الفئة!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "تم إدراج الرمز المميز في القائمة السوداء" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "رمز غير صالح" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "لا توجد مطالبة معرف المستخدم في الرمز المميز" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "المستخدم غير موجود" @@ -322,8 +327,7 @@ msgstr "مرحباً %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "لقد تلقينا طلباً لإعادة تعيين كلمة المرور الخاصة بك. يرجى إعادة تعيين كلمة " @@ -409,17 +413,14 @@ msgstr "" "تنسيق رقم الهاتف غير صالح. يجب إدخال الرقم بالصيغة: \"+999999999\". يُسمح " "بإدخال 15 رقماً كحد أقصى." -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "الرمز المميز غير صالح" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "تمت إعادة تعيين كلمة المرور بنجاح!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "لقد قمت بتفعيل الحساب بالفعل..." - -#~ msgid "eVibes Auth" -#~ msgstr "مصادقة eVibes Auth" diff --git a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.mo index 85955205..5ac4a8f5 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 3b6c2375..69adba46 100644 --- a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Token je platný" @@ -103,7 +103,7 @@ msgid "confirm a user's password reset" msgstr "Potvrzení obnovení hesla uživatele" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Hesla se neshodují" @@ -146,8 +146,8 @@ msgstr "Chybně zadané telefonní číslo: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Nesprávný formát atributu: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Aktivační odkaz je neplatný!" @@ -159,19 +159,19 @@ msgstr "Účet byl již aktivován..." msgid "something went wrong: {e!s}" msgstr "Něco se pokazilo: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token je neplatný!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produkty, které si tento uživatel prohlížel naposledy (max. 48), seřazené v " "opačném pořadí." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Skupiny" @@ -179,7 +179,7 @@ msgstr "Skupiny" msgid "wishlist" msgstr "Seznam přání" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -192,111 +192,116 @@ msgstr "Atributy lze použít k uložení vlastních dat." msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Jazyk je jeden z {LANGUAGES} s výchozím {LANGUAGE_CODE}." -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "E-mailová adresa uživatele" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Telefonní číslo" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Telefonní číslo uživatele" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Křestní jméno" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Příjmení" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Obrázek profilu uživatele" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Je ověřeno" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Stav ověření uživatele" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Je aktivní" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Zrušení výběru této možnosti místo odstranění účtů" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Je přihlášena k odběru" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Stav odběru newsletteru uživatele" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Aktivační token" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Atributy" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Uživatel" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Uživatelé" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Skupina" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Vynikající žeton" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Nevyplacené žetony" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Token na černé listině" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Tokeny na černé listině" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Nebyl nalezen žádný aktivní účet" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Musí být nastaven atribut token_class na třídě!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token na černé listině" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Neplatný token" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "V tokenu není deklarace uuid uživatele" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "Uživatel neexistuje" @@ -321,8 +326,7 @@ msgstr "Ahoj %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Obdrželi jsme žádost o obnovení vašeho hesla. Kliknutím na níže uvedené " @@ -342,8 +346,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující " -"adresu URL\n" +"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující adresu URL\n" " do webového prohlížeče:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -409,17 +412,14 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Token je neplatný" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Heslo bylo úspěšně resetováno!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Účet jste již aktivovali..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo b/vibes_auth/locale/da_DK/LC_MESSAGES/django.mo index 53aeb3e3..85871ec4 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 4c85f569..c1d997ef 100644 --- a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po +++ b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Tokenet er gyldigt" @@ -105,7 +105,7 @@ msgid "confirm a user's password reset" msgstr "Bekræft nulstilling af en brugers adgangskode" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Adgangskoderne stemmer ikke overens" @@ -148,8 +148,8 @@ msgstr "Misdannet telefonnummer: {phone_number}." msgid "Invalid attribute format: {attribute_pair}" msgstr "Ugyldigt attributformat: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Aktiveringslinket er ugyldigt!" @@ -161,19 +161,19 @@ msgstr "Kontoen er allerede aktiveret..." msgid "something went wrong: {e!s}" msgstr "Noget gik galt: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token er ugyldig!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "De produkter, som denne bruger har set for nylig (maks. 48), i omvendt " "kronologisk rækkefølge." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Grupper" @@ -181,7 +181,7 @@ msgstr "Grupper" msgid "wishlist" msgstr "Ønskeliste" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -194,111 +194,116 @@ msgstr "Attributter kan bruges til at gemme brugerdefinerede data" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Sprog er et af {LANGUAGES} med standard {LANGUAGE_CODE}." -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Brugerens e-mailadresse" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Telefonnummer" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Brugerens telefonnummer" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Fornavn" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Efternavn" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Billede af brugerprofil" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Er verificeret" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Brugerens verifikationsstatus" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Er aktiv" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Fravælg dette i stedet for at slette konti" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Er tilmeldt" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Status for brugerens abonnement på nyhedsbrev" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Aktiveringstoken" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Egenskaber" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Bruger" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Brugere" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Gruppe" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Enestående token" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Udestående tokens" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Sortlistet token" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Sortlistede tokens" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Ingen aktiv konto fundet" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Skal sætte token_class-attributten på klassen!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token blacklistet" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Ugyldigt token" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "Ingen bruger-uuid-krav til stede i token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "Brugeren findes ikke" @@ -323,8 +328,7 @@ msgstr "Hej %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Vi har modtaget en anmodning om at nulstille din adgangskode. Nulstil " @@ -344,8 +348,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende " -"URL\n" +"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende URL\n" " i din webbrowser:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -410,17 +413,14 @@ msgstr "" "Ugyldigt telefonnummerformat. Nummeret skal indtastes i formatet: " "\"+999999999\". Op til 15 cifre er tilladt." -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Tokenet er ugyldigt" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Adgangskoden er blevet nulstillet med succes!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Du har allerede aktiveret kontoen..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo b/vibes_auth/locale/de_DE/LC_MESSAGES/django.mo index 5873aab8..d4d2aadd 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 424c1a4d..0ff62a0e 100644 --- a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po +++ b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -71,7 +71,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Das Token ist gültig" @@ -106,7 +106,7 @@ msgid "confirm a user's password reset" msgstr "Bestätigen Sie das Zurücksetzen des Passworts eines Benutzers" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Passwörter stimmen nicht überein" @@ -126,8 +126,8 @@ msgstr "" #: vibes_auth/graphene/mutations.py:41 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" -"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen " -"hat." +"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen" +" hat." #: vibes_auth/graphene/mutations.py:61 msgid "password too weak" @@ -152,8 +152,8 @@ msgstr "Fehlerhafte Telefonnummer: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Ungültiges Attributformat: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Der Aktivierungslink ist ungültig!" @@ -165,19 +165,19 @@ msgstr "Das Konto wurde bereits aktiviert..." msgid "something went wrong: {e!s}" msgstr "Etwas ist schief gelaufen: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token ist ungültig!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Die Produkte, die dieser Benutzer zuletzt angesehen hat (maximal 48), in " "umgekehrter chronologischer Reihenfolge." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Gruppen" @@ -185,7 +185,7 @@ msgstr "Gruppen" msgid "wishlist" msgstr "Wunschzettel" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -199,111 +199,116 @@ msgstr "" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Sprache ist eine der {LANGUAGES} mit Standard {LANGUAGE_CODE}" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-Mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "E-Mail Adresse des Benutzers" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Rufnummer" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Rufnummer des Benutzers" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Vornamen" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Nachname" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Bild des Benutzerprofils" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Wird überprüft" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Verifizierungsstatus des Benutzers" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Ist aktiv" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Deaktivieren Sie diese Option, anstatt Konten zu löschen" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Ist abonniert" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Status des Newsletter-Abonnements des Benutzers" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Aktivierungs-Token" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Attribute" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Benutzer" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Benutzer" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Gruppe" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Hervorragende Wertmarke" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Ausstehende Wertmarken" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Token auf der schwarzen Liste" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Token auf der schwarzen Liste" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Kein aktives Konto gefunden" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Das Attribut token_class muss auf class gesetzt werden!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token auf der schwarzen Liste" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Ungültiges Token" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "Kein Benutzer uuid-Anspruch im Token vorhanden" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "Benutzer existiert nicht" @@ -328,8 +333,7 @@ msgstr "Hallo %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Wir haben eine Anfrage erhalten, Ihr Passwort zurückzusetzen. Bitte setzen " @@ -349,8 +353,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die " -"folgende URL und fügen Sie sie in Ihren Browser ein\n" +"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die folgende URL und fügen Sie sie in Ihren Browser ein\n" " in Ihren Webbrowser ein:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -358,8 +361,8 @@ msgid "" "if you did not send this request, please ignore this\n" " email." msgstr "" -"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-" -"Mail." +"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese " +"E-Mail." #: vibes_auth/templates/user_reset_password_email.html:103 #, python-format @@ -416,17 +419,14 @@ msgstr "" "Ungültiges Telefonnummernformat. Die Nummer muss in dem Format eingegeben " "werden: \"+999999999\". Bis zu 15 Ziffern sind erlaubt." -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Das Token ist ungültig" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Das Passwort wurde erfolgreich zurückgesetzt!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Sie haben das Konto bereits aktiviert..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo b/vibes_auth/locale/en_GB/LC_MESSAGES/django.mo index 3bd5e573..f532d42c 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 db669f90..f2d0fc6d 100644 --- a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 Egor "fureunoir" Gorbunov # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -74,7 +74,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "The token is valid" @@ -107,7 +107,7 @@ msgid "confirm a user's password reset" msgstr "Confirm a user's password reset" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Passwords do not match" @@ -150,8 +150,8 @@ msgstr "Malformed phone number: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Invalid attribute format: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Activation link is invalid!" @@ -163,19 +163,19 @@ msgstr "Account has been already activated..." msgid "something went wrong: {e!s}" msgstr "Something went wrong: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token is invalid!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "The products this user has viewed most recently (max 48), in reverse-" "chronological order." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Groups" @@ -183,7 +183,7 @@ msgstr "Groups" msgid "wishlist" msgstr "Wishlist" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -196,111 +196,116 @@ msgstr "Attributes may be used to store custom data" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "User's email address" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Phone Number" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "User phone number" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "First name" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Last name" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "User profile image" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Is verified" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "User's verification status" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Is active" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Unselect this instead of deleting accounts" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Is subscribed" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "User's newsletter subscription status" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Activation token" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Attributes" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "User" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Users" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Group" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Outstanding token" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Blacklisted token" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Blacklisted tokens" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "No active account found" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Must set token_class attribute on class!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token blacklisted" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "User does not exist" @@ -325,8 +330,7 @@ msgstr "Hello %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "We have received a request to reset your password. Please reset your " @@ -412,15 +416,15 @@ msgstr "" "Invalid phone number format. The number must be entered in the format: " "\"+999999999\". Up to 15 digits allowed." -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "The token is invalid" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Password has been reset successfully!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "You have already activated the account..." @@ -431,11 +435,11 @@ msgstr "You have already activated the account..." #~ msgstr "Reset password" #~ msgid "" -#~ "if the button above does not work, please copy and paste the following " -#~ "URL into your web browser:" +#~ "if the button above does not work, please copy and paste the following URL " +#~ "into your web browser:" #~ msgstr "" -#~ "If the button above does not work, please copy and paste the following " -#~ "URL into your web browser:" +#~ "If the button above does not work, please copy and paste the following URL " +#~ "into your web browser:" #, python-brace-format #~ msgid "user not found with the given pk: {user_pk}" diff --git a/vibes_auth/locale/en_US/LC_MESSAGES/django.mo b/vibes_auth/locale/en_US/LC_MESSAGES/django.mo index d083bc4b..7f45140d 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 6aaa7ef7..49ae8cb5 100644 --- a/vibes_auth/locale/en_US/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "The token is valid" @@ -103,7 +103,7 @@ msgid "confirm a user's password reset" msgstr "Confirm a user's password reset" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Passwords do not match" @@ -146,8 +146,8 @@ msgstr "Malformed phone number: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Invalid attribute format: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Activation link is invalid!" @@ -159,19 +159,19 @@ msgstr "Account has been already activated..." msgid "something went wrong: {e!s}" msgstr "Something went wrong: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token is invalid!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "The products this user has viewed most recently (max 48), in reverse-" "chronological order." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Groups" @@ -179,7 +179,7 @@ msgstr "Groups" msgid "wishlist" msgstr "Wishlist" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -192,111 +192,116 @@ msgstr "Attributes may be used to store custom data" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "Email" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "User's email address" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Phone Number" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "User phone number" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "First name" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Last name" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "User profile image" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Is verified" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "User's verification status" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Is active" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Unselect this instead of deleting accounts" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Is subscribed" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "User's newsletter subscription status" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Activation token" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Attributes" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "User" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Users" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Group" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Outstanding token" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Blacklisted token" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Blacklisted tokens" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "No active account found" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Must set token_class attribute on class!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token blacklisted" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "User does not exist" @@ -321,8 +326,7 @@ msgstr "Hello %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "We have received a request to reset your password. Please reset your " @@ -408,17 +412,14 @@ msgstr "" "Invalid phone number format. The number must be entered in the format: " "\"+999999999\". Up to 15 digits allowed." -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "The token is invalid" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Password has been reset successfully!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "You have already activated the account..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo b/vibes_auth/locale/es_ES/LC_MESSAGES/django.mo index f322f54f..967ba775 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 a496ee77..ad0e7333 100644 --- a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po +++ b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "El token es válido" @@ -105,7 +105,7 @@ msgid "confirm a user's password reset" msgstr "Confirmar el restablecimiento de la contraseña de un usuario" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Las contraseñas no coinciden" @@ -149,8 +149,8 @@ msgstr "Número de teléfono malformado: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Formato de atributo no válido: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "El enlace de activación no es válido." @@ -162,19 +162,19 @@ msgstr "La cuenta ya ha sido activada..." msgid "something went wrong: {e!s}" msgstr "Algo salió mal: {e!s}." -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "¡La ficha no es válida!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Los productos que este usuario ha visto más recientemente (máx. 48), en " "orden cronológico inverso." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Grupos" @@ -182,7 +182,7 @@ msgstr "Grupos" msgid "wishlist" msgstr "Lista de deseos" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -195,111 +195,116 @@ msgstr "Los atributos pueden utilizarse para almacenar datos personalizados" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "El idioma es uno de los {LANGUAGES} con {LANGUAGE_CODE} por defecto." -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "Correo electrónico" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Dirección de correo electrónico del usuario" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Número de teléfono" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Número de teléfono del usuario" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Nombre" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Apellido" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Imagen del perfil del usuario" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Se verifica" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Estado de verificación del usuario" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Está activo" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Deseleccione esta opción en lugar de eliminar cuentas" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Está suscrito" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Estado de suscripción del usuario al boletín" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Ficha de activación" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Atributos" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Usuario" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Usuarios" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Grupo" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Ficha pendiente" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Fichas pendientes" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Ficha en la lista negra" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Fichas en la lista negra" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "No se ha encontrado ninguna cuenta activa" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Debe establecer el atributo token_class en la clase." + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Ficha en la lista negra" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Token no válido" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "El usuario no existe" @@ -324,8 +329,7 @@ msgstr "Hola %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Hemos recibido una solicitud para restablecer su contraseña. Por favor, " @@ -411,17 +415,14 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "El token no es válido" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "La contraseña se ha restablecido correctamente." -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Ya ha activado la cuenta..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.mo index 3cadc87d..4b368e78 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 81945a24..11ea217c 100644 --- a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -72,7 +72,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Le jeton est valide" @@ -107,7 +107,7 @@ msgid "confirm a user's password reset" msgstr "Confirmer la réinitialisation du mot de passe d'un utilisateur" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Les mots de passe ne correspondent pas" @@ -152,8 +152,8 @@ msgstr "Numéro de téléphone malformé : {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Format d'attribut non valide : {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Le lien d'activation n'est pas valide !" @@ -165,19 +165,19 @@ msgstr "Le compte a déjà été activé..." msgid "something went wrong: {e!s}" msgstr "Quelque chose a mal tourné : {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Le jeton n'est pas valide !" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" -"Les produits que cet utilisateur a consultés le plus récemment (max 48), par " -"ordre chronologique inverse." +"Les produits que cet utilisateur a consultés le plus récemment (max 48), par" +" ordre chronologique inverse." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Groupes" @@ -185,7 +185,7 @@ msgstr "Groupes" msgid "wishlist" msgstr "Liste de souhaits" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -201,111 +201,117 @@ msgstr "" "La langue est l'une des {LANGUAGES} avec la valeur par défaut " "{LANGUAGE_CODE}." -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "Courriel" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Adresse électronique de l'utilisateur" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Numéro de téléphone" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Numéro de téléphone de l'utilisateur" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Prénom" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Nom de famille" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Image du profil de l'utilisateur" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Est vérifié" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Statut de vérification de l'utilisateur" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Est actif" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Désélectionner cette option au lieu de supprimer des comptes" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Est abonné" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Statut de l'abonnement à la lettre d'information de l'utilisateur" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Jeton d'activation" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Attributs" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Utilisateur" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Utilisateurs" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Groupe" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Jeton exceptionnel" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Jetons en circulation" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Jeton sur liste noire" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Jetons sur liste noire" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Aucun compte actif trouvé" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "L'attribut token_class doit être défini sur la classe !" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token sur liste noire" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Jeton non valide" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 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:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "L'utilisateur n'existe pas" @@ -330,8 +336,7 @@ msgstr "Bonjour %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Nous avons reçu une demande de réinitialisation de votre mot de passe. " @@ -352,8 +357,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL " -"suivante\n" +"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL suivante\n" " suivante dans votre navigateur web :" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -385,8 +389,8 @@ msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" -"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte " -"en cliquant sur le bouton ci-dessous :" +"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte" +" en cliquant sur le bouton ci-dessous :" #: vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -419,17 +423,14 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Le jeton n'est pas valide" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Le mot de passe a été réinitialisé avec succès !" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Vous avez déjà activé le compte..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index ad89279f..49d806f0 100644 --- a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,7 @@ msgstr "" msgid "Verify a token (refresh or access)." msgstr "" -#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "" @@ -106,7 +106,7 @@ msgid "confirm a user's password reset" msgstr "" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "" @@ -149,8 +149,8 @@ msgstr "" msgid "Invalid attribute format: {attribute_pair}" msgstr "" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "" @@ -162,7 +162,7 @@ msgstr "" msgid "something went wrong: {e!s}" msgstr "" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "" @@ -172,7 +172,7 @@ msgid "" "chronological order" msgstr "" -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "" @@ -180,7 +180,7 @@ msgstr "" msgid "wishlist" msgstr "" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "" @@ -193,111 +193,116 @@ msgstr "" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "" -#: vibes_auth/serializers.py:203 -msgid "token_blacklisted" -msgstr "" - -#: vibes_auth/serializers.py:208 -msgid "invalid token" +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." msgstr "" #: vibes_auth/serializers.py:214 +msgid "token_blacklisted" +msgstr "" + +#: vibes_auth/serializers.py:219 +msgid "invalid token" +msgstr "" + +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "" @@ -395,14 +400,14 @@ msgid "" "\"+999999999\". up to 15 digits allowed." msgstr "" -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "" diff --git a/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo b/vibes_auth/locale/it_IT/LC_MESSAGES/django.mo index 0e6595ee..1d85f75e 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 4f377820..6c8e9aa1 100644 --- a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po +++ b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -71,7 +71,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Il token è valido" @@ -106,7 +106,7 @@ msgid "confirm a user's password reset" msgstr "Confermare la reimpostazione della password di un utente" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Le password non corrispondono" @@ -149,8 +149,8 @@ msgstr "Numero di telefono malformato: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Formato attributo non valido: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Il link di attivazione non è valido!" @@ -162,19 +162,19 @@ msgstr "L'account è già stato attivato..." msgid "something went wrong: {e!s}" msgstr "Qualcosa è andato storto: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Il gettone non è valido!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "I prodotti che questo utente ha visualizzato più di recente (max 48), in " "ordine cronologico inverso." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Gruppi" @@ -182,7 +182,7 @@ msgstr "Gruppi" msgid "wishlist" msgstr "Lista dei desideri" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -197,111 +197,116 @@ msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "" "La lingua è una delle {LANGUAGES} con il codice predefinito {LANGUAGE_CODE}." -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "Email" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Indirizzo e-mail dell'utente" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Numero di telefono" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Numero di telefono dell'utente" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Nome" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Cognome" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Immagine del profilo utente" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "È verificato" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Stato di verifica dell'utente" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "È attivo" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Deselezionare questa opzione invece di eliminare gli account" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "È iscritto" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Stato di iscrizione alla newsletter dell'utente" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Token di attivazione" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Attributi" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Utente" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Utenti" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Gruppo" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Gettone eccezionale" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Gettoni in sospeso" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Token in lista nera" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Gettoni nella lista nera" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Nessun conto attivo trovato" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Deve essere impostato l'attributo token_class sulla classe!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token nella lista nera" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Token non valido" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "Nessuna richiesta di uuid utente presente nel token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "L'utente non esiste" @@ -326,8 +331,7 @@ msgstr "Ciao %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Abbiamo ricevuto una richiesta di reimpostazione della password. La " @@ -413,17 +417,14 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Il token non è valido" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "La password è stata reimpostata con successo!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Avete già attivato l'account..." - -#~ msgid "eVibes Auth" -#~ msgstr "Autorizzazione eVibes" diff --git a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.mo index 36220521..90af1d23 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 b8d8a4b7..4ddd67b8 100644 --- a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ msgstr "トークンの検証" msgid "Verify a token (refresh or access)." msgstr "トークンを確認する(リフレッシュまたはアクセス)。" -#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "トークンは有効です" @@ -103,7 +103,7 @@ msgid "confirm a user's password reset" msgstr "ユーザーのパスワード・リセットを確認する" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "パスワードが一致しない" @@ -113,9 +113,7 @@ msgstr "ユーザーアカウントの有効化" #: vibes_auth/docs/drf/viewsets.py:66 msgid "activation link is invalid or account already activated" -msgstr "" -"アクティベーションリンクが無効であるか、アカウントがすでにアクティベーション" -"されています。" +msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。" #: vibes_auth/docs/drf/viewsets.py:71 msgid "merge client-stored recently viewed products" @@ -148,8 +146,8 @@ msgstr "不正な電話番号:{phone_number}。" msgid "Invalid attribute format: {attribute_pair}" msgstr "無効な属性形式です:{attribute_pair}。" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "アクティベーションリンクが無効です!" @@ -161,17 +159,17 @@ msgstr "アカウントはすでに有効になっています..." msgid "something went wrong: {e!s}" msgstr "何かが間違っていた:{e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "トークンが無効です!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "このユーザーが最近閲覧した商品(最大48件)を逆順に表示します。" -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "グループ" @@ -179,7 +177,7 @@ msgstr "グループ" msgid "wishlist" msgstr "ウィッシュリスト" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "アバター" @@ -192,111 +190,116 @@ msgstr "属性は、カスタム・データを保存するために使用する msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "言語は{LANGUAGES}のいずれかで、デフォルトは{LANGUAGE_CODE}です。" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "電子メール" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "ユーザーのメールアドレス" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "電話番号" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "ユーザー電話番号" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "名前" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "姓" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "ユーザープロフィール画像" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "確認済み" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "ユーザーの認証状況" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "アクティブ" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "アカウントを削除する代わりに、この選択を解除する" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "購読中" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "ユーザーのニュースレター購読状況" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "アクティベーション・トークン" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "属性" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "ユーザー" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "ユーザー" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "グループ" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "卓越したトークン" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "トークン残高" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "ブラックリストトークン" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "ブラックリストに載ったトークン" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "アクティブなアカウントが見つかりません" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "クラスにtoken_class属性を設定する必要があります!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "トークンのブラックリスト入り" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "無効なトークン" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "トークンにユーザー uuid クレームが存在しない" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "ユーザーが存在しない" @@ -321,12 +324,9 @@ msgstr "こんにちは、%(user_first_name)sです、" #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" -msgstr "" -"パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワー" -"ドをリセットしてください:" +msgstr "パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワードをリセットしてください:" #: vibes_auth/templates/user_reset_password_email.html:95 msgid "" @@ -342,8 +342,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けて" -"ください。\n" +"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けてください。\n" " をウェブブラウザに貼り付けてください:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -374,9 +373,7 @@ msgstr "アカウントの有効化" msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" -msgstr "" -"%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックし" -"てアカウントを有効にしてください:" +msgstr "%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックしてアカウントを有効にしてください:" #: vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -405,21 +402,16 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "トークンが無効" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "パスワードのリセットに成功しました!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "あなたはすでにアカウントを有効にしています..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index ad89279f..49d806f0 100644 --- a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,7 @@ msgstr "" msgid "Verify a token (refresh or access)." msgstr "" -#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "" @@ -106,7 +106,7 @@ msgid "confirm a user's password reset" msgstr "" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "" @@ -149,8 +149,8 @@ msgstr "" msgid "Invalid attribute format: {attribute_pair}" msgstr "" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "" @@ -162,7 +162,7 @@ msgstr "" msgid "something went wrong: {e!s}" msgstr "" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "" @@ -172,7 +172,7 @@ msgid "" "chronological order" msgstr "" -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "" @@ -180,7 +180,7 @@ msgstr "" msgid "wishlist" msgstr "" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "" @@ -193,111 +193,116 @@ msgstr "" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "" -#: vibes_auth/serializers.py:203 -msgid "token_blacklisted" -msgstr "" - -#: vibes_auth/serializers.py:208 -msgid "invalid token" +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." msgstr "" #: vibes_auth/serializers.py:214 +msgid "token_blacklisted" +msgstr "" + +#: vibes_auth/serializers.py:219 +msgid "invalid token" +msgstr "" + +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "" @@ -395,14 +400,14 @@ msgid "" "\"+999999999\". up to 15 digits allowed." msgstr "" -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "" diff --git a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.mo index 449d81f4..c4b08a49 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 4c0a13e0..35098a2e 100644 --- a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "The token is valid" @@ -105,7 +105,7 @@ msgid "confirm a user's password reset" msgstr "Bevestig het resetten van het wachtwoord van een gebruiker" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Wachtwoorden komen niet overeen" @@ -150,8 +150,8 @@ msgstr "Misvormd telefoonnummer: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Ongeldig attribuutformaat: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Activeringslink is ongeldig!" @@ -163,19 +163,19 @@ msgstr "Account is al geactiveerd..." msgid "something went wrong: {e!s}" msgstr "Er ging iets mis: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token is invalid!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "De producten die deze gebruiker het laatst heeft bekeken (max 48), in " "omgekeerd-chronologische volgorde." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Groepen" @@ -183,7 +183,7 @@ msgstr "Groepen" msgid "wishlist" msgstr "Verlanglijst" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -196,111 +196,116 @@ msgstr "Attributen kunnen worden gebruikt om aangepaste gegevens op te slaan" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Taal is een van de {LANGUAGES} met standaard {LANGUAGE_CODE}" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "E-mailadres gebruiker" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Telefoonnummer" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Telefoonnummer gebruiker" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Voornaam" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Achternaam" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Afbeelding gebruikersprofiel" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Is geverifieerd" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Verificatiestatus van de gebruiker" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Is actief" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Deselecteer dit in plaats van accounts te verwijderen" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Is geabonneerd" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Inschrijvingsstatus nieuwsbrief gebruiker" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Activeringstoken" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Attributen" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Gebruiker" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Gebruikers" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Groep" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Uitstekende penning" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Uitstaande tokens" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Token op zwarte lijst" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Tokens op de zwarte lijst" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Geen actieve account gevonden" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Moet token_class attribuut instellen op klasse!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token op zwarte lijst" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "Geen gebruiker uuid claim aanwezig in token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "Gebruiker bestaat niet" @@ -325,12 +330,11 @@ msgstr "Hallo %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" -"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik " -"op de knop hieronder om je wachtwoord opnieuw in te stellen:" +"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik" +" op de knop hieronder om je wachtwoord opnieuw in te stellen:" #: vibes_auth/templates/user_reset_password_email.html:95 msgid "" @@ -378,8 +382,8 @@ msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" -"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op " -"de onderstaande knop te klikken:" +"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op" +" de onderstaande knop te klikken:" #: vibes_auth/templates/user_verification_email.html:96 msgid "" @@ -412,17 +416,14 @@ msgstr "" "Ongeldig formaat telefoonnummer. Het nummer moet worden ingevoerd in de " "indeling: \"+999999999\". Maximaal 15 cijfers toegestaan." -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Het token is ongeldig" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Wachtwoord is succesvol gereset!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Je hebt de account al geactiveerd..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.mo index dd7ecfac..3d724321 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 84d912da..60d47727 100644 --- a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,7 +52,8 @@ 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" @@ -70,7 +71,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Token jest ważny" @@ -105,7 +106,7 @@ msgid "confirm a user's password reset" msgstr "Potwierdzenie zresetowania hasła użytkownika" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Hasła nie są zgodne" @@ -150,8 +151,8 @@ msgstr "Zniekształcony numer telefonu: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Nieprawidłowy format atrybutu: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Link aktywacyjny jest nieprawidłowy!" @@ -163,19 +164,19 @@ msgstr "Konto zostało już aktywowane..." msgid "something went wrong: {e!s}" msgstr "Coś poszło nie tak: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token jest nieprawidłowy!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produkty ostatnio przeglądane przez tego użytkownika (maks. 48), w " "kolejności odwrotnej do chronologicznej." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Grupy" @@ -183,7 +184,7 @@ msgstr "Grupy" msgid "wishlist" msgstr "Lista życzeń" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Awatar" @@ -196,111 +197,116 @@ msgstr "Atrybuty mogą być używane do przechowywania niestandardowych danych" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Język jest jednym z {LANGUAGES} z domyślnym {LANGUAGE_CODE}." -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Adres e-mail użytkownika" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Numer telefonu" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Numer telefonu użytkownika" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Imię" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Nazwisko" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Obraz profilu użytkownika" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Czy zweryfikowano" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Status weryfikacji użytkownika" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Jest aktywny" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Odznacz to zamiast usuwać konta" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Jest subskrybowany" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Status subskrypcji newslettera użytkownika" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Token aktywacyjny" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Atrybuty" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Użytkownik" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Użytkownicy" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Grupa" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Wyjątkowy token" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Zaległe tokeny" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Token na czarnej liście" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Tokeny znajdujące się na czarnej liście" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Nie znaleziono aktywnego konta" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Należy ustawić atrybut token_class na klasie!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token na czarnej liście" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Nieprawidłowy token" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "Brak oświadczenia uuid użytkownika w tokenie" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "Użytkownik nie istnieje" @@ -325,8 +331,7 @@ msgstr "Witaj %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Otrzymaliśmy prośbę o zresetowanie hasła. Zresetuj hasło, klikając poniższy " @@ -409,20 +414,17 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Token jest nieprawidłowy" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Hasło zostało pomyślnie zresetowane!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Konto zostało już aktywowane..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.mo index 8e121b4e..4d2c04f4 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 f88fc3a8..ff9d7524 100644 --- a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "O token é válido" @@ -104,7 +104,7 @@ msgid "confirm a user's password reset" msgstr "Confirmar a redefinição de senha de um usuário" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "As senhas não correspondem" @@ -147,8 +147,8 @@ msgstr "Número de telefone malformado: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Formato de atributo inválido: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "O link de ativação é inválido!" @@ -160,19 +160,19 @@ msgstr "A conta já foi ativada..." msgid "something went wrong: {e!s}" msgstr "Algo deu errado: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "O token é inválido!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" -"Os produtos que esse usuário visualizou mais recentemente (máximo de 48), em " -"ordem cronológica inversa." +"Os produtos que esse usuário visualizou mais recentemente (máximo de 48), em" +" ordem cronológica inversa." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Grupos" @@ -180,7 +180,7 @@ msgstr "Grupos" msgid "wishlist" msgstr "Lista de desejos" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -193,111 +193,116 @@ msgstr "Os atributos podem ser usados para armazenar dados personalizados" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "O idioma é um dos {LANGUAGES} com o padrão {LANGUAGE_CODE}" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Endereço de e-mail do usuário" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Número de telefone" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Número de telefone do usuário" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Primeiro nome" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Sobrenome" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Imagem do perfil do usuário" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "É verificado" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Status de verificação do usuário" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Está ativo" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Desmarque essa opção em vez de excluir contas" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Está inscrito" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Status da assinatura do boletim informativo do usuário" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Token de ativação" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Atributos" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Usuário" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Usuários" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Grupo" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Token excepcional" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Tokens pendentes" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Token na lista negra" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Tokens na lista negra" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Nenhuma conta ativa encontrada" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "É necessário definir o atributo token_class na classe!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token na lista negra" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Token inválido" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "Nenhuma reivindicação de uuid de usuário presente no token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "O usuário não existe" @@ -322,8 +327,7 @@ msgstr "Olá %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Recebemos uma solicitação para redefinir sua senha. Para redefinir sua " @@ -409,17 +413,14 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "O token é inválido" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "A senha foi redefinida com sucesso!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Você já ativou a conta..." - -#~ msgid "eVibes Auth" -#~ msgstr "Autenticação eVibes" diff --git a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.mo index 434747fb..d66df273 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 d16c7dfa..c4a633e1 100644 --- a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -71,7 +71,7 @@ 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 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Jetonul este valid" @@ -106,7 +106,7 @@ msgid "confirm a user's password reset" msgstr "Confirmați resetarea parolei unui utilizator" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Parolele nu se potrivesc" @@ -150,8 +150,8 @@ msgstr "Număr de telefon malformat: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Format de atribut invalid: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Linkul de activare este invalid!" @@ -163,19 +163,19 @@ msgstr "Contul a fost deja activat..." msgid "something went wrong: {e!s}" msgstr "Ceva nu a mers bine: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Token-ul nu este valabil!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" "Produsele pe care acest utilizator le-a vizualizat cel mai recent (max 48), " "în ordine cronologică inversă." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Grupuri" @@ -183,7 +183,7 @@ msgstr "Grupuri" msgid "wishlist" msgstr "Lista dorințelor" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Avatar" @@ -196,111 +196,116 @@ msgstr "Atributele pot fi utilizate pentru a stoca date personalizate" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Limba este una dintre {LANGUAGES} cu {LANGUAGE_CODE} implicit" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "E-mail" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Adresa de e-mail a utilizatorului" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Număr de telefon" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Numărul de telefon al utilizatorului" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Numele și prenumele" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Numele de familie" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Imagine profil utilizator" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Este verificat" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Statutul de verificare al utilizatorului" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Este activ" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Deselectați acest lucru în loc să ștergeți conturile" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Este abonat" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Starea abonării utilizatorului la buletinul informativ" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Jeton de activare" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Atribute" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Utilizator" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Utilizatori" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Grup" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Simbol excepțional" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Jetoane restante" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Token pe lista neagră" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Jetoane pe lista neagră" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Nu s-a găsit niciun cont activ" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Trebuie să setați atributul token_class pe clasă!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Token pe lista neagră" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Jeton invalid" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "În jeton nu este prezentă nicio cerere uuid a utilizatorului" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "Utilizatorul nu există" @@ -325,8 +330,7 @@ msgstr "Bună ziua %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Am primit o cerere de resetare a parolei dumneavoastră. Vă rugăm să vă " @@ -346,8 +350,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți " -"următoarea adresă URL\n" +"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți următoarea adresă URL\n" " în browserul dvs. web:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -413,17 +416,14 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Jetonul nu este valabil" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Parola a fost resetată cu succes!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Ați activat deja contul..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.mo index be0f617f..42fec0af 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 04c9b86e..71df1c26 100644 --- a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ msgstr "Проверка маркера" msgid "Verify a token (refresh or access)." msgstr "Проверка маркера (обновление или доступ)." -#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "Токен действителен" @@ -105,7 +105,7 @@ msgid "confirm a user's password reset" msgstr "Подтверждение сброса пароля пользователя" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "Пароли не совпадают" @@ -119,7 +119,8 @@ msgstr "Ссылка на активацию недействительна ил #: vibes_auth/docs/drf/viewsets.py:71 msgid "merge client-stored recently viewed products" -msgstr "Объедините недавно просмотренные продукты, хранящиеся в памяти клиента" +msgstr "" +"Объедините недавно просмотренные продукты, хранящиеся в памяти клиента" #: vibes_auth/graphene/mutations.py:41 msgid "the user's b64-encoded uuid who referred the new user to us." @@ -150,8 +151,8 @@ msgstr "Некорректный номер телефона: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "Недопустимый формат атрибута: {attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "Ссылка на активацию недействительна!" @@ -163,19 +164,19 @@ msgstr "Аккаунт уже активирован..." msgid "something went wrong: {e!s}" msgstr "Что-то пошло не так: {e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "Токен недействителен!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "" -"Продукты, которые этот пользователь просматривал в последнее время (не более " -"48), в обратном хронологическом порядке." +"Продукты, которые этот пользователь просматривал в последнее время (не более" +" 48), в обратном хронологическом порядке." -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "Группы" @@ -183,7 +184,7 @@ msgstr "Группы" msgid "wishlist" msgstr "Список желаний" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "Аватар" @@ -196,111 +197,116 @@ msgstr "Атрибуты могут использоваться для хран msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Язык - один из {LANGUAGES}, по умолчанию {LANGUAGE_CODE}." -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "Электронная почта" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "Адрес электронной почты пользователя" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "Номер телефона" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "Номер телефона пользователя" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "Имя" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "Фамилия" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "Изображение профиля пользователя" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "Проверено" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "Статус верификации пользователя" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "Активен" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "Снимите этот флажок вместо удаления учетных записей" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "Подписан" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "Статус подписки пользователя на рассылку новостей" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "Активационный маркер" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "Атрибуты" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "Пользователь" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "Пользователи" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "Группа" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "Выдающийся жетон" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "Выпущенные токены" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "Токен в черном списке" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "Чёрный список токенов" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "Активная учетная запись не найдена" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "Необходимо установить атрибут token_class для класса!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "Токен занесен в черный список" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "Неверный токен" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "В токене отсутствует утверждение uuid пользователя" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "Пользователь не существует" @@ -325,8 +331,7 @@ msgstr "Здравствуйте, %(user_first_name)s," #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "Мы получили запрос на сброс вашего пароля. Пожалуйста, сбросьте пароль, " @@ -346,8 +351,7 @@ msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" -"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий " -"URL-адрес\n" +"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий URL-адрес\n" " в свой веб-браузер:" #: vibes_auth/templates/user_reset_password_email.html:101 @@ -412,17 +416,14 @@ msgstr "" "Неверный формат телефонного номера. Номер должен быть введен в формате: " "\"+999999999\". Допускается до 15 цифр." -#: vibes_auth/views.py:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "Токен недействителен" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "Пароль был успешно сброшен!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "Вы уже активировали учетную запись..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth" diff --git a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.mo index d7c54350..4efe84c8 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 519a64d8..8f9a6581 100644 --- a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-29 17:23+0100\n" +"POT-Creation-Date: 2025-07-03 18:33+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -70,7 +70,7 @@ msgstr "验证令牌" msgid "Verify a token (refresh or access)." msgstr "验证令牌(刷新或访问)。" -#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:55 +#: vibes_auth/docs/drf/views.py:62 vibes_auth/views.py:115 msgid "the token is valid" msgstr "令牌有效" @@ -103,7 +103,7 @@ msgid "confirm a user's password reset" msgstr "确认用户密码重置" #: vibes_auth/docs/drf/viewsets.py:57 vibes_auth/graphene/mutations.py:307 -#: vibes_auth/viewsets.py:73 +#: vibes_auth/viewsets.py:114 msgid "passwords do not match" msgstr "密码不匹配" @@ -146,8 +146,8 @@ msgstr "畸形电话号码: {phone_number}" msgid "Invalid attribute format: {attribute_pair}" msgstr "属性格式无效:{attribute_pair}" -#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:116 -#: vibes_auth/viewsets.py:135 +#: vibes_auth/graphene/mutations.py:263 vibes_auth/viewsets.py:157 +#: vibes_auth/viewsets.py:176 msgid "activation link is invalid!" msgstr "激活链接无效!" @@ -159,17 +159,17 @@ msgstr "帐户已激活..." msgid "something went wrong: {e!s}" msgstr "出了问题:{e!s}" -#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:84 +#: vibes_auth/graphene/mutations.py:314 vibes_auth/viewsets.py:125 msgid "token is invalid!" msgstr "令牌无效!" #: vibes_auth/graphene/object_types.py:40 msgid "" -"the products this user has viewed most recently (max 48), in reverse‐" -"chronological order" +"the products this user has viewed most recently (max 48), in " +"reverse‐chronological order" msgstr "该用户最近查看过的产品(最多 48 个),按倒序排列。" -#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:117 +#: vibes_auth/graphene/object_types.py:42 vibes_auth/models.py:180 msgid "groups" msgstr "组别" @@ -177,7 +177,7 @@ msgstr "组别" msgid "wishlist" msgstr "愿望清单" -#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:53 +#: vibes_auth/graphene/object_types.py:47 vibes_auth/models.py:102 msgid "avatar" msgstr "阿凡达" @@ -190,111 +190,116 @@ msgstr "属性可用于存储自定义数据" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "语言是{LANGUAGES}之一,默认为{LANGUAGE_CODE}。" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "email" msgstr "电子邮件" -#: vibes_auth/models.py:36 +#: vibes_auth/models.py:85 msgid "user email address" msgstr "用户电子邮件地址" -#: vibes_auth/models.py:38 +#: vibes_auth/models.py:87 msgid "phone_number" msgstr "电话号码" -#: vibes_auth/models.py:43 +#: vibes_auth/models.py:92 msgid "user phone number" msgstr "用户电话号码" -#: vibes_auth/models.py:49 +#: vibes_auth/models.py:98 msgid "first_name" msgstr "姓名" -#: vibes_auth/models.py:50 +#: vibes_auth/models.py:99 msgid "last_name" msgstr "姓氏" -#: vibes_auth/models.py:56 +#: vibes_auth/models.py:105 msgid "user profile image" msgstr "用户配置文件图像" -#: vibes_auth/models.py:61 +#: vibes_auth/models.py:110 msgid "is verified" msgstr "已核实" -#: vibes_auth/models.py:62 +#: vibes_auth/models.py:111 msgid "user verification status" msgstr "用户验证状态" -#: vibes_auth/models.py:65 +#: vibes_auth/models.py:114 msgid "is_active" msgstr "处于活动状态" -#: vibes_auth/models.py:67 +#: vibes_auth/models.py:116 msgid "unselect this instead of deleting accounts" msgstr "取消选择此选项,而不是删除账户" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "is_subscribed" msgstr "已订阅" -#: vibes_auth/models.py:70 +#: vibes_auth/models.py:119 msgid "user's newsletter subscription status" msgstr "用户的通讯订阅状态" -#: vibes_auth/models.py:73 +#: vibes_auth/models.py:122 msgid "activation token" msgstr "激活令牌" -#: vibes_auth/models.py:75 +#: vibes_auth/models.py:124 msgid "attributes" msgstr "属性" -#: vibes_auth/models.py:109 +#: vibes_auth/models.py:158 msgid "user" msgstr "用户" -#: vibes_auth/models.py:110 +#: vibes_auth/models.py:159 msgid "users" msgstr "用户" -#: vibes_auth/models.py:116 +#: vibes_auth/models.py:179 msgid "group" msgstr "组别" -#: vibes_auth/models.py:123 +#: vibes_auth/models.py:196 msgid "outstanding token" msgstr "出色的代币" -#: vibes_auth/models.py:124 +#: vibes_auth/models.py:197 msgid "outstanding tokens" msgstr "未兑代币" -#: vibes_auth/models.py:130 +#: vibes_auth/models.py:215 msgid "blacklisted token" msgstr "黑名单令牌" -#: vibes_auth/models.py:131 +#: vibes_auth/models.py:216 msgid "blacklisted tokens" msgstr "黑名单令牌" #: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 +#: vibes_auth/serializers.py:154 vibes_auth/serializers.py:166 msgid "no active account" msgstr "未找到活动账户" -#: vibes_auth/serializers.py:203 +#: vibes_auth/serializers.py:142 +msgid "must set token_class attribute on class." +msgstr "必须在类上设置 token_class 属性!" + +#: vibes_auth/serializers.py:214 msgid "token_blacklisted" msgstr "令牌被列入黑名单" -#: vibes_auth/serializers.py:208 +#: vibes_auth/serializers.py:219 msgid "invalid token" msgstr "无效令牌" -#: vibes_auth/serializers.py:214 +#: vibes_auth/serializers.py:225 msgid "no user uuid claim present in token" msgstr "令牌中没有用户 uuid 声明" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:227 msgid "user does not exist" msgstr "用户不存在" @@ -319,8 +324,7 @@ msgstr "您好 %(user_first_name)s、" #: vibes_auth/templates/user_reset_password_email.html:92 msgid "" -"we have received a request to reset your password. please reset your " -"password\n" +"we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "我们收到了重置密码的请求。请点击下面的按钮重置密码:" @@ -398,20 +402,16 @@ 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:57 +#: vibes_auth/views.py:117 msgid "the token is invalid" msgstr "令牌无效" -#: vibes_auth/viewsets.py:88 +#: vibes_auth/viewsets.py:129 msgid "password reset successfully" msgstr "密码已重置成功!" -#: vibes_auth/viewsets.py:121 +#: vibes_auth/viewsets.py:162 msgid "account already activated!" msgstr "您已经激活了账户..." - -#~ msgid "eVibes Auth" -#~ msgstr "eVibes Auth"