Merge branch 'main' into storefront

This commit is contained in:
Alexandr SaVBaD Waltz 2025-05-28 15:38:26 +03:00
commit 537d361da1
100 changed files with 6920 additions and 6546 deletions

View file

@ -1,24 +1,25 @@
* @default-owner * @@owner
README.md @fureunoir contact@fureunoir.com README.md @fureunoir contact@fureunoir.com
LICENSE @fureunoir contact@fureunoir.com LICENSE @fureunoir contact@fureunoir.com
Dockerfile* @fureunoir contact@fureunoir.com Dockerfile.app @fureunoir contact@fureunoir.com
docker-compose.yml @fureunoir contact@fureunoir.com Dockerfile.storefront @SaVBaD savbad@wiseless.xyz
.gitignore @fureunoir contact@fureunoir.com docker-compose.yml @@maintainer
.dockerignore @fureunoir contact@fureunoir.com .gitignore @@maintainer
nginx @fureunoir contact@fureunoir.com .dockerignore @@maintainer
nginx @@maintainer
pyproject.toml @fureunoir contact@fureunoir.com pyproject.toml @fureunoir contact@fureunoir.com
poetry.lock @fureunoir contact@fureunoir.com poetry.lock @fureunoir contact@fureunoir.com
/blog/ @fureunoir contact@fureunoir.com blog/ @fureunoir contact@fureunoir.com
/core/ @fureunoir contact@fureunoir.com core/ @fureunoir contact@fureunoir.com
/evibes/ @fureunoir contact@fureunoir.com evibes/ @fureunoir contact@fureunoir.com
/payments/ @fureunoir contact@fureunoir.com payments/ @fureunoir contact@fureunoir.com
/scripts/ @fureunoir contact@fureunoir.com scripts/ @fureunoir contact@fureunoir.com
/vibes_auth/ @fureunoir contact@fureunoir.com vibes_auth/ @fureunoir contact@fureunoir.com
/storefront/ @SaVBaD savbad@wiseless.xyz storefront/ @SaVBaD savbad@wiseless.xyz
*.py @fureunoir contact@fureunoir.com *.py @fureunoir contact@fureunoir.com
*.bat @fureunoir contact@fureunoir.com *.bat @fureunoir contact@fureunoir.com

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(لا يوجد محتوى بعد)" msgstr "(لا يوجد محتوى بعد)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "تم تقديمه بتنسيق HTML" msgstr "تم تقديمه بتنسيق HTML"
@ -25,47 +25,47 @@ msgstr "تم تقديمه بتنسيق HTML"
msgid "blog" msgid "blog"
msgstr "المدونة" msgstr "المدونة"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "عنوان المنشور" msgstr "عنوان المنشور"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "العنوان" msgstr "العنوان"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "المنشور" msgstr "المنشور"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "المنشورات" msgstr "المنشورات"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "يجب توفير ملف ترميز أو محتوى ترميز مخفض - متنافيان" msgstr "يجب توفير ملف ترميز أو محتوى ترميز مخفض - متنافيان"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "معرّف العلامة الداخلي لعلامة المنشور" msgstr "معرّف العلامة الداخلي لعلامة المنشور"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "اسم العلامة" msgstr "اسم العلامة"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "اسم سهل الاستخدام لعلامة المنشور" msgstr "اسم سهل الاستخدام لعلامة المنشور"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "اسم عرض العلامة" msgstr "اسم عرض العلامة"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "علامة المشاركة" msgstr "علامة المشاركة"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "علامات المشاركة" msgstr "علامات المشاركة"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(zatím bez obsahu)" msgstr "(zatím bez obsahu)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "Vykreslené HTML" msgstr "Vykreslené HTML"
@ -25,49 +25,49 @@ msgstr "Vykreslené HTML"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Název příspěvku" msgstr "Název příspěvku"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Název" msgstr "Název"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Příspěvek" msgstr "Příspěvek"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Příspěvky" msgstr "Příspěvky"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"musí být poskytnut soubor markdown nebo obsah markdown - vzájemně se " "musí být poskytnut soubor markdown nebo obsah markdown - vzájemně se "
"vylučují." "vylučují."
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "interní identifikátor tagu pro tag příspěvku" msgstr "interní identifikátor tagu pro tag příspěvku"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Název štítku" msgstr "Název štítku"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Uživatelsky přívětivý název pro značku příspěvku" msgstr "Uživatelsky přívětivý název pro značku příspěvku"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Zobrazení názvu štítku" msgstr "Zobrazení názvu štítku"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Označení příspěvku" msgstr "Označení příspěvku"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Štítky příspěvků" msgstr "Štítky příspěvků"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(intet indhold endnu)" msgstr "(intet indhold endnu)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "Rendered HTML" msgstr "Rendered HTML"
@ -25,48 +25,48 @@ msgstr "Rendered HTML"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Indlæggets titel" msgstr "Indlæggets titel"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Titel" msgstr "Titel"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Indlæg" msgstr "Indlæg"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Indlæg" msgstr "Indlæg"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"en markdown-fil eller markdown-indhold skal leveres - gensidigt udelukkende" "en markdown-fil eller markdown-indhold skal leveres - gensidigt udelukkende"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "intern tag-identifikator for indlægs-tagget" msgstr "intern tag-identifikator for indlægs-tagget"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Tag-navn" msgstr "Tag-navn"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Brugervenligt navn til posttagget" msgstr "Brugervenligt navn til posttagget"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Navn på tag-visning" msgstr "Navn på tag-visning"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Tag til indlæg" msgstr "Tag til indlæg"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Tags til indlæg" msgstr "Tags til indlæg"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(noch kein Inhalt)" msgstr "(noch kein Inhalt)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "Gerendertes HTML" msgstr "Gerendertes HTML"
@ -25,49 +25,49 @@ msgstr "Gerendertes HTML"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Titel des Beitrags" msgstr "Titel des Beitrags"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Titel" msgstr "Titel"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Beitrag" msgstr "Beitrag"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Beiträge" msgstr "Beiträge"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"eine Markdown-Datei oder ein Markdown-Inhalt muss bereitgestellt werden - " "eine Markdown-Datei oder ein Markdown-Inhalt muss bereitgestellt werden - "
"beide schließen sich gegenseitig aus" "beide schließen sich gegenseitig aus"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "interner Tag-Bezeichner für den Post-Tag" msgstr "interner Tag-Bezeichner für den Post-Tag"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Tag name" msgstr "Tag name"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Benutzerfreundlicher Name für das Post-Tag" msgstr "Benutzerfreundlicher Name für das Post-Tag"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Tag-Anzeigename" msgstr "Tag-Anzeigename"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Tag eintragen" msgstr "Tag eintragen"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Tags eintragen" msgstr "Tags eintragen"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,11 +18,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(no content yet)" msgstr "(no content yet)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "Rendered HTML" msgstr "Rendered HTML"
@ -30,48 +30,48 @@ msgstr "Rendered HTML"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Post's title" msgstr "Post's title"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Title" msgstr "Title"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Post" msgstr "Post"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Posts" msgstr "Posts"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "internal tag identifier for the post tag" msgstr "internal tag identifier for the post tag"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Tag name" msgstr "Tag name"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "User-friendly name for the post tag" msgstr "User-friendly name for the post tag"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Tag display name" msgstr "Tag display name"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Post tag" msgstr "Post tag"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Post tags" msgstr "Post tags"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(no content yet)" msgstr "(no content yet)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "Rendered HTML" msgstr "Rendered HTML"
@ -25,48 +25,48 @@ msgstr "Rendered HTML"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Post's title" msgstr "Post's title"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Title" msgstr "Title"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Post" msgstr "Post"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Posts" msgstr "Posts"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "internal tag identifier for the post tag" msgstr "internal tag identifier for the post tag"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Tag name" msgstr "Tag name"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "User-friendly name for the post tag" msgstr "User-friendly name for the post tag"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Tag display name" msgstr "Tag display name"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Post tag" msgstr "Post tag"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Post tags" msgstr "Post tags"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(sin contenido aún)" msgstr "(sin contenido aún)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "HTML renderizado" msgstr "HTML renderizado"
@ -25,49 +25,49 @@ msgstr "HTML renderizado"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Título del mensaje" msgstr "Título del mensaje"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Título" msgstr "Título"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Publicar en" msgstr "Publicar en"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Puestos" msgstr "Puestos"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"se debe proporcionar un archivo markdown o contenido markdown - mutuamente " "se debe proporcionar un archivo markdown o contenido markdown - mutuamente "
"excluyentes" "excluyentes"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "identificador interno de la etiqueta post" msgstr "identificador interno de la etiqueta post"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Nombre de la etiqueta" msgstr "Nombre de la etiqueta"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Nombre fácil de usar para la etiqueta de la entrada" msgstr "Nombre fácil de usar para la etiqueta de la entrada"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Nombre de la etiqueta" msgstr "Nombre de la etiqueta"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Etiqueta postal" msgstr "Etiqueta postal"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Etiquetas" msgstr "Etiquetas"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(pas encore de contenu)" msgstr "(pas encore de contenu)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "HTML rendu" msgstr "HTML rendu"
@ -25,49 +25,49 @@ msgstr "HTML rendu"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Titre du message" msgstr "Titre du message"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Titre" msgstr "Titre"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Poste" msgstr "Poste"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Postes" msgstr "Postes"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"un fichier markdown ou un contenu markdown doit être fourni - ils s'excluent " "un fichier markdown ou un contenu markdown doit être fourni - ils s'excluent "
"mutuellement" "mutuellement"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "identifiant interne de la balise post" msgstr "identifiant interne de la balise post"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Nom du jour" msgstr "Nom du jour"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Nom convivial pour la balise post" msgstr "Nom convivial pour la balise post"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Nom d'affichage de l'étiquette" msgstr "Nom d'affichage de l'étiquette"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Tag de poste" msgstr "Tag de poste"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Tags de la poste" msgstr "Tags de la poste"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,11 +17,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "" msgstr ""
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "" msgstr ""
@ -29,47 +29,47 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "" msgstr ""
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "" msgstr ""
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "" msgstr ""
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "" msgstr ""
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "" msgstr ""
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "" msgstr ""
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "" msgstr ""
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "" msgstr ""
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "" msgstr ""
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "" msgstr ""
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(ancora senza contenuti)" msgstr "(ancora senza contenuti)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "HTML renderizzato" msgstr "HTML renderizzato"
@ -25,49 +25,49 @@ msgstr "HTML renderizzato"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Titolo del post" msgstr "Titolo del post"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Titolo" msgstr "Titolo"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Posta" msgstr "Posta"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Messaggi" msgstr "Messaggi"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"deve essere fornito un file markdown o un contenuto markdown - si escludono " "deve essere fornito un file markdown o un contenuto markdown - si escludono "
"a vicenda" "a vicenda"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "identificatore interno del tag post" msgstr "identificatore interno del tag post"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Nome del tag" msgstr "Nome del tag"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Nome intuitivo per il tag del post" msgstr "Nome intuitivo per il tag del post"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Nome del tag" msgstr "Nome del tag"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Post tag" msgstr "Post tag"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Tag dei post" msgstr "Tag dei post"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(内容はまだありません)" msgstr "(内容はまだありません)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "レンダリングされたHTML" msgstr "レンダリングされたHTML"
@ -25,49 +25,49 @@ msgstr "レンダリングされたHTML"
msgid "blog" msgid "blog"
msgstr "ブログ" msgstr "ブログ"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "投稿タイトル" msgstr "投稿タイトル"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "タイトル" msgstr "タイトル"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "ポスト" msgstr "ポスト"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "投稿" msgstr "投稿"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"マークダウン・ファイルまたはマークダウン・コンテンツを提供しなければならな" "マークダウン・ファイルまたはマークダウン・コンテンツを提供しなければならな"
"い。" "い。"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "投稿タグの内部タグ識別子" msgstr "投稿タグの内部タグ識別子"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "タグ名" msgstr "タグ名"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "投稿タグのユーザーフレンドリーな名前" msgstr "投稿タグのユーザーフレンドリーな名前"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "タグ表示名" msgstr "タグ表示名"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "投稿タグ" msgstr "投稿タグ"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "投稿タグ" msgstr "投稿タグ"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,11 +17,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "" msgstr ""
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "" msgstr ""
@ -29,47 +29,47 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "" msgstr ""
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "" msgstr ""
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "" msgstr ""
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "" msgstr ""
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "" msgstr ""
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "" msgstr ""
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "" msgstr ""
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "" msgstr ""
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "" msgstr ""
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "" msgstr ""
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(nog geen inhoud)" msgstr "(nog geen inhoud)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "HTML weergeven" msgstr "HTML weergeven"
@ -25,49 +25,49 @@ msgstr "HTML weergeven"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Titel van de post" msgstr "Titel van de post"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Titel" msgstr "Titel"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Plaats" msgstr "Plaats"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Berichten" msgstr "Berichten"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"er moet een markdown-bestand of markdown-inhoud worden geleverd - wederzijds " "er moet een markdown-bestand of markdown-inhoud worden geleverd - wederzijds "
"exclusief" "exclusief"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "interne tagidentifier voor de posttag" msgstr "interne tagidentifier voor de posttag"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Tag naam" msgstr "Tag naam"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Gebruiksvriendelijke naam voor de posttag" msgstr "Gebruiksvriendelijke naam voor de posttag"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Tag weergavenaam" msgstr "Tag weergavenaam"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Post tag" msgstr "Post tag"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Post tags" msgstr "Post tags"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(brak treści)" msgstr "(brak treści)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "Renderowany HTML" msgstr "Renderowany HTML"
@ -25,49 +25,49 @@ msgstr "Renderowany HTML"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Tytuł postu" msgstr "Tytuł postu"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Tytuł" msgstr "Tytuł"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Post" msgstr "Post"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Posty" msgstr "Posty"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"należy dostarczyć plik markdown lub zawartość markdown - wzajemnie się " "należy dostarczyć plik markdown lub zawartość markdown - wzajemnie się "
"wykluczające" "wykluczające"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "wewnętrzny identyfikator tagu posta" msgstr "wewnętrzny identyfikator tagu posta"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Nazwa tagu" msgstr "Nazwa tagu"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Przyjazna dla użytkownika nazwa tagu posta" msgstr "Przyjazna dla użytkownika nazwa tagu posta"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Wyświetlana nazwa znacznika" msgstr "Wyświetlana nazwa znacznika"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Tag posta" msgstr "Tag posta"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Tagi postów" msgstr "Tagi postów"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(ainda não há conteúdo)" msgstr "(ainda não há conteúdo)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "HTML renderizado" msgstr "HTML renderizado"
@ -25,48 +25,48 @@ msgstr "HTML renderizado"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Título da postagem" msgstr "Título da postagem"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Título" msgstr "Título"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Postar" msgstr "Postar"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Publicações" msgstr "Publicações"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"um arquivo ou conteúdo de markdown deve ser fornecido - mutuamente exclusivo" "um arquivo ou conteúdo de markdown deve ser fornecido - mutuamente exclusivo"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "identificador de tag interno para a tag de postagem" msgstr "identificador de tag interno para a tag de postagem"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Nome da etiqueta" msgstr "Nome da etiqueta"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Nome de fácil utilização para a tag de postagem" msgstr "Nome de fácil utilização para a tag de postagem"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Nome de exibição da tag" msgstr "Nome de exibição da tag"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Etiqueta de postagem" msgstr "Etiqueta de postagem"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Tags de postagem" msgstr "Tags de postagem"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(fără conținut încă)" msgstr "(fără conținut încă)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "HTML redat" msgstr "HTML redat"
@ -25,49 +25,49 @@ msgstr "HTML redat"
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Titlul postului" msgstr "Titlul postului"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Titlul" msgstr "Titlul"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Post" msgstr "Post"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Mesaje" msgstr "Mesaje"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"trebuie furnizat un fișier markdown sau conținut markdown - se exclud " "trebuie furnizat un fișier markdown sau conținut markdown - se exclud "
"reciproc" "reciproc"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "identificator intern de etichetă pentru eticheta postului" msgstr "identificator intern de etichetă pentru eticheta postului"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Nume etichetă" msgstr "Nume etichetă"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Nume ușor de utilizat pentru eticheta postului" msgstr "Nume ușor de utilizat pentru eticheta postului"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Nume afișare etichetă" msgstr "Nume afișare etichetă"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Etichetă post" msgstr "Etichetă post"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Etichete poștale" msgstr "Etichete poștale"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(пока без содержания)" msgstr "(пока без содержания)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "Рендеринг HTML" msgstr "Рендеринг HTML"
@ -25,49 +25,49 @@ msgstr "Рендеринг HTML"
msgid "blog" msgid "blog"
msgstr "Блог" msgstr "Блог"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "Заголовок сообщения" msgstr "Заголовок сообщения"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "Название" msgstr "Название"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "Пост" msgstr "Пост"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "Посты" msgstr "Посты"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "" msgstr ""
"необходимо предоставить файл разметки или содержимое разметки - " "необходимо предоставить файл разметки или содержимое разметки - "
"взаимоисключающие варианты" "взаимоисключающие варианты"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "внутренний идентификатор тега для тега post" msgstr "внутренний идентификатор тега для тега post"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "Название тега" msgstr "Название тега"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "Удобное для пользователя название тега поста" msgstr "Удобное для пользователя название тега поста"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "Отображаемое имя тега" msgstr "Отображаемое имя тега"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "Тэг поста" msgstr "Тэг поста"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "Тэги постов" msgstr "Тэги постов"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-29 12:32+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -13,11 +13,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: blog/admin.py:33 #: blog/admin.py:37
msgid "(no content yet)" msgid "(no content yet)"
msgstr "(暂无内容)" msgstr "(暂无内容)"
#: blog/admin.py:36 #: blog/admin.py:40
msgid "rendered HTML" msgid "rendered HTML"
msgstr "渲染的 HTML" msgstr "渲染的 HTML"
@ -25,47 +25,47 @@ msgstr "渲染的 HTML"
msgid "blog" msgid "blog"
msgstr "博客" msgstr "博客"
#: blog/models.py:16 #: blog/models.py:15
msgid "post title" msgid "post title"
msgstr "帖子标题" msgstr "帖子标题"
#: blog/models.py:17 #: blog/models.py:15
msgid "title" msgid "title"
msgstr "标题" msgstr "标题"
#: blog/models.py:64 #: blog/models.py:62
msgid "post" msgid "post"
msgstr "职位" msgstr "职位"
#: blog/models.py:65 #: blog/models.py:63
msgid "posts" msgid "posts"
msgstr "职位" msgstr "职位"
#: blog/models.py:69 #: blog/models.py:67
msgid "" msgid ""
"a markdown file or markdown content must be provided - mutually exclusive" "a markdown file or markdown content must be provided - mutually exclusive"
msgstr "必须提供标记符文件或标记符内容 - 相互排斥" msgstr "必须提供标记符文件或标记符内容 - 相互排斥"
#: blog/models.py:80 #: blog/models.py:78
msgid "internal tag identifier for the post tag" msgid "internal tag identifier for the post tag"
msgstr "职位标签的内部标签标识符" msgstr "职位标签的内部标签标识符"
#: blog/models.py:81 #: blog/models.py:79
msgid "tag name" msgid "tag name"
msgstr "标签名称" msgstr "标签名称"
#: blog/models.py:85 #: blog/models.py:83
msgid "user-friendly name for the post tag" msgid "user-friendly name for the post tag"
msgstr "方便用户使用的帖子标签名称" msgstr "方便用户使用的帖子标签名称"
#: blog/models.py:86 #: blog/models.py:84
msgid "tag display name" msgid "tag display name"
msgstr "标签显示名称" msgstr "标签显示名称"
#: blog/models.py:94 #: blog/models.py:92
msgid "post tag" msgid "post tag"
msgstr "职位标签" msgstr "职位标签"
#: blog/models.py:95 #: blog/models.py:93
msgid "post tags" msgid "post tags"
msgstr "帖子标签" msgstr "帖子标签"

View file

@ -88,7 +88,7 @@ class AttributeAdmin(BasicModelAdmin, TabbedTranslationAdmin):
@admin.register(AttributeValue) @admin.register(AttributeValue)
class AttributeValueAdmin(BasicModelAdmin, TabbedTranslationAdmin): class AttributeValueAdmin(BasicModelAdmin, TabbedTranslationAdmin):
list_display = ("attribute", "value", "modified") list_display = ("attribute", "value", "modified")
list_filter = ("attribute__group", "attribute", "is_active") list_filter = ("attribute__group", "is_active")
search_fields = ("uuid", "value", "attribute__name") search_fields = ("uuid", "value", "attribute__name")
autocomplete_fields = ["attribute"] autocomplete_fields = ["attribute"]
@ -331,6 +331,7 @@ class PromoCodeAdmin(BasicModelAdmin):
class PromotionAdmin(BasicModelAdmin, TabbedTranslationAdmin): class PromotionAdmin(BasicModelAdmin, TabbedTranslationAdmin):
list_display = ("name", "discount_percent", "modified") list_display = ("name", "discount_percent", "modified")
search_fields = ("name",) search_fields = ("name",)
autocomplete_fields = ("products",)
def get_queryset(self, request): def get_queryset(self, request):
qs = super().get_queryset(request) qs = super().get_queryset(request)

View file

@ -15,7 +15,9 @@ from core.serializers import (
AttributeSimpleSerializer, AttributeSimpleSerializer,
AttributeValueDetailSerializer, AttributeValueDetailSerializer,
AttributeValueSimpleSerializer, AttributeValueSimpleSerializer,
BulkAddOrderProductsSerializer,
BulkAddWishlistProductSerializer, BulkAddWishlistProductSerializer,
BulkRemoveOrderProductsSerializer,
BulkRemoveWishlistProductSerializer, BulkRemoveWishlistProductSerializer,
BuyOrderSerializer, BuyOrderSerializer,
BuyUnregisteredOrderSerializer, BuyUnregisteredOrderSerializer,
@ -196,12 +198,24 @@ ORDER_SCHEMA = {
request=AddOrderProductSerializer, request=AddOrderProductSerializer,
responses={status.HTTP_200_OK: OrderDetailSerializer, **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer, **BASE_ERRORS},
), ),
"bulk_add_order_products": extend_schema(
summary=_("add a list of products to order, quantities will not count"),
description=_("adds a list of products to an order using the provided `product_uuid` and `attributes`."),
request=BulkAddOrderProductsSerializer,
responses={status.HTTP_200_OK: OrderDetailSerializer, **BASE_ERRORS},
),
"remove_order_product": extend_schema( "remove_order_product": extend_schema(
summary=_("remove product from order"), summary=_("remove product from order"),
description=_("removes a product from an order using the provided `product_uuid` and `attributes`."), description=_("removes a product from an order using the provided `product_uuid` and `attributes`."),
request=RemoveOrderProductSerializer, request=RemoveOrderProductSerializer,
responses={status.HTTP_200_OK: OrderDetailSerializer, **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer, **BASE_ERRORS},
), ),
"bulk_remove_order_products": extend_schema(
summary=_("remove product from order, quantities will not count"),
description=_("removes a list of products from an order using the provided `product_uuid` and `attributes`"),
request=BulkRemoveOrderProductsSerializer,
responses={status.HTTP_200_OK: OrderDetailSerializer, **BASE_ERRORS},
),
} }
WISHLIST_SCHEMA = { WISHLIST_SCHEMA = {

View file

@ -11,7 +11,14 @@ from graphene_django.utils import camelize
from core.elasticsearch import process_query from core.elasticsearch import process_query
from core.graphene import BaseMutation from core.graphene import BaseMutation
from core.graphene.object_types import AddressType, OrderType, ProductType, SearchResultsType, WishlistType from core.graphene.object_types import (
AddressType,
BulkActionOrderProductInput,
OrderType,
ProductType,
SearchResultsType,
WishlistType,
)
from core.models import Address, Category, Order, Product, Wishlist from core.models import Address, Category, Order, Product, Wishlist
from core.utils import format_attributes, is_url_safe from core.utils import format_attributes, is_url_safe
from core.utils.caching import web_cache from core.utils.caching import web_cache
@ -221,6 +228,52 @@ class BuyOrder(BaseMutation):
raise Http404(_(f"order {order_uuid} not found")) raise Http404(_(f"order {order_uuid} not found"))
class BulkOrderAction(BaseMutation):
class Meta:
description = _("perform an action on a list of products in the order")
class Arguments:
order_uuid = UUID(required=False)
order_hr_id = String(required=False)
action = String(required=True, description=_("remove/add"))
products = List(BulkActionOrderProductInput, required=True)
order = Field(OrderType, required=False)
@staticmethod
def mutate(
_parent,
info,
action,
products,
order_uuid=None,
order_hr_id=None,
):
if not any([order_uuid, order_hr_id]) or all([order_uuid, order_hr_id]):
raise BadRequest(_("please provide either order_uuid or order_hr_id - mutually exclusive"))
user = info.context.user
try:
order = None
if order_uuid:
order = Order.objects.get(user=user, uuid=order_uuid)
elif order_hr_id:
order = Order.objects.get(user=user, human_readable_id=order_hr_id)
match action:
case "add":
order = order.bulk_add_products(products)
case "remove":
order = order.bulk_remove_products(products)
case _:
raise BadRequest(_("action must be either add or remove"))
return BulkOrderAction(order=order)
except Order.DoesNotExist:
raise Http404(_(f"order {order_uuid} not found"))
class BuyUnregisteredOrder(BaseMutation): class BuyUnregisteredOrder(BaseMutation):
class Meta: class Meta:
description = _("purchase an order without account creation") description = _("purchase an order without account creation")

View file

@ -2,7 +2,7 @@ from django.core.cache import cache
from django.db.models import Max, Min, QuerySet from django.db.models import Max, Min, QuerySet
from django.db.models.functions import Length from django.db.models.functions import Length
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from graphene import UUID, Field, Float, Int, List, NonNull, ObjectType, String, relay from graphene import UUID, Field, Float, InputObjectType, Int, List, NonNull, ObjectType, String, relay
from graphene.types.generic import GenericScalar from graphene.types.generic import GenericScalar
from graphene_django import DjangoObjectType from graphene_django import DjangoObjectType
from graphene_django.filter import DjangoFilterConnectionField from graphene_django.filter import DjangoFilterConnectionField
@ -508,3 +508,8 @@ class SearchResultsType(ObjectType):
categories = List(description=_("products search results"), of_type=SearchCategoriesResultsType) categories = List(description=_("products search results"), of_type=SearchCategoriesResultsType)
brands = List(description=_("products search results"), of_type=SearchBrandsResultsType) brands = List(description=_("products search results"), of_type=SearchBrandsResultsType)
posts = List(description=_("posts search results"), of_type=SearchPostsResultsType) posts = List(description=_("posts search results"), of_type=SearchPostsResultsType)
class BulkActionOrderProductInput(InputObjectType):
id = UUID(required=True)
attributes = GenericScalar(required=False)

View file

@ -19,6 +19,7 @@ from core.graphene.mutations import (
AddOrderProduct, AddOrderProduct,
AddWishlistProduct, AddWishlistProduct,
AutocompleteAddress, AutocompleteAddress,
BulkOrderAction,
BuyOrder, BuyOrder,
BuyProduct, BuyProduct,
BuyWishlist, BuyWishlist,
@ -294,6 +295,7 @@ class Mutation(ObjectType):
remove_all_order_products = RemoveAllOrderProducts.Field() remove_all_order_products = RemoveAllOrderProducts.Field()
remove_order_products_of_a_kind = RemoveOrderProductsOfAKind.Field() remove_order_products_of_a_kind = RemoveOrderProductsOfAKind.Field()
buy_order = BuyOrder.Field() buy_order = BuyOrder.Field()
bulk_order_action = BulkOrderAction.Field()
deposit = Deposit.Field() deposit = Deposit.Field()
obtain_jwt_token = ObtainJSONWebToken.Field() obtain_jwt_token = ObtainJSONWebToken.Field()
refresh_jwt_token = RefreshJSONWebToken.Field() refresh_jwt_token = RefreshJSONWebToken.Field()

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -546,7 +546,7 @@ class Order(NiceModel):
def total_quantity(self) -> int: def total_quantity(self) -> int:
return sum([op.quantity for op in self.order_products.all()]) return sum([op.quantity for op in self.order_products.all()])
def add_product(self, product_uuid: str | None = None, attributes: list = list): def add_product(self, product_uuid: str | None = None, attributes: list = list, update_quantity: bool = True):
if self.status not in ["PENDING", "MOMENTAL"]: if self.status not in ["PENDING", "MOMENTAL"]:
raise ValueError(_("you cannot add products to an order that is not a pending one")) raise ValueError(_("you cannot add products to an order that is not a pending one"))
try: try:
@ -568,7 +568,7 @@ class Order(NiceModel):
attributes=json.dumps(attributes), attributes=json.dumps(attributes),
defaults={"quantity": 1, "buy_price": product.price}, defaults={"quantity": 1, "buy_price": product.price},
) )
if not is_created: if not is_created and update_quantity:
if product.quantity < order_product.quantity + 1: if product.quantity < order_product.quantity + 1:
raise BadRequest(_("you cannot add more products than available in stock")) raise BadRequest(_("you cannot add more products than available in stock"))
order_product.quantity += 1 order_product.quantity += 1
@ -581,12 +581,15 @@ class Order(NiceModel):
name = "Product" name = "Product"
raise Http404(_(f"{name} does not exist: {product_uuid}")) raise Http404(_(f"{name} does not exist: {product_uuid}"))
def remove_product(self, product_uuid: str | None = None, attributes: dict = dict): def remove_product(self, product_uuid: str | None = None, attributes: dict = dict, zero_quantity: bool = False):
if self.status != "PENDING": if self.status != "PENDING":
raise ValueError(_("you cannot remove products from an order that is not a pending one")) raise ValueError(_("you cannot remove products from an order that is not a pending one"))
try: try:
product = Product.objects.get(uuid=product_uuid) product = Product.objects.get(uuid=product_uuid)
order_product = self.order_products.get(product=product, order=self) order_product = self.order_products.get(product=product, order=self)
if zero_quantity:
order_product.delete()
return self
if order_product.quantity == 1: if order_product.quantity == 1:
self.order_products.remove(order_product) self.order_products.remove(order_product)
order_product.delete() order_product.delete()
@ -778,6 +781,16 @@ class Order(NiceModel):
self.status = "FINISHED" self.status = "FINISHED"
self.save() self.save()
def bulk_add_products(self, products: list):
for product in products:
self.add_product(product.get("uuid"), attributes=product.get("attributes"), update_quantity=False)
return self
def bulk_remove_products(self, products: list):
for product in products:
self.remove_product(product.get("uuid"), attributes=product.get("attributes"), zero_quantity=True)
return self
class OrderProduct(NiceModel): class OrderProduct(NiceModel):
is_publicly_visible = False is_publicly_visible = False

View file

@ -55,11 +55,19 @@ class AddOrderProductSerializer(Serializer):
attributes = JSONField(required=False, default=dict) attributes = JSONField(required=False, default=dict)
class BulkAddOrderProductsSerializer(Serializer):
products = ListField(child=AddOrderProductSerializer(), required=True)
class RemoveOrderProductSerializer(Serializer): class RemoveOrderProductSerializer(Serializer):
product_uuid = CharField(required=True) product_uuid = CharField(required=True)
attributes = JSONField(required=False, default=dict) attributes = JSONField(required=False, default=dict)
class BulkRemoveOrderProductsSerializer(Serializer):
products = ListField(child=RemoveOrderProductSerializer(), required=True)
class AddWishlistProductSerializer(Serializer): class AddWishlistProductSerializer(Serializer):
product_uuid = CharField(required=True) product_uuid = CharField(required=True)

View file

@ -60,7 +60,9 @@ from core.serializers import (
AttributeValueSimpleSerializer, AttributeValueSimpleSerializer,
BrandDetailSerializer, BrandDetailSerializer,
BrandSimpleSerializer, BrandSimpleSerializer,
BulkAddOrderProductsSerializer,
BulkAddWishlistProductSerializer, BulkAddWishlistProductSerializer,
BulkRemoveOrderProductsSerializer,
BulkRemoveWishlistProductSerializer, BulkRemoveWishlistProductSerializer,
BuyOrderSerializer, BuyOrderSerializer,
BuyUnregisteredOrderSerializer, BuyUnregisteredOrderSerializer,
@ -305,7 +307,7 @@ class OrderViewSet(EvibesViewSet):
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
try: try:
order = Order.objects.get(uuid=kwargs.get("pk")) order = Order.objects.get(uuid=kwargs.get("pk"))
if not (request.user.has_perm("core.add_orderproduct") or request.user == order.user): if not (request.user.has_perm("core.delete_orderproduct") or request.user == order.user):
raise PermissionDenied(permission_denied_message) raise PermissionDenied(permission_denied_message)
order = order.remove_product( order = order.remove_product(
@ -317,6 +319,40 @@ class OrderViewSet(EvibesViewSet):
except Order.DoesNotExist: except Order.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND) return Response(status=status.HTTP_404_NOT_FOUND)
@action(detail=True, methods=["post"], url_path="bulk_add_order_products")
def bulk_add_order_products(self, request, *_args, **kwargs):
serializer = BulkAddOrderProductsSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
try:
order = Order.objects.get(uuid=kwargs.get("pk"))
if not (request.user.has_perm("core.add_orderproduct") or request.user == order.user):
raise PermissionDenied(permission_denied_message)
order = order.bulk_add_products(
products=serializer.validated_data.get("products"),
)
return Response(status=status.HTTP_200_OK, data=OrderDetailSerializer(order).data)
except Order.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
@action(detail=True, methods=["post"], url_path="bulk_remove_order_products")
def bulk_remove_order_products(self, request, *_args, **kwargs):
serializer = BulkRemoveOrderProductsSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
try:
order = Order.objects.get(uuid=kwargs.get("pk"))
if not (request.user.has_perm("core.delete_orderproduct") or request.user == order.user):
raise PermissionDenied(permission_denied_message)
order = order.bulk_remove_products(
products=serializer.validated_data.get("products"),
)
return Response(status=status.HTTP_200_OK, data=OrderDetailSerializer(order).data)
except Order.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
class OrderProductViewSet(EvibesViewSet): class OrderProductViewSet(EvibesViewSet):
queryset = OrderProduct.objects.all() queryset = OrderProduct.objects.all()

View file

@ -192,10 +192,10 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
TIME_ZONE = getenv("TIME_ZONE", "Europe/London") TIME_ZONE = getenv("TIME_ZONE", "Europe/London")
STATIC_URL = f"https://api.{getenv('BASE_DOMAIN')}/static/" STATIC_URL = f"https://api.{getenv('EVIBES_BASE_DOMAIN')}/static/"
STATIC_ROOT = BASE_DIR / "static" STATIC_ROOT = BASE_DIR / "static"
MEDIA_URL = f"https://api.{getenv('BASE_DOMAIN')}/media/" MEDIA_URL = f"https://api.{getenv('EVIBES_BASE_DOMAIN')}/media/"
MEDIA_ROOT = BASE_DIR / "media" MEDIA_ROOT = BASE_DIR / "media"
AUTH_USER_MODEL = "vibes_auth.User" AUTH_USER_MODEL = "vibes_auth.User"

View file

@ -1,6 +1,7 @@
import logging import logging
from hmac import compare_digest from hmac import compare_digest
from django.contrib.auth.password_validation import validate_password
from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.core.exceptions import BadRequest, PermissionDenied from django.core.exceptions import BadRequest, PermissionDenied
from django.db import IntegrityError from django.db import IntegrityError
@ -56,6 +57,9 @@ class CreateUser(BaseMutation):
**kwargs, **kwargs,
): ):
try: try:
validate_password(password)
if compare_digest(password.lower(), email.lower()):
raise BadRequest(_("password too weak"))
if compare_digest(password, confirm_password): if compare_digest(password, confirm_password):
User.objects.create_user( User.objects.create_user(
email=email, email=email,
@ -73,7 +77,7 @@ class CreateUser(BaseMutation):
except IntegrityError: except IntegrityError:
return CreateUser(success=True) return CreateUser(success=True)
except Exception as e: except Exception as e:
raise BadRequest(str(e)) raise BadRequest(str(e)) from e
class UpdateUser(BaseMutation): class UpdateUser(BaseMutation):
@ -119,6 +123,9 @@ class UpdateUser(BaseMutation):
password = kwargs.get("password", "") password = kwargs.get("password", "")
confirm_password = kwargs.get("confirm_password", "") confirm_password = kwargs.get("confirm_password", "")
if compare_digest(password.lower(), email.lower()):
raise BadRequest(_("password too weak"))
if not compare_digest(password, "") and compare_digest(password, confirm_password): if not compare_digest(password, "") and compare_digest(password, confirm_password):
user.set_password(password) user.set_password(password)
user.save() user.save()

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: ar-AR\n" "Language: ar-ar\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "الرصيد" msgstr "الرصيد"
@ -22,7 +22,7 @@ msgstr "الرصيد"
msgid "order" msgid "order"
msgstr "الطلب" msgstr "الطلب"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "الطلبات" msgstr "الطلبات"
@ -30,7 +30,7 @@ msgstr "الطلبات"
msgid "personal info" msgid "personal info"
msgstr "معلومات شخصية" msgstr "معلومات شخصية"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "الأذونات" msgstr "الأذونات"
@ -93,91 +93,98 @@ msgstr "حذف مستخدم"
#: vibes_auth/docs/drf/viewsets.py:32 #: vibes_auth/docs/drf/viewsets.py:32
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "" msgstr ""
"إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة " "إعادة تعيين كلمة مرور المستخدم عن طريق إرسال بريد إلكتروني لإعادة تعيين كلمة"
"المرور" " المرور"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "التعامل مع تحميل الصورة الرمزية للمستخدم" msgstr "التعامل مع تحميل الصورة الرمزية للمستخدم"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "تأكيد إعادة تعيين كلمة مرور المستخدم" msgstr "تأكيد إعادة تعيين كلمة مرور المستخدم"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "كلمات المرور غير متطابقة" msgstr "كلمات المرور غير متطابقة"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "تنشيط حساب مستخدم" msgstr "تنشيط حساب مستخدم"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "رابط التفعيل غير صالح أو أن الحساب مفعل بالفعل" msgstr "رابط التفعيل غير صالح أو أن الحساب مفعل بالفعل"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا." msgstr "معرّف المستخدم الذي تم ترميزه بـ b64 الذي أحال المستخدم الجديد إلينا."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "كلمة المرور ضعيفة جداً"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} غير موجود: {uuid}" msgstr "{name} غير موجود: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "بريد إلكتروني مشوه" msgstr "بريد إلكتروني مشوه"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "رقم هاتف مشوّه: {phone_number}" msgstr "رقم هاتف مشوّه: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "تنسيق السمة غير صالح: {attribute_pair}" msgstr "تنسيق السمة غير صالح: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "رابط التفعيل غير صالح!" msgstr "رابط التفعيل غير صالح!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "تم تفعيل الحساب بالفعل..." msgstr "تم تفعيل الحساب بالفعل..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "حدث خطأ ما: {e!s}" msgstr "حدث خطأ ما: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "الرمز غير صالح!" msgstr "الرمز غير صالح!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "المنتجات التي تم عرضها مؤخراً" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"المنتجات التي شاهدها هذا المستخدم مؤخرًا (بحد أقصى 48)، بترتيب زمني عكسي."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "المجموعات" msgstr "المجموعات"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "قائمة الرغبات" msgstr "قائمة الرغبات"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "الصورة الرمزية" msgstr "الصورة الرمزية"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "يمكن استخدام السمات لتخزين البيانات المخصصة" msgstr "يمكن استخدام السمات لتخزين البيانات المخصصة"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "اللغة هي واحدة من {LANGUAGES} مع {LANGUAGE_CODE} الافتراضي" msgstr "اللغة هي واحدة من {LANGUAGES} مع {LANGUAGE_CODE} الافتراضي"
@ -270,23 +277,23 @@ msgstr "الرمز المميز المدرج في القائمة السوداء"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "الرموز المميزة المدرجة في القائمة السوداء" msgstr "الرموز المميزة المدرجة في القائمة السوداء"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "لم يتم العثور على حساب نشط" msgstr "لم يتم العثور على حساب نشط"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "تم إدراج الرمز المميز في القائمة السوداء" msgstr "تم إدراج الرمز المميز في القائمة السوداء"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "رمز غير صالح" msgstr "رمز غير صالح"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "لا توجد مطالبة معرف المستخدم في الرمز المميز" msgstr "لا توجد مطالبة معرف المستخدم في الرمز المميز"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "المستخدم غير موجود" msgstr "المستخدم غير موجود"
@ -416,6 +423,3 @@ msgstr "تمت إعادة تعيين كلمة المرور بنجاح!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "لقد قمت بتفعيل الحساب بالفعل..." msgstr "لقد قمت بتفعيل الحساب بالفعل..."
#~ msgid "recently viwed"
#~ msgstr "تمت مشاهدته مؤخراً"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: cs-CZ\n" "Language: cs-cz\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Bilance" msgstr "Bilance"
@ -22,7 +22,7 @@ msgstr "Bilance"
msgid "order" msgid "order"
msgstr "Objednávka" msgstr "Objednávka"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Objednávky" msgstr "Objednávky"
@ -30,7 +30,7 @@ msgstr "Objednávky"
msgid "personal info" msgid "personal info"
msgstr "Osobní informace" msgstr "Osobní informace"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Oprávnění" msgstr "Oprávnění"
@ -94,88 +94,96 @@ msgstr "Odstranění uživatele"
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "Obnovení hesla uživatele odesláním e-mailu s obnovením hesla." msgstr "Obnovení hesla uživatele odesláním e-mailu s obnovením hesla."
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Zpracování nahrávání avataru pro uživatele" msgstr "Zpracování nahrávání avataru pro uživatele"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Potvrzení obnovení hesla uživatele" msgstr "Potvrzení obnovení hesla uživatele"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Hesla se neshodují" msgstr "Hesla se neshodují"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Aktivace účtu uživatele" msgstr "Aktivace účtu uživatele"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Aktivační odkaz je neplatný nebo je účet již aktivován" msgstr "Aktivační odkaz je neplatný nebo je účet již aktivován"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "Uuid uživatele s kódem b64, který nám nového uživatele doporučil." msgstr "Uuid uživatele s kódem b64, který nám nového uživatele doporučil."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Heslo je příliš slabé"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} neexistuje: {uuid}" msgstr "{name} neexistuje: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Špatně formulovaný e-mail" msgstr "Špatně formulovaný e-mail"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Chybně zadané telefonní číslo: {phone_number}" msgstr "Chybně zadané telefonní číslo: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Nesprávný formát atributu: {attribute_pair}" msgstr "Nesprávný formát atributu: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Aktivační odkaz je neplatný!" msgstr "Aktivační odkaz je neplatný!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Účet byl již aktivován..." msgstr "Účet byl již aktivován..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Něco se pokazilo: {e!s}" msgstr "Něco se pokazilo: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token je neplatný!" msgstr "Token je neplatný!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Nedávno zobrazené produkty" "the products this user has viewed most recently (max 48), in "
"reversechronological 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:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Skupiny" msgstr "Skupiny"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Seznam přání" msgstr "Seznam přání"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Atributy lze použít k uložení vlastních dat." msgstr "Atributy lze použít k uložení vlastních dat."
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Jazyk je jeden z {LANGUAGES} s výchozím {LANGUAGE_CODE}." msgstr "Jazyk je jeden z {LANGUAGES} s výchozím {LANGUAGE_CODE}."
@ -268,23 +276,23 @@ msgstr "Token na černé listině"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Tokeny na černé listině" msgstr "Tokeny na černé listině"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Nebyl nalezen žádný aktivní účet" msgstr "Nebyl nalezen žádný aktivní účet"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token na černé listině" msgstr "Token na černé listině"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Neplatný token" msgstr "Neplatný token"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "V tokenu není deklarace uuid uživatele" msgstr "V tokenu není deklarace uuid uživatele"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "Uživatel neexistuje" msgstr "Uživatel neexistuje"
@ -368,8 +376,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující " "Pokud výše uvedené tlačítko nefunguje, zkopírujte a vložte následující adresu URL\n"
"adresu URL\n"
" do webového prohlížeče:" " do webového prohlížeče:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -415,6 +422,3 @@ msgstr "Heslo bylo úspěšně resetováno!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Účet jste již aktivovali..." msgstr "Účet jste již aktivovali..."
#~ msgid "recently viwed"
#~ msgstr "Nedávno zobrazené"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: da-DK\n" "Language: da-dk\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Balance" msgstr "Balance"
@ -22,7 +22,7 @@ msgstr "Balance"
msgid "order" msgid "order"
msgstr "Bestil" msgstr "Bestil"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Bestillinger" msgstr "Bestillinger"
@ -30,7 +30,7 @@ msgstr "Bestillinger"
msgid "personal info" msgid "personal info"
msgstr "Personlig information" msgstr "Personlig information"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Tilladelser" msgstr "Tilladelser"
@ -96,88 +96,96 @@ msgstr ""
"Nulstil en brugers adgangskode ved at sende en e-mail om nulstilling af " "Nulstil en brugers adgangskode ved at sende en e-mail om nulstilling af "
"adgangskode" "adgangskode"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Håndter upload af avatar for en bruger" msgstr "Håndter upload af avatar for en bruger"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Bekræft nulstilling af en brugers adgangskode" msgstr "Bekræft nulstilling af en brugers adgangskode"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Adgangskoderne stemmer ikke overens" msgstr "Adgangskoderne stemmer ikke overens"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Aktivér en brugers konto" msgstr "Aktivér en brugers konto"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Aktiveringslinket er ugyldigt, eller kontoen er allerede aktiveret" msgstr "Aktiveringslinket er ugyldigt, eller kontoen er allerede aktiveret"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "Brugerens b64-kodede uuid, som henviste den nye bruger til os." msgstr "Brugerens b64-kodede uuid, som henviste den nye bruger til os."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Adgangskoden er for svag"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} findes ikke: {uuid}" msgstr "{name} findes ikke: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Misdannet e-mail" msgstr "Misdannet e-mail"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Misdannet telefonnummer: {phone_number}." msgstr "Misdannet telefonnummer: {phone_number}."
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Ugyldigt attributformat: {attribute_pair}" msgstr "Ugyldigt attributformat: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Aktiveringslinket er ugyldigt!" msgstr "Aktiveringslinket er ugyldigt!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Kontoen er allerede aktiveret..." msgstr "Kontoen er allerede aktiveret..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Noget gik galt: {e!s}" msgstr "Noget gik galt: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token er ugyldig!" msgstr "Token er ugyldig!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Nyligt viste produkter" "the products this user has viewed most recently (max 48), in "
"reversechronological 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:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Grupper" msgstr "Grupper"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Ønskeliste" msgstr "Ønskeliste"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Attributter kan bruges til at gemme brugerdefinerede data" msgstr "Attributter kan bruges til at gemme brugerdefinerede data"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Sprog er et af {LANGUAGES} med standard {LANGUAGE_CODE}." msgstr "Sprog er et af {LANGUAGES} med standard {LANGUAGE_CODE}."
@ -270,23 +278,23 @@ msgstr "Sortlistet token"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Sortlistede tokens" msgstr "Sortlistede tokens"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Ingen aktiv konto fundet" msgstr "Ingen aktiv konto fundet"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token blacklistet" msgstr "Token blacklistet"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Ugyldigt token" msgstr "Ugyldigt token"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Ingen bruger-uuid-krav til stede i token" msgstr "Ingen bruger-uuid-krav til stede i token"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "Brugeren findes ikke" msgstr "Brugeren findes ikke"
@ -371,8 +379,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende " "Hvis ovenstående knap ikke virker, bedes du kopiere og indsætte følgende URL\n"
"URL\n"
" i din webbrowser:" " i din webbrowser:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -418,6 +425,3 @@ msgstr "Adgangskoden er blevet nulstillet med succes!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Du har allerede aktiveret kontoen..." msgstr "Du har allerede aktiveret kontoen..."
#~ msgid "recently viwed"
#~ msgstr "Set for nylig"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: de-DE\n" "Language: de-de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Waage" msgstr "Waage"
@ -22,7 +22,7 @@ msgstr "Waage"
msgid "order" msgid "order"
msgstr "Bestellung" msgstr "Bestellung"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Bestellungen" msgstr "Bestellungen"
@ -30,7 +30,7 @@ msgstr "Bestellungen"
msgid "personal info" msgid "personal info"
msgstr "Persönliche Informationen" msgstr "Persönliche Informationen"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Erlaubnisse" msgstr "Erlaubnisse"
@ -97,91 +97,99 @@ msgstr ""
"Zurücksetzen des Kennworts eines Benutzers durch Senden einer E-Mail zum " "Zurücksetzen des Kennworts eines Benutzers durch Senden einer E-Mail zum "
"Zurücksetzen des Kennworts" "Zurücksetzen des Kennworts"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Avatar-Upload für einen Benutzer verwalten" msgstr "Avatar-Upload für einen Benutzer verwalten"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Bestätigen Sie das Zurücksetzen des Passworts eines Benutzers" msgstr "Bestätigen Sie das Zurücksetzen des Passworts eines Benutzers"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Passwörter stimmen nicht überein" msgstr "Passwörter stimmen nicht überein"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Aktivieren eines Benutzerkontos" msgstr "Aktivieren eines Benutzerkontos"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Aktivierungslink ist ungültig oder Konto bereits aktiviert" msgstr "Aktivierungslink ist ungültig oder Konto bereits aktiviert"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
"Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen " "Die b64-kodierte uuid des Benutzers, der den neuen Benutzer an uns verwiesen"
"hat." " hat."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Das Passwort ist zu schwach"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} existiert nicht: {uuid}" msgstr "{name} existiert nicht: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Fehlerhafte E-Mail" msgstr "Fehlerhafte E-Mail"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Fehlerhafte Telefonnummer: {phone_number}" msgstr "Fehlerhafte Telefonnummer: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Ungültiges Attributformat: {attribute_pair}" msgstr "Ungültiges Attributformat: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Der Aktivierungslink ist ungültig!" msgstr "Der Aktivierungslink ist ungültig!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Das Konto wurde bereits aktiviert..." msgstr "Das Konto wurde bereits aktiviert..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Etwas ist schief gelaufen: {e!s}" msgstr "Etwas ist schief gelaufen: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token ist ungültig!" msgstr "Token ist ungültig!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Zuletzt angesehene Produkte" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"Die Produkte, die dieser Benutzer zuletzt angesehen hat (maximal 48), in "
"umgekehrter chronologischer Reihenfolge."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Gruppen" msgstr "Gruppen"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Wunschzettel" msgstr "Wunschzettel"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "" msgstr ""
"Attribute können verwendet werden, um benutzerdefinierte Daten zu speichern" "Attribute können verwendet werden, um benutzerdefinierte Daten zu speichern"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Sprache ist eine der {LANGUAGES} mit Standard {LANGUAGE_CODE}" msgstr "Sprache ist eine der {LANGUAGES} mit Standard {LANGUAGE_CODE}"
@ -274,23 +282,23 @@ msgstr "Token auf der schwarzen Liste"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Token auf der schwarzen Liste" msgstr "Token auf der schwarzen Liste"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Kein aktives Konto gefunden" msgstr "Kein aktives Konto gefunden"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token auf der schwarzen Liste" msgstr "Token auf der schwarzen Liste"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Ungültiges Token" msgstr "Ungültiges Token"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Kein Benutzer uuid-Anspruch im Token vorhanden" msgstr "Kein Benutzer uuid-Anspruch im Token vorhanden"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "Benutzer existiert nicht" msgstr "Benutzer existiert nicht"
@ -336,8 +344,8 @@ msgstr ""
#: vibes_auth/templates/user_reset_password_email.html:88 #: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email." msgid "if you did not send this request, please ignore this email."
msgstr "" msgstr ""
"Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-" "Wenn Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese "
"Mail." "E-Mail."
#: vibes_auth/templates/user_reset_password_email.html:89 #: vibes_auth/templates/user_reset_password_email.html:89
#, python-format #, python-format
@ -376,8 +384,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die " "Wenn die obige Schaltfläche nicht funktioniert, kopieren Sie bitte die folgende URL und fügen Sie sie in Ihren Browser ein\n"
"folgende URL und fügen Sie sie in Ihren Browser ein\n"
" in Ihren Webbrowser ein:" " in Ihren Webbrowser ein:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -423,6 +430,3 @@ msgstr "Das Passwort wurde erfolgreich zurückgesetzt!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Sie haben das Konto bereits aktiviert..." msgstr "Sie haben das Konto bereits aktiviert..."
#~ msgid "recently viwed"
#~ msgstr "Kürzlich gesehen"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -19,7 +19,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Balance" msgstr "Balance"
@ -27,7 +27,7 @@ msgstr "Balance"
msgid "order" msgid "order"
msgstr "Order" msgstr "Order"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Orders" msgstr "Orders"
@ -35,7 +35,7 @@ msgstr "Orders"
msgid "personal info" msgid "personal info"
msgstr "Personal Info" msgstr "Personal Info"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Permissions" msgstr "Permissions"
@ -99,88 +99,96 @@ msgstr "Delete a user"
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "Reset a user's password by sending a reset password email" msgstr "Reset a user's password by sending a reset password email"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Handle avatar upload for a user" msgstr "Handle avatar upload for a user"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Confirm a user's password reset" msgstr "Confirm a user's password reset"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Passwords do not match" msgstr "Passwords do not match"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Activate a user's account" msgstr "Activate a user's account"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Activation link is invalid or account already activated" msgstr "Activation link is invalid or account already activated"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "The user's b64-encoded uuid who referred the new user to us." msgstr "The user's b64-encoded uuid who referred the new user to us."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "The password is too weak"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} does not exist: {uuid}" msgstr "{name} does not exist: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Malformed email" msgstr "Malformed email"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Malformed phone number: {phone_number}" msgstr "Malformed phone number: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Invalid attribute format: {attribute_pair}" msgstr "Invalid attribute format: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Activation link is invalid!" msgstr "Activation link is invalid!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Account has been already activated..." msgstr "Account has been already activated..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Something went wrong: {e!s}" msgstr "Something went wrong: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token is invalid!" msgstr "Token is invalid!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Recently viewed products" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"The products this user has viewed most recently (max 48), in reverse-"
"chronological order."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Groups" msgstr "Groups"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Wishlist" msgstr "Wishlist"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Attributes may be used to store custom data" msgstr "Attributes may be used to store custom data"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
@ -273,23 +281,23 @@ msgstr "Blacklisted token"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Blacklisted tokens" msgstr "Blacklisted tokens"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "No active account found" msgstr "No active account found"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token blacklisted" msgstr "Token blacklisted"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Invalid token" msgstr "Invalid token"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "No user uuid claim present in token" msgstr "No user uuid claim present in token"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "User does not exist" msgstr "User does not exist"
@ -420,5 +428,8 @@ msgstr "Password has been reset successfully!"
msgid "account already activated!" msgid "account already activated!"
msgstr "You have already activated the account..." msgstr "You have already activated the account..."
#~ msgid "recently viewed products"
#~ msgstr "Recently viewed products"
#~ msgid "recently viwed" #~ msgid "recently viwed"
#~ msgstr "Recently viewed" #~ msgstr "Recently viewed"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: en-US\n" "Language: en-us\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Balance" msgstr "Balance"
@ -22,7 +22,7 @@ msgstr "Balance"
msgid "order" msgid "order"
msgstr "Order" msgstr "Order"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Orders" msgstr "Orders"
@ -30,7 +30,7 @@ msgstr "Orders"
msgid "personal info" msgid "personal info"
msgstr "Personal Info" msgstr "Personal Info"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Permissions" msgstr "Permissions"
@ -94,88 +94,96 @@ msgstr "Delete a user"
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "Reset a user's password by sending a reset password email" msgstr "Reset a user's password by sending a reset password email"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Handle avatar upload for a user" msgstr "Handle avatar upload for a user"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Confirm a user's password reset" msgstr "Confirm a user's password reset"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Passwords do not match" msgstr "Passwords do not match"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Activate a user's account" msgstr "Activate a user's account"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Activation link is invalid or account already activated" msgstr "Activation link is invalid or account already activated"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "The user's b64-encoded uuid who referred the new user to us." msgstr "The user's b64-encoded uuid who referred the new user to us."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "The password is too weak"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} does not exist: {uuid}" msgstr "{name} does not exist: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Malformed email" msgstr "Malformed email"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Malformed phone number: {phone_number}" msgstr "Malformed phone number: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Invalid attribute format: {attribute_pair}" msgstr "Invalid attribute format: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Activation link is invalid!" msgstr "Activation link is invalid!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Account has been already activated..." msgstr "Account has been already activated..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Something went wrong: {e!s}" msgstr "Something went wrong: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token is invalid!" msgstr "Token is invalid!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Recently viewed products" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"The products this user has viewed most recently (max 48), in reverse-"
"chronological order."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Groups" msgstr "Groups"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Wishlist" msgstr "Wishlist"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Attributes may be used to store custom data" msgstr "Attributes may be used to store custom data"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgstr "Language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
@ -268,23 +276,23 @@ msgstr "Blacklisted token"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Blacklisted tokens" msgstr "Blacklisted tokens"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "No active account found" msgstr "No active account found"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token blacklisted" msgstr "Token blacklisted"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Invalid token" msgstr "Invalid token"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "No user uuid claim present in token" msgstr "No user uuid claim present in token"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "User does not exist" msgstr "User does not exist"
@ -414,6 +422,3 @@ msgstr "Password has been reset successfully!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "You have already activated the account..." msgstr "You have already activated the account..."
#~ msgid "recently viwed"
#~ msgstr "Recently viewed"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: es-ES\n" "Language: es-es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Saldo" msgstr "Saldo"
@ -22,7 +22,7 @@ msgstr "Saldo"
msgid "order" msgid "order"
msgstr "Pida" msgstr "Pida"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Pedidos" msgstr "Pedidos"
@ -30,7 +30,7 @@ msgstr "Pedidos"
msgid "personal info" msgid "personal info"
msgstr "Información personal" msgstr "Información personal"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Permisos" msgstr "Permisos"
@ -96,89 +96,97 @@ msgstr ""
"Restablecer la contraseña de un usuario enviando un correo electrónico de " "Restablecer la contraseña de un usuario enviando un correo electrónico de "
"restablecimiento de contraseña" "restablecimiento de contraseña"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Gestionar la subida de avatares de un usuario" msgstr "Gestionar la subida de avatares de un usuario"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Confirmar el restablecimiento de la contraseña de un usuario" msgstr "Confirmar el restablecimiento de la contraseña de un usuario"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Las contraseñas no coinciden" msgstr "Las contraseñas no coinciden"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Activar la cuenta de un usuario" msgstr "Activar la cuenta de un usuario"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "El enlace de activación no es válido o la cuenta ya está activada" msgstr "El enlace de activación no es válido o la cuenta ya está activada"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
"El uuid codificado en b64 del usuario que nos ha remitido al nuevo usuario." "El uuid codificado en b64 del usuario que nos ha remitido al nuevo usuario."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "La contraseña es demasiado débil"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} no existe: {uuid}" msgstr "{name} no existe: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Correo electrónico malformado" msgstr "Correo electrónico malformado"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Número de teléfono malformado: {phone_number}" msgstr "Número de teléfono malformado: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Formato de atributo no válido: {attribute_pair}" msgstr "Formato de atributo no válido: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "El enlace de activación no es válido." msgstr "El enlace de activación no es válido."
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "La cuenta ya ha sido activada..." msgstr "La cuenta ya ha sido activada..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Algo salió mal: {e!s}." msgstr "Algo salió mal: {e!s}."
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "¡La ficha no es válida!" msgstr "¡La ficha no es válida!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Productos vistos recientemente" "the products this user has viewed most recently (max 48), in "
"reversechronological 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:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Grupos" msgstr "Grupos"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Lista de deseos" msgstr "Lista de deseos"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Los atributos pueden utilizarse para almacenar datos personalizados" msgstr "Los atributos pueden utilizarse para almacenar datos personalizados"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "El idioma es uno de los {LANGUAGES} con {LANGUAGE_CODE} por defecto." msgstr "El idioma es uno de los {LANGUAGES} con {LANGUAGE_CODE} por defecto."
@ -271,23 +279,23 @@ msgstr "Ficha en la lista negra"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Fichas en la lista negra" msgstr "Fichas en la lista negra"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "No se ha encontrado ninguna cuenta activa" msgstr "No se ha encontrado ninguna cuenta activa"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Ficha en la lista negra" msgstr "Ficha en la lista negra"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Token no válido" msgstr "Token no válido"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "No user uuid claim present in token" msgstr "No user uuid claim present in token"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "El usuario no existe" msgstr "El usuario no existe"
@ -417,6 +425,3 @@ msgstr "La contraseña se ha restablecido correctamente."
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Ya ha activado la cuenta..." msgstr "Ya ha activado la cuenta..."
#~ msgid "recently viwed"
#~ msgstr "Vistos recientemente"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: fr-FR\n" "Language: fr-fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Balance" msgstr "Balance"
@ -22,7 +22,7 @@ msgstr "Balance"
msgid "order" msgid "order"
msgstr "Commande" msgstr "Commande"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Commandes" msgstr "Commandes"
@ -30,7 +30,7 @@ msgstr "Commandes"
msgid "personal info" msgid "personal info"
msgstr "Informations personnelles" msgstr "Informations personnelles"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Permissions" msgstr "Permissions"
@ -98,91 +98,99 @@ msgstr ""
"Réinitialiser le mot de passe d'un utilisateur en envoyant un courriel de " "Réinitialiser le mot de passe d'un utilisateur en envoyant un courriel de "
"réinitialisation du mot de passe" "réinitialisation du mot de passe"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Gérer le téléchargement d'un avatar pour un utilisateur" msgstr "Gérer le téléchargement d'un avatar pour un utilisateur"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Confirmer la réinitialisation du mot de passe d'un utilisateur" msgstr "Confirmer la réinitialisation du mot de passe d'un utilisateur"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Les mots de passe ne correspondent pas" msgstr "Les mots de passe ne correspondent pas"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Activer le compte d'un utilisateur" msgstr "Activer le compte d'un utilisateur"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Le lien d'activation n'est pas valide ou le compte est déjà activé" msgstr "Le lien d'activation n'est pas valide ou le compte est déjà activé"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
"L'uuid b64-encodé de l'utilisateur qui nous a recommandé le nouvel " "L'uuid b64-encodé de l'utilisateur qui nous a recommandé le nouvel "
"utilisateur." "utilisateur."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Le mot de passe est trop faible"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} n'existe pas : {uuid}" msgstr "{name} n'existe pas : {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Courriel malformé" msgstr "Courriel malformé"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Numéro de téléphone malformé : {phone_number}" msgstr "Numéro de téléphone malformé : {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Format d'attribut non valide : {attribute_pair}" msgstr "Format d'attribut non valide : {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Le lien d'activation n'est pas valide !" msgstr "Le lien d'activation n'est pas valide !"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Le compte a déjà été activé..." msgstr "Le compte a déjà été activé..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Quelque chose a mal tourné : {e!s}" msgstr "Quelque chose a mal tourné : {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Le jeton n'est pas valide !" msgstr "Le jeton n'est pas valide !"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Produits récemment consultés" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"Les produits que cet utilisateur a consultés le plus récemment (max 48), par"
" ordre chronologique inverse."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Groupes" msgstr "Groupes"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Liste de souhaits" msgstr "Liste de souhaits"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "" msgstr ""
"Les attributs peuvent être utilisés pour stocker des données personnalisées." "Les attributs peuvent être utilisés pour stocker des données personnalisées."
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "" msgstr ""
@ -277,23 +285,24 @@ msgstr "Jeton sur liste noire"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Jetons sur liste noire" msgstr "Jetons sur liste noire"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Aucun compte actif trouvé" msgstr "Aucun compte actif trouvé"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token sur liste noire" msgstr "Token sur liste noire"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Jeton non valide" msgstr "Jeton non valide"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton" msgstr ""
"Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "L'utilisateur n'existe pas" msgstr "L'utilisateur n'existe pas"
@ -339,7 +348,8 @@ msgstr ""
#: vibes_auth/templates/user_reset_password_email.html:88 #: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email." msgid "if you did not send this request, please ignore this email."
msgstr "Si vous n'avez pas envoyé cette demande, veuillez ignorer ce courriel." msgstr ""
"Si vous n'avez pas envoyé cette demande, veuillez ignorer ce courriel."
#: vibes_auth/templates/user_reset_password_email.html:89 #: vibes_auth/templates/user_reset_password_email.html:89
#, python-format #, python-format
@ -362,8 +372,8 @@ msgid ""
"thank you for signing up for %(project_name)s. please activate your account " "thank you for signing up for %(project_name)s. please activate your account "
"by clicking the button below:" "by clicking the button below:"
msgstr "" msgstr ""
"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte " "Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte"
"en cliquant sur le bouton ci-dessous :" " en cliquant sur le bouton ci-dessous :"
#: vibes_auth/templates/user_verification_email.html:95 #: vibes_auth/templates/user_verification_email.html:95
msgid "" msgid ""
@ -378,8 +388,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL " "Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL suivante\n"
"suivante\n"
" suivante dans votre navigateur web :" " suivante dans votre navigateur web :"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -425,6 +434,3 @@ msgstr "Le mot de passe a été réinitialisé avec succès !"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Vous avez déjà activé le compte..." msgstr "Vous avez déjà activé le compte..."
#~ msgid "recently viwed"
#~ msgstr "Récemment consultés"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "" msgstr ""
@ -26,7 +26,7 @@ msgstr ""
msgid "order" msgid "order"
msgstr "" msgstr ""
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "" msgstr ""
@ -34,7 +34,7 @@ msgstr ""
msgid "personal info" msgid "personal info"
msgstr "" msgstr ""
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "" msgstr ""
@ -98,88 +98,94 @@ msgstr ""
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr ""
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
"the products this user has viewed most recently (max 48), in reverse"
"chronological order"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "" msgstr ""
@ -272,23 +278,23 @@ msgstr ""
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "" msgstr ""

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: it-IT\n" "Language: it-it\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Equilibrio" msgstr "Equilibrio"
@ -22,7 +22,7 @@ msgstr "Equilibrio"
msgid "order" msgid "order"
msgstr "Ordine" msgstr "Ordine"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Ordini" msgstr "Ordini"
@ -30,7 +30,7 @@ msgstr "Ordini"
msgid "personal info" msgid "personal info"
msgstr "Informazioni personali" msgstr "Informazioni personali"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Permessi" msgstr "Permessi"
@ -97,89 +97,97 @@ msgstr ""
"Reimpostare la password di un utente inviando un'e-mail di reimpostazione " "Reimpostare la password di un utente inviando un'e-mail di reimpostazione "
"della password" "della password"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Gestire il caricamento dell'avatar per un utente" msgstr "Gestire il caricamento dell'avatar per un utente"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Confermare la reimpostazione della password di un utente" msgstr "Confermare la reimpostazione della password di un utente"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Le password non corrispondono" msgstr "Le password non corrispondono"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Attivare l'account di un utente" msgstr "Attivare l'account di un utente"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Il link di attivazione non è valido o l'account è già stato attivato." msgstr "Il link di attivazione non è valido o l'account è già stato attivato."
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "L'uuid b64-encoded dell'utente che ci ha segnalato il nuovo utente." msgstr "L'uuid b64-encoded dell'utente che ci ha segnalato il nuovo utente."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "La password è troppo debole"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} non esiste: {uuid}" msgstr "{name} non esiste: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Email malformata" msgstr "Email malformata"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Numero di telefono malformato: {phone_number}" msgstr "Numero di telefono malformato: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Formato attributo non valido: {attribute_pair}" msgstr "Formato attributo non valido: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Il link di attivazione non è valido!" msgstr "Il link di attivazione non è valido!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "L'account è già stato attivato..." msgstr "L'account è già stato attivato..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Qualcosa è andato storto: {e!s}" msgstr "Qualcosa è andato storto: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Il gettone non è valido!" msgstr "Il gettone non è valido!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Prodotti visti di recente" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"I prodotti che questo utente ha visualizzato più di recente (max 48), in "
"ordine cronologico inverso."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Gruppi" msgstr "Gruppi"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Lista dei desideri" msgstr "Lista dei desideri"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "" msgstr ""
"Gli attributi possono essere utilizzati per memorizzare dati personalizzati" "Gli attributi possono essere utilizzati per memorizzare dati personalizzati"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "" msgstr ""
@ -273,23 +281,23 @@ msgstr "Token in lista nera"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Gettoni nella lista nera" msgstr "Gettoni nella lista nera"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Nessun conto attivo trovato" msgstr "Nessun conto attivo trovato"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token nella lista nera" msgstr "Token nella lista nera"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Token non valido" msgstr "Token non valido"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Nessuna richiesta di uuid utente presente nel token" msgstr "Nessuna richiesta di uuid utente presente nel token"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "L'utente non esiste" msgstr "L'utente non esiste"
@ -419,6 +427,3 @@ msgstr "La password è stata reimpostata con successo!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Avete già attivato l'account..." msgstr "Avete già attivato l'account..."
#~ msgid "recently viwed"
#~ msgstr "Visti di recente"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: ja-JP\n" "Language: ja-jp\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "バランス" msgstr "バランス"
@ -22,7 +22,7 @@ msgstr "バランス"
msgid "order" msgid "order"
msgstr "オーダー" msgstr "オーダー"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "受注状況" msgstr "受注状況"
@ -30,7 +30,7 @@ msgstr "受注状況"
msgid "personal info" msgid "personal info"
msgstr "個人情報" msgstr "個人情報"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "アクセス許可" msgstr "アクセス許可"
@ -94,90 +94,94 @@ msgstr "ユーザーを削除する"
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "パスワード再設定メールを送信して、ユーザーのパスワードを再設定する。" msgstr "パスワード再設定メールを送信して、ユーザーのパスワードを再設定する。"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "ユーザーのアバターアップロードを処理する" msgstr "ユーザーのアバターアップロードを処理する"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "ユーザーのパスワード・リセットを確認する" msgstr "ユーザーのパスワード・リセットを確認する"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "パスワードが一致しない" msgstr "パスワードが一致しない"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "ユーザーアカウントの有効化" msgstr "ユーザーアカウントの有効化"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "" msgstr "アクティベーションリンクが無効であるか、アカウントがすでにアクティベーションされています。"
"アクティベーションリンクが無効であるか、アカウントがすでにアクティベーション"
"されています。"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "新規ユーザーを紹介したユーザーのb64エンコードされたuuid。" msgstr "新規ユーザーを紹介したユーザーのb64エンコードされたuuid。"
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "パスワードが弱すぎる"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name}が存在しません:{uuid}" msgstr "{name}が存在しません:{uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "不正な電子メール" msgstr "不正な電子メール"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "不正な電話番号:{phone_number}。" msgstr "不正な電話番号:{phone_number}。"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "無効な属性形式です:{attribute_pair}。" msgstr "無効な属性形式です:{attribute_pair}。"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "アクティベーションリンクが無効です!" msgstr "アクティベーションリンクが無効です!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "アカウントはすでに有効になっています..." msgstr "アカウントはすでに有効になっています..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "何かが間違っていた:{e!s}" msgstr "何かが間違っていた:{e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "トークンが無効です!" msgstr "トークンが無効です!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "最近見た製品" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr "このユーザーが最近閲覧した商品最大48件を逆順に表示します。"
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "グループ" msgstr "グループ"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "ウィッシュリスト" msgstr "ウィッシュリスト"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "アバター" msgstr "アバター"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "属性は、カスタム・データを保存するために使用することができる。" msgstr "属性は、カスタム・データを保存するために使用することができる。"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "言語は{LANGUAGES}のいずれかで、デフォルトは{LANGUAGE_CODE}です。" msgstr "言語は{LANGUAGES}のいずれかで、デフォルトは{LANGUAGE_CODE}です。"
@ -270,23 +274,23 @@ msgstr "ブラックリストトークン"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "ブラックリストに載ったトークン" msgstr "ブラックリストに載ったトークン"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "アクティブなアカウントが見つかりません" msgstr "アクティブなアカウントが見つかりません"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "トークンのブラックリスト入り" msgstr "トークンのブラックリスト入り"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "無効なトークン" msgstr "無効なトークン"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "トークンにユーザー uuid クレームが存在しない" msgstr "トークンにユーザー uuid クレームが存在しない"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "ユーザーが存在しない" msgstr "ユーザーが存在しない"
@ -313,9 +317,7 @@ msgstr "こんにちは、%(user_first_name)sです、"
msgid "" msgid ""
"we have received a request to reset your password. please reset your " "we have received a request to reset your password. please reset your "
"password by clicking the button below:" "password by clicking the button below:"
msgstr "" msgstr "パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワードをリセットしてください:"
"パスワードの再設定依頼が届いております。以下のボタンをクリックして、パスワー"
"ドをリセットしてください:"
#: vibes_auth/templates/user_reset_password_email.html:84 #: vibes_auth/templates/user_reset_password_email.html:84
msgid "reset password" msgid "reset password"
@ -325,9 +327,7 @@ msgstr "パスワードのリセット"
msgid "" msgid ""
"if the button above does not work, please copy and paste the following URL " "if the button above does not work, please copy and paste the following URL "
"into your web browser:" "into your web browser:"
msgstr "" msgstr "上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付けてください"
"上記のボタンが機能しない場合は、以下のURLをコピーしてウェブブラウザに貼り付け"
"てください:"
#: vibes_auth/templates/user_reset_password_email.html:88 #: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email." msgid "if you did not send this request, please ignore this email."
@ -353,9 +353,7 @@ msgstr "アカウントの有効化"
msgid "" msgid ""
"thank you for signing up for %(project_name)s. please activate your account " "thank you for signing up for %(project_name)s. please activate your account "
"by clicking the button below:" "by clicking the button below:"
msgstr "" msgstr "%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックしてアカウントを有効にしてください"
"%(project_name)sにご登録いただきありがとうございます。下のボタンをクリックし"
"てアカウントを有効にしてください:"
#: vibes_auth/templates/user_verification_email.html:95 #: vibes_auth/templates/user_verification_email.html:95
msgid "" msgid ""
@ -370,8 +368,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けて" "上記のボタンが機能しない場合は、次のURLをコピーしてウェブブラウザに貼り付けてください。\n"
"ください。\n"
" をウェブブラウザに貼り付けてください:" " をウェブブラウザに貼り付けてください:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -402,9 +399,7 @@ msgstr "{config.PROJECT_NAME}。| パスワードのリセット"
msgid "" msgid ""
"invalid phone number format. the number must be entered in the format: " "invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed." "\"+999999999\". up to 15 digits allowed."
msgstr "" msgstr "電話番号の形式が無効です。電話番号は次の形式で入力してください:\"+999999999\".15桁まで入力可能です。"
"電話番号の形式が無効です。電話番号は次の形式で入力してください:"
"\"+999999999\".15桁まで入力可能です。"
#: vibes_auth/views.py:57 #: vibes_auth/views.py:57
msgid "the token is invalid" msgid "the token is invalid"
@ -417,6 +412,3 @@ msgstr "パスワードのリセットに成功しました!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "あなたはすでにアカウントを有効にしています..." msgstr "あなたはすでにアカウントを有効にしています..."
#~ msgid "recently viwed"
#~ msgstr "最近閲覧した記事"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "" msgstr ""
@ -26,7 +26,7 @@ msgstr ""
msgid "order" msgid "order"
msgstr "" msgstr ""
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "" msgstr ""
@ -34,7 +34,7 @@ msgstr ""
msgid "personal info" msgid "personal info"
msgstr "" msgstr ""
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "" msgstr ""
@ -98,88 +98,94 @@ msgstr ""
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "" msgstr ""
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr ""
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "" msgstr ""
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
"the products this user has viewed most recently (max 48), in reverse"
"chronological order"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "" msgstr ""
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "" msgstr ""
@ -272,23 +278,23 @@ msgstr ""
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "" msgstr ""
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "" msgstr ""

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: nl-NL\n" "Language: nl-nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Saldo" msgstr "Saldo"
@ -22,7 +22,7 @@ msgstr "Saldo"
msgid "order" msgid "order"
msgstr "Bestel" msgstr "Bestel"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Bestellingen" msgstr "Bestellingen"
@ -30,7 +30,7 @@ msgstr "Bestellingen"
msgid "personal info" msgid "personal info"
msgstr "Persoonlijke info" msgstr "Persoonlijke info"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Rechten" msgstr "Rechten"
@ -96,90 +96,98 @@ msgstr ""
"Het wachtwoord van een gebruiker opnieuw instellen door een e-mail met het " "Het wachtwoord van een gebruiker opnieuw instellen door een e-mail met het "
"wachtwoord opnieuw in te stellen" "wachtwoord opnieuw in te stellen"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Avatar uploaden voor een gebruiker afhandelen" msgstr "Avatar uploaden voor een gebruiker afhandelen"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Bevestig het resetten van het wachtwoord van een gebruiker" msgstr "Bevestig het resetten van het wachtwoord van een gebruiker"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Wachtwoorden komen niet overeen" msgstr "Wachtwoorden komen niet overeen"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Een gebruikersaccount activeren" msgstr "Een gebruikersaccount activeren"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Activeringslink is ongeldig of account is al geactiveerd" msgstr "Activeringslink is ongeldig of account is al geactiveerd"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
"De b64-gecodeerde uuid van de gebruiker die de nieuwe gebruiker naar ons " "De b64-gecodeerde uuid van de gebruiker die de nieuwe gebruiker naar ons "
"heeft doorverwezen." "heeft doorverwezen."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Het wachtwoord is te zwak"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} bestaat niet: {uuid}" msgstr "{name} bestaat niet: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Misvormde e-mail" msgstr "Misvormde e-mail"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Misvormd telefoonnummer: {phone_number}" msgstr "Misvormd telefoonnummer: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Ongeldig attribuutformaat: {attribute_pair}" msgstr "Ongeldig attribuutformaat: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Activeringslink is ongeldig!" msgstr "Activeringslink is ongeldig!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Account is al geactiveerd..." msgstr "Account is al geactiveerd..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Er ging iets mis: {e!s}" msgstr "Er ging iets mis: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token is invalid!" msgstr "Token is invalid!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Recent bekeken producten" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"De producten die deze gebruiker het laatst heeft bekeken (max 48), in "
"omgekeerd-chronologische volgorde."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Groepen" msgstr "Groepen"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Verlanglijst" msgstr "Verlanglijst"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Attributen kunnen worden gebruikt om aangepaste gegevens op te slaan" msgstr "Attributen kunnen worden gebruikt om aangepaste gegevens op te slaan"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Taal is een van de {LANGUAGES} met standaard {LANGUAGE_CODE}" msgstr "Taal is een van de {LANGUAGES} met standaard {LANGUAGE_CODE}"
@ -272,23 +280,23 @@ msgstr "Token op zwarte lijst"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Tokens op de zwarte lijst" msgstr "Tokens op de zwarte lijst"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Geen actieve account gevonden" msgstr "Geen actieve account gevonden"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token op zwarte lijst" msgstr "Token op zwarte lijst"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Invalid token" msgstr "Invalid token"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Geen gebruiker uuid claim aanwezig in token" msgstr "Geen gebruiker uuid claim aanwezig in token"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "Gebruiker bestaat niet" msgstr "Gebruiker bestaat niet"
@ -316,8 +324,8 @@ msgid ""
"we have received a request to reset your password. please reset your " "we have received a request to reset your password. please reset your "
"password by clicking the button below:" "password by clicking the button below:"
msgstr "" msgstr ""
"We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik " "We hebben een verzoek ontvangen om je wachtwoord opnieuw in te stellen. Klik"
"op de knop hieronder om je wachtwoord opnieuw in te stellen:" " op de knop hieronder om je wachtwoord opnieuw in te stellen:"
#: vibes_auth/templates/user_reset_password_email.html:84 #: vibes_auth/templates/user_reset_password_email.html:84
msgid "reset password" msgid "reset password"
@ -356,8 +364,8 @@ msgid ""
"thank you for signing up for %(project_name)s. please activate your account " "thank you for signing up for %(project_name)s. please activate your account "
"by clicking the button below:" "by clicking the button below:"
msgstr "" msgstr ""
"Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op " "Bedankt voor het aanmelden bij %(project_name)s. Activeer je account door op"
"de onderstaande knop te klikken:" " de onderstaande knop te klikken:"
#: vibes_auth/templates/user_verification_email.html:95 #: vibes_auth/templates/user_verification_email.html:95
msgid "" msgid ""
@ -418,6 +426,3 @@ msgstr "Wachtwoord is succesvol gereset!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Je hebt de account al geactiveerd..." msgstr "Je hebt de account al geactiveerd..."
#~ msgid "recently viwed"
#~ msgstr "Onlangs bekeken"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: pl-PL\n" "Language: pl-pl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Równowaga" msgstr "Równowaga"
@ -22,7 +22,7 @@ msgstr "Równowaga"
msgid "order" msgid "order"
msgstr "Zamówienie" msgstr "Zamówienie"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Zamówienia" msgstr "Zamówienia"
@ -30,7 +30,7 @@ msgstr "Zamówienia"
msgid "personal info" msgid "personal info"
msgstr "Informacje osobiste" msgstr "Informacje osobiste"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Uprawnienia" msgstr "Uprawnienia"
@ -52,7 +52,8 @@ msgstr "Uzyskanie pary tokenów"
#: vibes_auth/docs/drf/views.py:16 #: vibes_auth/docs/drf/views.py:16
msgid "obtain a token pair (refresh and access) for authentication." 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 #: vibes_auth/docs/drf/views.py:35
msgid "refresh a token pair" msgid "refresh a token pair"
@ -96,90 +97,98 @@ msgstr ""
"Zresetowanie hasła użytkownika poprzez wysłanie wiadomości e-mail " "Zresetowanie hasła użytkownika poprzez wysłanie wiadomości e-mail "
"resetującej hasło." "resetującej hasło."
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Obsługa przesyłania awatara dla użytkownika" msgstr "Obsługa przesyłania awatara dla użytkownika"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Potwierdzenie zresetowania hasła użytkownika" msgstr "Potwierdzenie zresetowania hasła użytkownika"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Hasła nie są zgodne" msgstr "Hasła nie są zgodne"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Aktywacja konta użytkownika" msgstr "Aktywacja konta użytkownika"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Link aktywacyjny jest nieprawidłowy lub konto zostało już aktywowane." msgstr "Link aktywacyjny jest nieprawidłowy lub konto zostało już aktywowane."
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
"Zakodowany w b64 identyfikator uuid użytkownika, który polecił nam nowego " "Zakodowany w b64 identyfikator uuid użytkownika, który polecił nam nowego "
"użytkownika." "użytkownika."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Hasło jest zbyt słabe"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} nie istnieje: {uuid}" msgstr "{name} nie istnieje: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Zniekształcona wiadomość e-mail" msgstr "Zniekształcona wiadomość e-mail"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Zniekształcony numer telefonu: {phone_number}" msgstr "Zniekształcony numer telefonu: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Nieprawidłowy format atrybutu: {attribute_pair}" msgstr "Nieprawidłowy format atrybutu: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Link aktywacyjny jest nieprawidłowy!" msgstr "Link aktywacyjny jest nieprawidłowy!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Konto zostało już aktywowane..." msgstr "Konto zostało już aktywowane..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Coś poszło nie tak: {e!s}" msgstr "Coś poszło nie tak: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token jest nieprawidłowy!" msgstr "Token jest nieprawidłowy!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Ostatnio oglądane produkty" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"Produkty ostatnio przeglądane przez tego użytkownika (maks. 48), w "
"kolejności odwrotnej do chronologicznej."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Grupy" msgstr "Grupy"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Lista życzeń" msgstr "Lista życzeń"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Awatar" msgstr "Awatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Atrybuty mogą być używane do przechowywania niestandardowych danych" msgstr "Atrybuty mogą być używane do przechowywania niestandardowych danych"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Język jest jednym z {LANGUAGES} z domyślnym {LANGUAGE_CODE}." msgstr "Język jest jednym z {LANGUAGES} z domyślnym {LANGUAGE_CODE}."
@ -272,23 +281,23 @@ msgstr "Token na czarnej liście"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Tokeny znajdujące się na czarnej liście" msgstr "Tokeny znajdujące się na czarnej liście"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Nie znaleziono aktywnego konta" msgstr "Nie znaleziono aktywnego konta"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token na czarnej liście" msgstr "Token na czarnej liście"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Nieprawidłowy token" msgstr "Nieprawidłowy token"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Brak oświadczenia uuid użytkownika w tokenie" msgstr "Brak oświadczenia uuid użytkownika w tokenie"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "Użytkownik nie istnieje" msgstr "Użytkownik nie istnieje"
@ -404,8 +413,8 @@ msgid ""
"invalid phone number format. the number must be entered in the format: " "invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed." "\"+999999999\". up to 15 digits allowed."
msgstr "" msgstr ""
"Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie: " "Nieprawidłowy format numeru telefonu. Numer musi być wprowadzony w formacie:"
"\"+999999999\". Dozwolone do 15 cyfr." " \"+999999999\". Dozwolone do 15 cyfr."
#: vibes_auth/views.py:57 #: vibes_auth/views.py:57
msgid "the token is invalid" msgid "the token is invalid"
@ -418,6 +427,3 @@ msgstr "Hasło zostało pomyślnie zresetowane!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Konto zostało już aktywowane..." msgstr "Konto zostało już aktywowane..."
#~ msgid "recently viwed"
#~ msgstr "Ostatnio oglądane"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: pt-BR\n" "Language: pt-br\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Equilíbrio" msgstr "Equilíbrio"
@ -22,7 +22,7 @@ msgstr "Equilíbrio"
msgid "order" msgid "order"
msgstr "Pedido" msgstr "Pedido"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Pedidos" msgstr "Pedidos"
@ -30,7 +30,7 @@ msgstr "Pedidos"
msgid "personal info" msgid "personal info"
msgstr "Informações pessoais" msgstr "Informações pessoais"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Permissões" msgstr "Permissões"
@ -95,88 +95,96 @@ msgid "reset a user's password by sending a reset password email"
msgstr "" msgstr ""
"Redefinir a senha de um usuário enviando um e-mail de redefinição de senha" "Redefinir a senha de um usuário enviando um e-mail de redefinição de senha"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Manipular o upload do avatar de um usuário" msgstr "Manipular o upload do avatar de um usuário"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Confirmar a redefinição de senha de um usuário" msgstr "Confirmar a redefinição de senha de um usuário"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "As senhas não correspondem" msgstr "As senhas não correspondem"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Ativar a conta de um usuário" msgstr "Ativar a conta de um usuário"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "O link de ativação é inválido ou a conta já está ativada" msgstr "O link de ativação é inválido ou a conta já está ativada"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "O uuid codificado em b64 do usuário que nos indicou o novo usuário." msgstr "O uuid codificado em b64 do usuário que nos indicou o novo usuário."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "A senha é muito fraca"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} não existe: {uuid}" msgstr "{name} não existe: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "E-mail malformado" msgstr "E-mail malformado"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Número de telefone malformado: {phone_number}" msgstr "Número de telefone malformado: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Formato de atributo inválido: {attribute_pair}" msgstr "Formato de atributo inválido: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "O link de ativação é inválido!" msgstr "O link de ativação é inválido!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "A conta já foi ativada..." msgstr "A conta já foi ativada..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Algo deu errado: {e!s}" msgstr "Algo deu errado: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "O token é inválido!" msgstr "O token é inválido!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Produtos visualizados recentemente" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"Os produtos que esse usuário visualizou mais recentemente (máximo de 48), em"
" ordem cronológica inversa."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Grupos" msgstr "Grupos"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Lista de desejos" msgstr "Lista de desejos"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Os atributos podem ser usados para armazenar dados personalizados" msgstr "Os atributos podem ser usados para armazenar dados personalizados"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "O idioma é um dos {LANGUAGES} com o padrão {LANGUAGE_CODE}" msgstr "O idioma é um dos {LANGUAGES} com o padrão {LANGUAGE_CODE}"
@ -269,23 +277,23 @@ msgstr "Token na lista negra"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Tokens na lista negra" msgstr "Tokens na lista negra"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Nenhuma conta ativa encontrada" msgstr "Nenhuma conta ativa encontrada"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token na lista negra" msgstr "Token na lista negra"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Token inválido" msgstr "Token inválido"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "Nenhuma reivindicação de uuid de usuário presente no token" msgstr "Nenhuma reivindicação de uuid de usuário presente no token"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "O usuário não existe" msgstr "O usuário não existe"
@ -325,8 +333,8 @@ msgid ""
"if the button above does not work, please copy and paste the following URL " "if the button above does not work, please copy and paste the following URL "
"into your web browser:" "into your web browser:"
msgstr "" msgstr ""
"Se o botão acima não funcionar, copie e cole o seguinte URL em seu navegador " "Se o botão acima não funcionar, copie e cole o seguinte URL em seu navegador"
"da Web:" " da Web:"
#: vibes_auth/templates/user_reset_password_email.html:88 #: vibes_auth/templates/user_reset_password_email.html:88
msgid "if you did not send this request, please ignore this email." msgid "if you did not send this request, please ignore this email."
@ -415,6 +423,3 @@ msgstr "A senha foi redefinida com sucesso!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Você já ativou a conta..." msgstr "Você já ativou a conta..."
#~ msgid "recently viwed"
#~ msgstr "Visualizado recentemente"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: ro-RO\n" "Language: ro-ro\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Echilibru" msgstr "Echilibru"
@ -22,7 +22,7 @@ msgstr "Echilibru"
msgid "order" msgid "order"
msgstr "Comandă" msgstr "Comandă"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Ordine" msgstr "Ordine"
@ -30,7 +30,7 @@ msgstr "Ordine"
msgid "personal info" msgid "personal info"
msgstr "Informații personale" msgstr "Informații personale"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Permisiuni" msgstr "Permisiuni"
@ -97,89 +97,97 @@ msgstr ""
"Resetați parola unui utilizator prin trimiterea unui e-mail de resetare a " "Resetați parola unui utilizator prin trimiterea unui e-mail de resetare a "
"parolei" "parolei"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Gestionarea încărcării avatarului pentru un utilizator" msgstr "Gestionarea încărcării avatarului pentru un utilizator"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Confirmați resetarea parolei unui utilizator" msgstr "Confirmați resetarea parolei unui utilizator"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Parolele nu se potrivesc" msgstr "Parolele nu se potrivesc"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Activați contul unui utilizator" msgstr "Activați contul unui utilizator"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Linkul de activare este invalid sau contul este deja activat" msgstr "Linkul de activare este invalid sau contul este deja activat"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
"Uuid codificat b64 al utilizatorului care ne-a recomandat noul utilizator." "Uuid codificat b64 al utilizatorului care ne-a recomandat noul utilizator."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Parola este prea slabă"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} nu există: {uuid}" msgstr "{name} nu există: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "E-mail malformat" msgstr "E-mail malformat"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Număr de telefon malformat: {phone_number}" msgstr "Număr de telefon malformat: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Format de atribut invalid: {attribute_pair}" msgstr "Format de atribut invalid: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Linkul de activare este invalid!" msgstr "Linkul de activare este invalid!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Contul a fost deja activat..." msgstr "Contul a fost deja activat..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Ceva nu a mers bine: {e!s}" msgstr "Ceva nu a mers bine: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Token-ul nu este valabil!" msgstr "Token-ul nu este valabil!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Produse vizualizate recent" "the products this user has viewed most recently (max 48), in "
"reversechronological 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:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Grupuri" msgstr "Grupuri"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Lista dorințelor" msgstr "Lista dorințelor"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Avatar" msgstr "Avatar"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Atributele pot fi utilizate pentru a stoca date personalizate" msgstr "Atributele pot fi utilizate pentru a stoca date personalizate"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Limba este una dintre {LANGUAGES} cu {LANGUAGE_CODE} implicit" msgstr "Limba este una dintre {LANGUAGES} cu {LANGUAGE_CODE} implicit"
@ -272,23 +280,23 @@ msgstr "Token pe lista neagră"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Jetoane pe lista neagră" msgstr "Jetoane pe lista neagră"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Nu s-a găsit niciun cont activ" msgstr "Nu s-a găsit niciun cont activ"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Token pe lista neagră" msgstr "Token pe lista neagră"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Jeton invalid" msgstr "Jeton invalid"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "În jeton nu este prezentă nicio cerere uuid a utilizatorului" msgstr "În jeton nu este prezentă nicio cerere uuid a utilizatorului"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "Utilizatorul nu există" msgstr "Utilizatorul nu există"
@ -372,8 +380,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți " "Dacă butonul de mai sus nu funcționează, vă rugăm să copiați și să lipiți următoarea adresă URL\n"
"următoarea adresă URL\n"
" în browserul dvs. web:" " în browserul dvs. web:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -419,6 +426,3 @@ msgstr "Parola a fost resetată cu succes!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Ați activat deja contul..." msgstr "Ați activat deja contul..."
#~ msgid "recently viwed"
#~ msgstr "Văzut recent"

View file

@ -3,18 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: ru-RU\n" "Language: ru-ru\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "Баланс" msgstr "Баланс"
@ -22,7 +22,7 @@ msgstr "Баланс"
msgid "order" msgid "order"
msgstr "Заказать" msgstr "Заказать"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "Заказы" msgstr "Заказы"
@ -30,7 +30,7 @@ msgstr "Заказы"
msgid "personal info" msgid "personal info"
msgstr "Личная информация" msgstr "Личная информация"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "Разрешения" msgstr "Разрешения"
@ -96,90 +96,98 @@ msgstr ""
"Сброс пароля пользователя путем отправки электронного сообщения о сбросе " "Сброс пароля пользователя путем отправки электронного сообщения о сбросе "
"пароля" "пароля"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "Обработка загрузки аватара для пользователя" msgstr "Обработка загрузки аватара для пользователя"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "Подтверждение сброса пароля пользователя" msgstr "Подтверждение сброса пароля пользователя"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "Пароли не совпадают" msgstr "Пароли не совпадают"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "Активация учетной записи пользователя" msgstr "Активация учетной записи пользователя"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "Ссылка на активацию недействительна или аккаунт уже активирован" msgstr "Ссылка на активацию недействительна или аккаунт уже активирован"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "" msgstr ""
"b64-кодированный uuid пользователя, который направил к нам нового " "b64-кодированный uuid пользователя, который направил к нам нового "
"пользователя." "пользователя."
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "Пароль слишком слабый"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} не существует: {uuid}" msgstr "{name} не существует: {uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "Некорректное письмо" msgstr "Некорректное письмо"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "Некорректный номер телефона: {phone_number}" msgstr "Некорректный номер телефона: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "Недопустимый формат атрибута: {attribute_pair}" msgstr "Недопустимый формат атрибута: {attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "Ссылка на активацию недействительна!" msgstr "Ссылка на активацию недействительна!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "Аккаунт уже активирован..." msgstr "Аккаунт уже активирован..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "Что-то пошло не так: {e!s}" msgstr "Что-то пошло не так: {e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "Токен недействителен!" msgstr "Токен недействителен!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "Недавно просмотренные товары" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr ""
"Продукты, которые этот пользователь просматривал в последнее время (не более"
" 48), в обратном хронологическом порядке."
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "Группы" msgstr "Группы"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "Список желаний" msgstr "Список желаний"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "Аватар" msgstr "Аватар"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "Атрибуты могут использоваться для хранения пользовательских данных" msgstr "Атрибуты могут использоваться для хранения пользовательских данных"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "Язык - один из {LANGUAGES}, по умолчанию {LANGUAGE_CODE}." msgstr "Язык - один из {LANGUAGES}, по умолчанию {LANGUAGE_CODE}."
@ -272,23 +280,23 @@ msgstr "Токен в черном списке"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "Токены, внесенные в черный список" msgstr "Токены, внесенные в черный список"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "Активная учетная запись не найдена" msgstr "Активная учетная запись не найдена"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "Токен занесен в черный список" msgstr "Токен занесен в черный список"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "Неверный токен" msgstr "Неверный токен"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "В токене отсутствует утверждение uuid пользователя" msgstr "В токене отсутствует утверждение uuid пользователя"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "Пользователь не существует" msgstr "Пользователь не существует"
@ -373,8 +381,7 @@ msgid ""
"if the button above does not work, please copy and paste the following URL\n" "if the button above does not work, please copy and paste the following URL\n"
" into your web browser:" " into your web browser:"
msgstr "" msgstr ""
"Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий " "Если кнопка выше не работает, пожалуйста, скопируйте и вставьте следующий URL-адрес\n"
"URL-адрес\n"
" в свой веб-браузер:" " в свой веб-браузер:"
#: vibes_auth/templates/user_verification_email.html:101 #: vibes_auth/templates/user_verification_email.html:101
@ -420,6 +427,3 @@ msgstr "Пароль был успешно сброшен!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "Вы уже активировали учетную запись..." msgstr "Вы уже активировали учетную запись..."
#~ msgid "recently viwed"
#~ msgstr "Недавно просмотренные"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-20 06:26+0100\n" "POT-Creation-Date: 2025-05-27 13:42+0100\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -14,7 +14,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vibes_auth/admin.py:36 vibes_auth/admin.py:37 #: vibes_auth/admin.py:36 vibes_auth/admin.py:37
#: vibes_auth/graphene/object_types.py:35 #: vibes_auth/graphene/object_types.py:45
msgid "balance" msgid "balance"
msgstr "平衡" msgstr "平衡"
@ -22,7 +22,7 @@ msgstr "平衡"
msgid "order" msgid "order"
msgstr "订购" msgstr "订购"
#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:33 #: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:43
msgid "orders" msgid "orders"
msgstr "订单" msgstr "订单"
@ -30,7 +30,7 @@ msgstr "订单"
msgid "personal info" msgid "personal info"
msgstr "个人信息" msgstr "个人信息"
#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:32 #: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:42
msgid "permissions" msgid "permissions"
msgstr "权限" msgstr "权限"
@ -94,88 +94,94 @@ msgstr "删除用户"
msgid "reset a user's password by sending a reset password email" msgid "reset a user's password by sending a reset password email"
msgstr "通过发送重置密码电子邮件重置用户密码" msgstr "通过发送重置密码电子邮件重置用户密码"
#: vibes_auth/docs/drf/viewsets.py:40 #: vibes_auth/docs/drf/viewsets.py:37
msgid "handle avatar upload for a user" msgid "handle avatar upload for a user"
msgstr "处理用户的头像上传" msgstr "处理用户的头像上传"
#: vibes_auth/docs/drf/viewsets.py:49 #: vibes_auth/docs/drf/viewsets.py:46
msgid "confirm a user's password reset" msgid "confirm a user's password reset"
msgstr "确认用户密码重置" msgstr "确认用户密码重置"
#: vibes_auth/docs/drf/viewsets.py:53 vibes_auth/graphene/mutations.py:305 #: vibes_auth/docs/drf/viewsets.py:50 vibes_auth/graphene/mutations.py:306
#: vibes_auth/viewsets.py:72 #: vibes_auth/viewsets.py:72
msgid "passwords do not match" msgid "passwords do not match"
msgstr "密码不匹配" msgstr "密码不匹配"
#: vibes_auth/docs/drf/viewsets.py:58 #: vibes_auth/docs/drf/viewsets.py:55
msgid "activate a user's account" msgid "activate a user's account"
msgstr "激活用户帐户" msgstr "激活用户帐户"
#: vibes_auth/docs/drf/viewsets.py:62 #: vibes_auth/docs/drf/viewsets.py:59
msgid "activation link is invalid or account already activated" msgid "activation link is invalid or account already activated"
msgstr "激活链接无效或账户已激活" msgstr "激活链接无效或账户已激活"
#: vibes_auth/graphene/mutations.py:40 #: vibes_auth/graphene/mutations.py:41
msgid "the user's b64-encoded uuid who referred the new user to us." msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr "将新用户推荐给我们的用户的 b64-encoded uuid。" msgstr "将新用户推荐给我们的用户的 b64-encoded uuid。"
#: vibes_auth/graphene/mutations.py:103 #: vibes_auth/graphene/mutations.py:60 vibes_auth/graphene/mutations.py:125
msgid "password too weak"
msgstr "密码太弱"
#: vibes_auth/graphene/mutations.py:106
#, python-brace-format #, python-brace-format
msgid "{name} does not exist: {uuid}" msgid "{name} does not exist: {uuid}"
msgstr "{name} 不存在:{uuid}" msgstr "{name} 不存在:{uuid}"
#: vibes_auth/graphene/mutations.py:111 #: vibes_auth/graphene/mutations.py:114
msgid "malformed email" msgid "malformed email"
msgstr "畸形电子邮件" msgstr "畸形电子邮件"
#: vibes_auth/graphene/mutations.py:116 #: vibes_auth/graphene/mutations.py:119
#, python-brace-format #, python-brace-format
msgid "malformed phone number: {phone_number}" msgid "malformed phone number: {phone_number}"
msgstr "畸形电话号码: {phone_number}" msgstr "畸形电话号码: {phone_number}"
#: vibes_auth/graphene/mutations.py:134 #: vibes_auth/graphene/mutations.py:141
#, python-brace-format #, python-brace-format
msgid "Invalid attribute format: {attribute_pair}" msgid "Invalid attribute format: {attribute_pair}"
msgstr "属性格式无效:{attribute_pair}" msgstr "属性格式无效:{attribute_pair}"
#: vibes_auth/graphene/mutations.py:261 vibes_auth/viewsets.py:107 #: vibes_auth/graphene/mutations.py:262 vibes_auth/viewsets.py:107
#: vibes_auth/viewsets.py:123 #: vibes_auth/viewsets.py:123
msgid "activation link is invalid!" msgid "activation link is invalid!"
msgstr "激活链接无效!" msgstr "激活链接无效!"
#: vibes_auth/graphene/mutations.py:264 #: vibes_auth/graphene/mutations.py:265
msgid "account already activated..." msgid "account already activated..."
msgstr "帐户已激活..." msgstr "帐户已激活..."
#: vibes_auth/graphene/mutations.py:271 vibes_auth/graphene/mutations.py:321 #: vibes_auth/graphene/mutations.py:272 vibes_auth/graphene/mutations.py:322
msgid "something went wrong: {e!s}" msgid "something went wrong: {e!s}"
msgstr "出了问题:{e!s}" msgstr "出了问题:{e!s}"
#: vibes_auth/graphene/mutations.py:312 vibes_auth/viewsets.py:81 #: vibes_auth/graphene/mutations.py:313 vibes_auth/viewsets.py:81
msgid "token is invalid!" msgid "token is invalid!"
msgstr "令牌无效!" msgstr "令牌无效!"
#: vibes_auth/graphene/object_types.py:30 #: vibes_auth/graphene/object_types.py:39
msgid "recently viewed products" msgid ""
msgstr "最近浏览过的产品" "the products this user has viewed most recently (max 48), in "
"reversechronological order"
msgstr "该用户最近查看过的产品(最多 48 个),按倒序排列。"
#: vibes_auth/graphene/object_types.py:31 vibes_auth/models.py:108 #: vibes_auth/graphene/object_types.py:41 vibes_auth/models.py:108
msgid "groups" msgid "groups"
msgstr "组别" msgstr "组别"
#: vibes_auth/graphene/object_types.py:34 #: vibes_auth/graphene/object_types.py:44
msgid "wishlist" msgid "wishlist"
msgstr "愿望清单" msgstr "愿望清单"
#: vibes_auth/graphene/object_types.py:36 vibes_auth/models.py:49 #: vibes_auth/graphene/object_types.py:46 vibes_auth/models.py:49
msgid "avatar" msgid "avatar"
msgstr "阿凡达" msgstr "阿凡达"
#: vibes_auth/graphene/object_types.py:37 #: vibes_auth/graphene/object_types.py:47
msgid "attributes may be used to store custom data" msgid "attributes may be used to store custom data"
msgstr "属性可用于存储自定义数据" msgstr "属性可用于存储自定义数据"
#: vibes_auth/graphene/object_types.py:38 #: vibes_auth/graphene/object_types.py:48
#, python-brace-format #, python-brace-format
msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}" msgid "language is one of the {LANGUAGES} with default {LANGUAGE_CODE}"
msgstr "语言是{LANGUAGES}之一,默认为{LANGUAGE_CODE}。" msgstr "语言是{LANGUAGES}之一,默认为{LANGUAGE_CODE}。"
@ -268,23 +274,23 @@ msgstr "黑名单令牌"
msgid "blacklisted tokens" msgid "blacklisted tokens"
msgstr "黑名单令牌" msgstr "黑名单令牌"
#: vibes_auth/serializers.py:92 vibes_auth/serializers.py:114 #: vibes_auth/serializers.py:105 vibes_auth/serializers.py:127
msgid "no active account" msgid "no active account"
msgstr "未找到活动账户" msgstr "未找到活动账户"
#: vibes_auth/serializers.py:185 #: vibes_auth/serializers.py:198
msgid "token_blacklisted" msgid "token_blacklisted"
msgstr "令牌被列入黑名单" msgstr "令牌被列入黑名单"
#: vibes_auth/serializers.py:190 #: vibes_auth/serializers.py:203
msgid "invalid token" msgid "invalid token"
msgstr "无效令牌" msgstr "无效令牌"
#: vibes_auth/serializers.py:196 #: vibes_auth/serializers.py:209
msgid "no user uuid claim present in token" msgid "no user uuid claim present in token"
msgstr "令牌中没有用户 uuid 声明" msgstr "令牌中没有用户 uuid 声明"
#: vibes_auth/serializers.py:198 #: vibes_auth/serializers.py:211
msgid "user does not exist" msgid "user does not exist"
msgstr "用户不存在" msgstr "用户不存在"
@ -393,8 +399,7 @@ msgstr "{config.PROJECT_NAME} 重置密码| 重置密码"
msgid "" msgid ""
"invalid phone number format. the number must be entered in the format: " "invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed." "\"+999999999\". up to 15 digits allowed."
msgstr "" msgstr "电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
"电话号码格式无效。电话号码必须按格式输入:\"+999999999\".最多允许 15 位数字。"
#: vibes_auth/views.py:57 #: vibes_auth/views.py:57
msgid "the token is invalid" msgid "the token is invalid"
@ -407,6 +412,3 @@ msgstr "密码已重置成功!"
#: vibes_auth/viewsets.py:112 #: vibes_auth/viewsets.py:112
msgid "account already activated!" msgid "account already activated!"
msgstr "您已经激活了账户..." msgstr "您已经激活了账户..."
#~ msgid "recently viwed"
#~ msgstr "最近浏览"

View file

@ -87,7 +87,7 @@ class User(AbstractUser, NiceModel):
@property @property
def recently_viewed(self): def recently_viewed(self):
return [] or cache.get(f"user_{self.uuid}_rv") return cache.get(f"user_{self.uuid}_rv", [])
def check_token(self, token): def check_token(self, token):
return str(token) == str(self.activation_token) return str(token) == str(self.activation_token)

View file

@ -94,9 +94,8 @@ class UserSerializer(ModelSerializer):
Returns a list of serialized ProductSimpleSerializer representations Returns a list of serialized ProductSimpleSerializer representations
for the UUIDs in obj.recently_viewed. for the UUIDs in obj.recently_viewed.
""" """
queryset = Product.objects.filter(uuid__in=obj.recently_viewed) return ProductSimpleSerializer(Product.objects.filter(uuid__in=obj.recently_viewed, is_active=True),
serializer = ProductSimpleSerializer(queryset, many=True) many=True).data
return serializer.data
class TokenObtainSerializer(Serializer): class TokenObtainSerializer(Serializer):

View file

@ -1,4 +1,5 @@
import logging import logging
import traceback
from contextlib import suppress from contextlib import suppress
from secrets import compare_digest from secrets import compare_digest
@ -99,10 +100,12 @@ class UserViewSet(
@action(detail=False, methods=["post"]) @action(detail=False, methods=["post"])
@method_decorator(ratelimit(key="ip", rate="2/h" if not DEBUG else "888/h")) @method_decorator(ratelimit(key="ip", rate="2/h" if not DEBUG else "888/h"))
def activate(self, request): def activate(self, request):
detail = ""
activation_error = None
try: try:
uuid = urlsafe_base64_decode(request.data.get("uidb64")).decode() uuid = urlsafe_base64_decode(request.data.get("uidb64")).decode()
user = User.objects.get(pk=uuid) user = User.objects.nocache().get(pk=uuid)
if not user.check_token(request.data.get("token")): if not user.check_token(urlsafe_base64_decode(request.data.get("token")).decode()):
return Response( return Response(
{"error": _("activation link is invalid!")}, {"error": _("activation link is invalid!")},
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
@ -115,12 +118,15 @@ class UserViewSet(
user.is_active = True user.is_active = True
user.is_verified = True user.is_verified = True
user.save() user.save()
except (TypeError, ValueError, OverflowError, User.DoesNotExist) as e: except (TypeError, ValueError, OverflowError, User.DoesNotExist) as activation_error:
user = None user = None
logger.error(str(e)) activation_error = activation_error
detail = str(traceback.format_exc())
if user is None: if user is None:
if DEBUG:
raise Exception from activation_error
return Response( return Response(
{"error": _("activation link is invalid!")}, {"error": _("activation link is invalid!"), "detail": detail},
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
) )
else: else: