From 09fdc7a585910bda9cc71f4250711fb2d08f47a0 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Wed, 10 Dec 2025 21:51:41 +0300 Subject: [PATCH] Extra: 1) I18N --- .../blog/locale/ar_AR/LC_MESSAGES/django.po | 2 +- .../blog/locale/cs_CZ/LC_MESSAGES/django.po | 2 +- .../blog/locale/da_DK/LC_MESSAGES/django.po | 2 +- .../blog/locale/de_DE/LC_MESSAGES/django.po | 2 +- .../blog/locale/en_GB/LC_MESSAGES/django.po | 2 +- .../blog/locale/en_US/LC_MESSAGES/django.po | 2 +- .../blog/locale/es_ES/LC_MESSAGES/django.po | 2 +- .../blog/locale/fa_IR/LC_MESSAGES/django.po | 2 +- .../blog/locale/fr_FR/LC_MESSAGES/django.po | 2 +- .../blog/locale/he_IL/LC_MESSAGES/django.po | 2 +- .../blog/locale/hi_IN/LC_MESSAGES/django.po | 2 +- .../blog/locale/hr_HR/LC_MESSAGES/django.po | 2 +- .../blog/locale/id_ID/LC_MESSAGES/django.po | 2 +- .../blog/locale/it_IT/LC_MESSAGES/django.po | 2 +- .../blog/locale/ja_JP/LC_MESSAGES/django.po | 2 +- .../blog/locale/kk_KZ/LC_MESSAGES/django.po | 2 +- .../blog/locale/ko_KR/LC_MESSAGES/django.po | 2 +- .../blog/locale/nl_NL/LC_MESSAGES/django.po | 2 +- .../blog/locale/no_NO/LC_MESSAGES/django.po | 2 +- .../blog/locale/pl_PL/LC_MESSAGES/django.po | 2 +- .../blog/locale/pt_BR/LC_MESSAGES/django.po | 2 +- .../blog/locale/ro_RO/LC_MESSAGES/django.po | 2 +- .../blog/locale/ru_RU/LC_MESSAGES/django.po | 2 +- .../blog/locale/sv_SE/LC_MESSAGES/django.po | 2 +- .../blog/locale/th_TH/LC_MESSAGES/django.po | 2 +- .../blog/locale/tr_TR/LC_MESSAGES/django.po | 2 +- .../blog/locale/vi_VN/LC_MESSAGES/django.po | 2 +- .../blog/locale/zh_Hans/LC_MESSAGES/django.po | 2 +- .../core/locale/ar_AR/LC_MESSAGES/django.mo | Bin 108151 -> 108168 bytes .../core/locale/ar_AR/LC_MESSAGES/django.po | 417 +++++----- .../core/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 92583 -> 92631 bytes .../core/locale/cs_CZ/LC_MESSAGES/django.po | 371 ++++----- .../core/locale/da_DK/LC_MESSAGES/django.mo | Bin 90354 -> 90389 bytes .../core/locale/da_DK/LC_MESSAGES/django.po | 419 +++++----- .../core/locale/de_DE/LC_MESSAGES/django.mo | Bin 95595 -> 95649 bytes .../core/locale/de_DE/LC_MESSAGES/django.po | 523 ++++++------- .../core/locale/en_GB/LC_MESSAGES/django.mo | Bin 87054 -> 87078 bytes .../core/locale/en_GB/LC_MESSAGES/django.po | 384 +++++----- .../core/locale/en_US/LC_MESSAGES/django.mo | Bin 87045 -> 87069 bytes .../core/locale/en_US/LC_MESSAGES/django.po | 381 +++++----- .../core/locale/es_ES/LC_MESSAGES/django.mo | Bin 93568 -> 93612 bytes .../core/locale/es_ES/LC_MESSAGES/django.po | 438 +++++------ .../core/locale/fa_IR/LC_MESSAGES/django.po | 85 ++- .../core/locale/fr_FR/LC_MESSAGES/django.mo | Bin 96396 -> 96446 bytes .../core/locale/fr_FR/LC_MESSAGES/django.po | 489 ++++++------ .../core/locale/he_IL/LC_MESSAGES/django.mo | Bin 100755 -> 100766 bytes .../core/locale/he_IL/LC_MESSAGES/django.po | 375 ++++----- .../core/locale/hi_IN/LC_MESSAGES/django.po | 85 ++- .../core/locale/hr_HR/LC_MESSAGES/django.po | 85 ++- .../core/locale/id_ID/LC_MESSAGES/django.mo | Bin 90603 -> 90644 bytes .../core/locale/id_ID/LC_MESSAGES/django.po | 409 +++++----- .../core/locale/it_IT/LC_MESSAGES/django.mo | Bin 93881 -> 93928 bytes .../core/locale/it_IT/LC_MESSAGES/django.po | 494 ++++++------ .../core/locale/ja_JP/LC_MESSAGES/django.mo | Bin 99174 -> 99212 bytes .../core/locale/ja_JP/LC_MESSAGES/django.po | 695 +++++++---------- .../core/locale/kk_KZ/LC_MESSAGES/django.po | 85 ++- .../core/locale/ko_KR/LC_MESSAGES/django.mo | Bin 93749 -> 93799 bytes .../core/locale/ko_KR/LC_MESSAGES/django.po | 638 +++++++--------- .../core/locale/nl_NL/LC_MESSAGES/django.mo | Bin 93423 -> 93461 bytes .../core/locale/nl_NL/LC_MESSAGES/django.po | 428 +++++------ .../core/locale/no_NO/LC_MESSAGES/django.mo | Bin 90985 -> 91027 bytes .../core/locale/no_NO/LC_MESSAGES/django.po | 454 +++++------ .../core/locale/pl_PL/LC_MESSAGES/django.mo | Bin 92714 -> 92766 bytes .../core/locale/pl_PL/LC_MESSAGES/django.po | 373 ++++----- .../core/locale/pt_BR/LC_MESSAGES/django.mo | Bin 93309 -> 93350 bytes .../core/locale/pt_BR/LC_MESSAGES/django.po | 431 +++++------ .../core/locale/ro_RO/LC_MESSAGES/django.mo | Bin 95177 -> 95219 bytes .../core/locale/ro_RO/LC_MESSAGES/django.po | 440 +++++------ .../core/locale/ru_RU/LC_MESSAGES/django.mo | Bin 123230 -> 123296 bytes .../core/locale/ru_RU/LC_MESSAGES/django.po | 397 +++++----- .../core/locale/sv_SE/LC_MESSAGES/django.mo | Bin 91057 -> 91099 bytes .../core/locale/sv_SE/LC_MESSAGES/django.po | 421 +++++----- .../core/locale/th_TH/LC_MESSAGES/django.mo | Bin 147225 -> 147212 bytes .../core/locale/th_TH/LC_MESSAGES/django.po | 716 ++++++++++-------- .../core/locale/tr_TR/LC_MESSAGES/django.mo | Bin 93403 -> 93444 bytes .../core/locale/tr_TR/LC_MESSAGES/django.po | 428 +++++------ .../core/locale/vi_VN/LC_MESSAGES/django.mo | Bin 105141 -> 105260 bytes .../core/locale/vi_VN/LC_MESSAGES/django.po | 520 ++++++------- .../core/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 82042 -> 82054 bytes .../core/locale/zh_Hans/LC_MESSAGES/django.po | 472 +++++------- .../locale/ar_AR/LC_MESSAGES/django.po | 26 +- .../locale/cs_CZ/LC_MESSAGES/django.po | 27 +- .../locale/da_DK/LC_MESSAGES/django.po | 30 +- .../locale/de_DE/LC_MESSAGES/django.po | 36 +- .../locale/en_GB/LC_MESSAGES/django.po | 24 +- .../locale/en_US/LC_MESSAGES/django.po | 24 +- .../locale/es_ES/LC_MESSAGES/django.po | 35 +- .../locale/fa_IR/LC_MESSAGES/django.po | 2 +- .../locale/fr_FR/LC_MESSAGES/django.po | 37 +- .../locale/he_IL/LC_MESSAGES/django.po | 24 +- .../locale/hi_IN/LC_MESSAGES/django.po | 2 +- .../locale/hr_HR/LC_MESSAGES/django.po | 2 +- .../locale/id_ID/LC_MESSAGES/django.po | 31 +- .../locale/it_IT/LC_MESSAGES/django.po | 34 +- .../locale/ja_JP/LC_MESSAGES/django.po | 35 +- .../locale/kk_KZ/LC_MESSAGES/django.po | 2 +- .../locale/ko_KR/LC_MESSAGES/django.po | 35 +- .../locale/nl_NL/LC_MESSAGES/django.po | 27 +- .../locale/no_NO/LC_MESSAGES/django.po | 32 +- .../locale/pl_PL/LC_MESSAGES/django.po | 32 +- .../locale/pt_BR/LC_MESSAGES/django.po | 28 +- .../locale/ro_RO/LC_MESSAGES/django.po | 32 +- .../locale/ru_RU/LC_MESSAGES/django.po | 34 +- .../locale/sv_SE/LC_MESSAGES/django.po | 28 +- .../locale/th_TH/LC_MESSAGES/django.po | 36 +- .../locale/tr_TR/LC_MESSAGES/django.po | 27 +- .../locale/vi_VN/LC_MESSAGES/django.po | 26 +- .../locale/zh_Hans/LC_MESSAGES/django.po | 26 +- .../locale/ar_AR/LC_MESSAGES/django.po | 86 +-- .../locale/cs_CZ/LC_MESSAGES/django.po | 86 +-- .../locale/da_DK/LC_MESSAGES/django.po | 86 +-- .../locale/de_DE/LC_MESSAGES/django.po | 86 +-- .../locale/en_GB/LC_MESSAGES/django.po | 86 +-- .../locale/en_US/LC_MESSAGES/django.po | 86 +-- .../locale/es_ES/LC_MESSAGES/django.po | 86 +-- .../locale/fa_IR/LC_MESSAGES/django.po | 86 +-- .../locale/fr_FR/LC_MESSAGES/django.po | 86 +-- .../locale/he_IL/LC_MESSAGES/django.po | 86 +-- .../locale/hi_IN/LC_MESSAGES/django.po | 86 +-- .../locale/hr_HR/LC_MESSAGES/django.po | 86 +-- .../locale/id_ID/LC_MESSAGES/django.po | 86 +-- .../locale/it_IT/LC_MESSAGES/django.po | 86 +-- .../locale/ja_JP/LC_MESSAGES/django.po | 86 +-- .../locale/kk_KZ/LC_MESSAGES/django.po | 86 +-- .../locale/ko_KR/LC_MESSAGES/django.po | 86 +-- .../locale/nl_NL/LC_MESSAGES/django.po | 86 +-- .../locale/no_NO/LC_MESSAGES/django.po | 86 +-- .../locale/pl_PL/LC_MESSAGES/django.po | 86 +-- .../locale/pt_BR/LC_MESSAGES/django.po | 86 +-- .../locale/ro_RO/LC_MESSAGES/django.po | 86 +-- .../locale/ru_RU/LC_MESSAGES/django.po | 86 +-- .../locale/sv_SE/LC_MESSAGES/django.po | 86 +-- .../locale/th_TH/LC_MESSAGES/django.po | 86 +-- .../locale/tr_TR/LC_MESSAGES/django.po | 86 +-- .../locale/vi_VN/LC_MESSAGES/django.po | 86 +-- .../locale/zh_Hans/LC_MESSAGES/django.po | 86 +-- evibes/locale/ar_AR/LC_MESSAGES/django.mo | Bin 10512 -> 10547 bytes evibes/locale/ar_AR/LC_MESSAGES/django.po | 64 +- evibes/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 9003 -> 9041 bytes evibes/locale/cs_CZ/LC_MESSAGES/django.po | 64 +- evibes/locale/da_DK/LC_MESSAGES/django.mo | Bin 8694 -> 8733 bytes evibes/locale/da_DK/LC_MESSAGES/django.po | 64 +- evibes/locale/de_DE/LC_MESSAGES/django.mo | Bin 9160 -> 9198 bytes evibes/locale/de_DE/LC_MESSAGES/django.po | 64 +- evibes/locale/en_GB/LC_MESSAGES/django.mo | Bin 8551 -> 8583 bytes evibes/locale/en_GB/LC_MESSAGES/django.po | 64 +- evibes/locale/en_US/LC_MESSAGES/django.mo | Bin 8555 -> 8587 bytes evibes/locale/en_US/LC_MESSAGES/django.po | 64 +- evibes/locale/es_ES/LC_MESSAGES/django.mo | Bin 9211 -> 9244 bytes evibes/locale/es_ES/LC_MESSAGES/django.po | 64 +- evibes/locale/fa_IR/LC_MESSAGES/django.po | 64 +- evibes/locale/fr_FR/LC_MESSAGES/django.mo | Bin 9479 -> 9512 bytes evibes/locale/fr_FR/LC_MESSAGES/django.po | 64 +- evibes/locale/he_IL/LC_MESSAGES/django.mo | Bin 9834 -> 9874 bytes evibes/locale/he_IL/LC_MESSAGES/django.po | 64 +- evibes/locale/hi_IN/LC_MESSAGES/django.po | 64 +- evibes/locale/hr_HR/LC_MESSAGES/django.po | 64 +- evibes/locale/id_ID/LC_MESSAGES/django.mo | Bin 8736 -> 8771 bytes evibes/locale/id_ID/LC_MESSAGES/django.po | 64 +- evibes/locale/it_IT/LC_MESSAGES/django.mo | Bin 9123 -> 9159 bytes evibes/locale/it_IT/LC_MESSAGES/django.po | 64 +- evibes/locale/ja_JP/LC_MESSAGES/django.mo | Bin 9533 -> 9573 bytes evibes/locale/ja_JP/LC_MESSAGES/django.po | 64 +- evibes/locale/kk_KZ/LC_MESSAGES/django.po | 64 +- evibes/locale/ko_KR/LC_MESSAGES/django.mo | Bin 8937 -> 8975 bytes evibes/locale/ko_KR/LC_MESSAGES/django.po | 64 +- evibes/locale/nl_NL/LC_MESSAGES/django.mo | Bin 8835 -> 8869 bytes evibes/locale/nl_NL/LC_MESSAGES/django.po | 64 +- evibes/locale/no_NO/LC_MESSAGES/django.mo | Bin 8758 -> 8791 bytes evibes/locale/no_NO/LC_MESSAGES/django.po | 64 +- evibes/locale/pl_PL/LC_MESSAGES/django.mo | Bin 9077 -> 9113 bytes evibes/locale/pl_PL/LC_MESSAGES/django.po | 64 +- evibes/locale/pt_BR/LC_MESSAGES/django.mo | Bin 9150 -> 9183 bytes evibes/locale/pt_BR/LC_MESSAGES/django.po | 64 +- evibes/locale/ro_RO/LC_MESSAGES/django.mo | Bin 9201 -> 9237 bytes evibes/locale/ro_RO/LC_MESSAGES/django.po | 64 +- evibes/locale/ru_RU/LC_MESSAGES/django.mo | Bin 11607 -> 11647 bytes evibes/locale/ru_RU/LC_MESSAGES/django.po | 64 +- evibes/locale/sv_SE/LC_MESSAGES/django.mo | Bin 8842 -> 8880 bytes evibes/locale/sv_SE/LC_MESSAGES/django.po | 64 +- evibes/locale/th_TH/LC_MESSAGES/django.mo | Bin 13375 -> 13442 bytes evibes/locale/th_TH/LC_MESSAGES/django.po | 64 +- evibes/locale/tr_TR/LC_MESSAGES/django.mo | Bin 9181 -> 9217 bytes evibes/locale/tr_TR/LC_MESSAGES/django.po | 64 +- evibes/locale/vi_VN/LC_MESSAGES/django.mo | Bin 9748 -> 9793 bytes evibes/locale/vi_VN/LC_MESSAGES/django.po | 64 +- evibes/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 8268 -> 8305 bytes evibes/locale/zh_Hans/LC_MESSAGES/django.po | 64 +- 188 files changed, 8357 insertions(+), 8086 deletions(-) diff --git a/engine/blog/locale/ar_AR/LC_MESSAGES/django.po b/engine/blog/locale/ar_AR/LC_MESSAGES/django.po index 1537132c..2118c458 100644 --- a/engine/blog/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/blog/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po index 55653549..d5a4755b 100644 --- a/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/blog/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/da_DK/LC_MESSAGES/django.po b/engine/blog/locale/da_DK/LC_MESSAGES/django.po index 585cf553..c5fe897d 100644 --- a/engine/blog/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/blog/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/de_DE/LC_MESSAGES/django.po b/engine/blog/locale/de_DE/LC_MESSAGES/django.po index 4c60bfdb..e840da7e 100644 --- a/engine/blog/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/blog/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/en_GB/LC_MESSAGES/django.po b/engine/blog/locale/en_GB/LC_MESSAGES/django.po index 548a7ca4..50d13e54 100644 --- a/engine/blog/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/blog/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/en_US/LC_MESSAGES/django.po b/engine/blog/locale/en_US/LC_MESSAGES/django.po index 15805731..5db6bbf7 100644 --- a/engine/blog/locale/en_US/LC_MESSAGES/django.po +++ b/engine/blog/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/es_ES/LC_MESSAGES/django.po b/engine/blog/locale/es_ES/LC_MESSAGES/django.po index 36282eb1..977d1495 100644 --- a/engine/blog/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/blog/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/fa_IR/LC_MESSAGES/django.po b/engine/blog/locale/fa_IR/LC_MESSAGES/django.po index f283d226..1802ee62 100644 --- a/engine/blog/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/blog/locale/fa_IR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/fr_FR/LC_MESSAGES/django.po b/engine/blog/locale/fr_FR/LC_MESSAGES/django.po index 51963b16..3bf88282 100644 --- a/engine/blog/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/blog/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/he_IL/LC_MESSAGES/django.po b/engine/blog/locale/he_IL/LC_MESSAGES/django.po index 9c5def44..5bbf4749 100644 --- a/engine/blog/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/blog/locale/he_IL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/hi_IN/LC_MESSAGES/django.po b/engine/blog/locale/hi_IN/LC_MESSAGES/django.po index 745de938..87b24f87 100644 --- a/engine/blog/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/blog/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/hr_HR/LC_MESSAGES/django.po b/engine/blog/locale/hr_HR/LC_MESSAGES/django.po index f283d226..1802ee62 100644 --- a/engine/blog/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/blog/locale/hr_HR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/id_ID/LC_MESSAGES/django.po b/engine/blog/locale/id_ID/LC_MESSAGES/django.po index 012eec9c..d4a10394 100644 --- a/engine/blog/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/blog/locale/id_ID/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/it_IT/LC_MESSAGES/django.po b/engine/blog/locale/it_IT/LC_MESSAGES/django.po index e618f0cb..53de0228 100644 --- a/engine/blog/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/blog/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/ja_JP/LC_MESSAGES/django.po b/engine/blog/locale/ja_JP/LC_MESSAGES/django.po index f3ae8819..3d91f551 100644 --- a/engine/blog/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/blog/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po index 745de938..87b24f87 100644 --- a/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/blog/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/ko_KR/LC_MESSAGES/django.po b/engine/blog/locale/ko_KR/LC_MESSAGES/django.po index 3ac6fb31..c1e50f04 100644 --- a/engine/blog/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/blog/locale/ko_KR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/nl_NL/LC_MESSAGES/django.po b/engine/blog/locale/nl_NL/LC_MESSAGES/django.po index 2cd51f26..4f5d83b9 100644 --- a/engine/blog/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/blog/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/no_NO/LC_MESSAGES/django.po b/engine/blog/locale/no_NO/LC_MESSAGES/django.po index ef4c36c1..9b97fdd2 100644 --- a/engine/blog/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/blog/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/pl_PL/LC_MESSAGES/django.po b/engine/blog/locale/pl_PL/LC_MESSAGES/django.po index 9ab4852e..cef7d647 100644 --- a/engine/blog/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/blog/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/pt_BR/LC_MESSAGES/django.po b/engine/blog/locale/pt_BR/LC_MESSAGES/django.po index 7155f6e4..80a9fcab 100644 --- a/engine/blog/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/blog/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/ro_RO/LC_MESSAGES/django.po b/engine/blog/locale/ro_RO/LC_MESSAGES/django.po index d326b4aa..82f68227 100644 --- a/engine/blog/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/blog/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/ru_RU/LC_MESSAGES/django.po b/engine/blog/locale/ru_RU/LC_MESSAGES/django.po index 90683c69..e75c3ff4 100644 --- a/engine/blog/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/blog/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/sv_SE/LC_MESSAGES/django.po b/engine/blog/locale/sv_SE/LC_MESSAGES/django.po index b46f382f..97ae7afc 100644 --- a/engine/blog/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/blog/locale/sv_SE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/th_TH/LC_MESSAGES/django.po b/engine/blog/locale/th_TH/LC_MESSAGES/django.po index 8605b7e6..fc069214 100644 --- a/engine/blog/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/blog/locale/th_TH/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/tr_TR/LC_MESSAGES/django.po b/engine/blog/locale/tr_TR/LC_MESSAGES/django.po index 585fa91a..c485516b 100644 --- a/engine/blog/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/blog/locale/tr_TR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/vi_VN/LC_MESSAGES/django.po b/engine/blog/locale/vi_VN/LC_MESSAGES/django.po index 6b571f24..060ab9e0 100644 --- a/engine/blog/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/blog/locale/vi_VN/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po b/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po index d6f54882..e190b359 100644 --- a/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/blog/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/core/locale/ar_AR/LC_MESSAGES/django.mo b/engine/core/locale/ar_AR/LC_MESSAGES/django.mo index 99939ca2e6a8793fa2bc5e65d6935003507cb64c..968d255e6116755a482a66c3999aef067994547c 100644 GIT binary patch delta 14933 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 delta 14955 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 un@iZifjWF<#sHHDCH\n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "نشط" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "إذا تم تعيينه على خطأ، لا يمكن للمستخدمين رؤية هذا الكائن دون الحاجة إلى إذن" @@ -153,7 +154,8 @@ msgstr "تم التسليم" msgid "canceled" msgstr "تم الإلغاء" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "فشل" @@ -191,9 +193,9 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"مخطط OpenApi3 لواجهة برمجة التطبيقات هذه. يمكن تحديد التنسيق عبر التفاوض على " -"المحتوى. يمكن تحديد اللغة باستخدام معلمة قبول اللغة ومعلمة الاستعلام على حد " -"سواء." +"مخطط OpenApi3 لواجهة برمجة التطبيقات هذه. يمكن تحديد التنسيق عبر التفاوض على" +" المحتوى. يمكن تحديد اللغة باستخدام معلمة قبول اللغة ومعلمة الاستعلام على حد" +" سواء." #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 msgid "cache I/O" @@ -205,8 +207,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "تطبيق مفتاح فقط لقراءة البيانات المسموح بها من ذاكرة التخزين المؤقت.\n" -"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين " -"المؤقت." +"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين المؤقت." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -269,7 +270,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "إعادة كتابة مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "إعادة كتابة بعض حقول مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: engine/core/docs/drf/viewsets.py:106 @@ -317,7 +319,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "إعادة كتابة قيمة سمة موجودة تحفظ غير القابلة للتعديل" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "إعادة كتابة بعض حقول قيمة سمة موجودة حفظ غير قابل للتعديل" #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 @@ -370,8 +373,8 @@ msgstr "بالنسبة للمستخدمين من غير الموظفين، يت #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "البحث في سلسلة فرعية غير حساسة لحالة الأحرف عبر human_readable_id و " "order_products.product.name و order_products.product.partnumber" @@ -407,9 +410,9 @@ msgstr "تصفية حسب حالة الطلب (مطابقة سلسلة فرعي #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "الترتيب حسب واحد من: uuid، معرف_بشري_مقروء، بريد_إلكتروني_مستخدم، مستخدم، " "حالة، إنشاء، تعديل، وقت_الشراء، عشوائي. البادئة بحرف \"-\" للترتيب التنازلي " @@ -491,7 +494,8 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." +"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" " +"المتوفرة." #: engine/core/docs/drf/viewsets.py:438 msgid "remove product from order" @@ -501,8 +505,7 @@ msgstr "إزالة منتج من الطلب" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." +msgstr "يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." #: engine/core/docs/drf/viewsets.py:447 msgid "remove product from order, quantities will not count" @@ -596,32 +599,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "تصفية حسب زوج واحد أو أكثر من أسماء/قيم السمات. \n" "- **صيغة**: `attr_name=الطريقة-القيمة[ ؛ attr2=الطريقة2-القيمة2]...`\n" -"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، " -"\"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ " -"ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، " -"\"lte\"، \"gt\"، \"gte\"، \"in\n" -"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/" -"المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم " -"التعامل معها كسلسلة. \n" -"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- " -"لتشفير القيمة الخام. \n" +"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، \"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، \"lte\"، \"gt\"، \"gte\"، \"in\n" +"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم التعامل معها كسلسلة. \n" +"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- لتشفير القيمة الخام. \n" "أمثلة: \n" -"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، " -"'fatures=in-[\"wifi\",\"bluetooth\"],\n" +"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، 'fatures=in-[\"wifi\",\"bluetooth\"],\n" "\"b64-description=icontains-aGVhdC1jb2xk" #: engine/core/docs/drf/viewsets.py:568 engine/core/docs/drf/viewsets.py:569 @@ -634,8 +625,7 @@ msgstr "(بالضبط) UUID المنتج" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" "قائمة مفصولة بفواصل من الحقول للفرز حسب. البادئة بـ \"-\" للفرز التنازلي. \n" @@ -1094,7 +1084,7 @@ msgstr "البيانات المخزنة مؤقتاً" msgid "camelized JSON data from the requested URL" msgstr "بيانات JSON مجمّلة من عنوان URL المطلوب" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "يُسمح فقط بعناوين URL التي تبدأ ب http(s)://" @@ -1178,8 +1168,8 @@ msgstr "شراء طلبية" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "الرجاء إرسال السمات كسلسلة منسقة مثل attr1=قيمة1، attr2=قيمة2" #: engine/core/graphene/mutations.py:549 @@ -1254,7 +1244,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "ما هي السمات والقيم التي يمكن استخدامها لتصفية هذه الفئة." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "الحد الأدنى والحد الأقصى لأسعار المنتجات في هذه الفئة، إذا كانت متوفرة." @@ -1466,8 +1457,8 @@ msgstr "رقم هاتف الشركة" #: engine/core/graphene/object_types.py:680 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم " -"المضيف" +"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم" +" المضيف" #: engine/core/graphene/object_types.py:681 msgid "email host user" @@ -1561,8 +1552,8 @@ msgstr "" "تفاعلهم. يتم استخدام فئة البائع لتعريف وإدارة المعلومات المتعلقة ببائع " "خارجي. وهو يخزن اسم البائع، وتفاصيل المصادقة المطلوبة للاتصال، والنسبة " "المئوية للترميز المطبقة على المنتجات المسترجعة من البائع. يحتفظ هذا النموذج " -"أيضًا ببيانات وصفية وقيود إضافية، مما يجعله مناسبًا للاستخدام في الأنظمة التي " -"تتفاعل مع البائعين الخارجيين." +"أيضًا ببيانات وصفية وقيود إضافية، مما يجعله مناسبًا للاستخدام في الأنظمة " +"التي تتفاعل مع البائعين الخارجيين." #: engine/core/models.py:124 msgid "stores credentials and endpoints required for vendor communication" @@ -1615,9 +1606,9 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "يمثل علامة منتج تُستخدم لتصنيف المنتجات أو تعريفها. صُممت فئة ProductTag " -"لتعريف المنتجات وتصنيفها بشكل فريد من خلال مزيج من معرّف علامة داخلي واسم عرض " -"سهل الاستخدام. وهي تدعم العمليات التي يتم تصديرها من خلال mixins وتوفر تخصيص " -"البيانات الوصفية لأغراض إدارية." +"لتعريف المنتجات وتصنيفها بشكل فريد من خلال مزيج من معرّف علامة داخلي واسم " +"عرض سهل الاستخدام. وهي تدعم العمليات التي يتم تصديرها من خلال mixins وتوفر " +"تخصيص البيانات الوصفية لأغراض إدارية." #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1645,8 +1636,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"يمثل علامة فئة تستخدم للمنتجات. تمثل هذه الفئة علامة فئة يمكن استخدامها لربط " -"المنتجات وتصنيفها. وهي تتضمن سمات لمعرف علامة داخلي واسم عرض سهل الاستخدام." +"يمثل علامة فئة تستخدم للمنتجات. تمثل هذه الفئة علامة فئة يمكن استخدامها لربط" +" المنتجات وتصنيفها. وهي تتضمن سمات لمعرف علامة داخلي واسم عرض سهل الاستخدام." #: engine/core/models.py:254 msgid "category tag" @@ -1672,9 +1663,9 @@ msgstr "" "علاقات هرمية مع فئات أخرى، مما يدعم العلاقات بين الأصل والطفل. تتضمن الفئة " "حقول للبيانات الوصفية والتمثيل المرئي، والتي تعمل كأساس للميزات المتعلقة " "بالفئات. تُستخدم هذه الفئة عادةً لتعريف وإدارة فئات المنتجات أو غيرها من " -"التجميعات المماثلة داخل التطبيق، مما يسمح للمستخدمين أو المسؤولين بتحديد اسم " -"الفئات ووصفها وتسلسلها الهرمي، بالإضافة إلى تعيين سمات مثل الصور أو العلامات " -"أو الأولوية." +"التجميعات المماثلة داخل التطبيق، مما يسمح للمستخدمين أو المسؤولين بتحديد اسم" +" الفئات ووصفها وتسلسلها الهرمي، بالإضافة إلى تعيين سمات مثل الصور أو " +"العلامات أو الأولوية." #: engine/core/models.py:274 msgid "upload an image representing this category" @@ -1725,7 +1716,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "يمثل كائن العلامة التجارية في النظام. تتعامل هذه الفئة مع المعلومات والسمات " "المتعلقة بالعلامة التجارية، بما في ذلك اسمها وشعاراتها ووصفها والفئات " @@ -1774,8 +1766,8 @@ msgstr "الفئات" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1865,10 +1857,10 @@ msgid "" msgstr "" "يمثل منتجًا بخصائص مثل الفئة والعلامة التجارية والعلامات والحالة الرقمية " "والاسم والوصف ورقم الجزء والعلامة التجارية والحالة الرقمية والاسم والوصف " -"ورقم الجزء والسبيكة. يوفر خصائص الأداة المساعدة ذات الصلة لاسترداد التقييمات " -"وعدد الملاحظات والسعر والكمية وإجمالي الطلبات. مصمم للاستخدام في نظام يتعامل " -"مع التجارة الإلكترونية أو إدارة المخزون. تتفاعل هذه الفئة مع النماذج ذات " -"الصلة (مثل الفئة والعلامة التجارية وعلامة المنتج) وتدير التخزين المؤقت " +"ورقم الجزء والسبيكة. يوفر خصائص الأداة المساعدة ذات الصلة لاسترداد التقييمات" +" وعدد الملاحظات والسعر والكمية وإجمالي الطلبات. مصمم للاستخدام في نظام " +"يتعامل مع التجارة الإلكترونية أو إدارة المخزون. تتفاعل هذه الفئة مع النماذج " +"ذات الصلة (مثل الفئة والعلامة التجارية وعلامة المنتج) وتدير التخزين المؤقت " "للخصائص التي يتم الوصول إليها بشكل متكرر لتحسين الأداء. يتم استخدامه لتعريف " "ومعالجة بيانات المنتج والمعلومات المرتبطة به داخل التطبيق." @@ -1925,8 +1917,8 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "يمثل سمة في النظام. تُستخدم هذه الفئة لتعريف السمات وإدارتها، وهي عبارة عن " @@ -1994,9 +1986,9 @@ msgstr "السمة" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "يمثل قيمة محددة لسمة مرتبطة بمنتج ما. يربط \"السمة\" بـ \"قيمة\" فريدة، مما " "يسمح بتنظيم أفضل وتمثيل ديناميكي لخصائص المنتج." @@ -2016,8 +2008,8 @@ msgstr "القيمة المحددة لهذه السمة" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2063,13 +2055,14 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"يمثل حملة ترويجية للمنتجات ذات الخصم. تُستخدم هذه الفئة لتعريف وإدارة الحملات " -"الترويجية التي تقدم خصمًا على أساس النسبة المئوية للمنتجات. تتضمن الفئة سمات " -"لتعيين معدل الخصم وتوفير تفاصيل حول العرض الترويجي وربطه بالمنتجات القابلة " -"للتطبيق. تتكامل مع كتالوج المنتجات لتحديد العناصر المتأثرة في الحملة." +"يمثل حملة ترويجية للمنتجات ذات الخصم. تُستخدم هذه الفئة لتعريف وإدارة " +"الحملات الترويجية التي تقدم خصمًا على أساس النسبة المئوية للمنتجات. تتضمن " +"الفئة سمات لتعيين معدل الخصم وتوفير تفاصيل حول العرض الترويجي وربطه " +"بالمنتجات القابلة للتطبيق. تتكامل مع كتالوج المنتجات لتحديد العناصر المتأثرة" +" في الحملة." #: engine/core/models.py:880 msgid "percentage discount for the selected products" @@ -2110,8 +2103,8 @@ msgid "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"يمثل قائمة أمنيات المستخدم لتخزين وإدارة المنتجات المطلوبة. توفر الفئة وظائف " -"لإدارة مجموعة من المنتجات، وتدعم عمليات مثل إضافة المنتجات وإزالتها، " +"يمثل قائمة أمنيات المستخدم لتخزين وإدارة المنتجات المطلوبة. توفر الفئة وظائف" +" لإدارة مجموعة من المنتجات، وتدعم عمليات مثل إضافة المنتجات وإزالتها، " "بالإضافة إلى دعم عمليات إضافة وإزالة منتجات متعددة في وقت واحد." #: engine/core/models.py:926 @@ -2136,11 +2129,11 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"يمثل سجل وثائقي مرتبط بمنتج ما. تُستخدم هذه الفئة لتخزين معلومات حول الأفلام " -"الوثائقية المرتبطة بمنتجات محددة، بما في ذلك تحميلات الملفات وبياناتها " +"يمثل سجل وثائقي مرتبط بمنتج ما. تُستخدم هذه الفئة لتخزين معلومات حول الأفلام" +" الوثائقية المرتبطة بمنتجات محددة، بما في ذلك تحميلات الملفات وبياناتها " "الوصفية. يحتوي على أساليب وخصائص للتعامل مع نوع الملف ومسار التخزين للملفات " "الوثائقية. وهو يوسع الوظائف من مزيج معين ويوفر ميزات مخصصة إضافية." @@ -2158,19 +2151,19 @@ msgstr "لم يتم حلها" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "يمثل كيان عنوان يتضمن تفاصيل الموقع والارتباطات مع المستخدم. يوفر وظائف " "لتخزين البيانات الجغرافية وبيانات العنوان، بالإضافة إلى التكامل مع خدمات " -"الترميز الجغرافي. صُممت هذه الفئة لتخزين معلومات العنوان التفصيلية بما في ذلك " -"مكونات مثل الشارع والمدينة والمنطقة والبلد والموقع الجغرافي (خطوط الطول " +"الترميز الجغرافي. صُممت هذه الفئة لتخزين معلومات العنوان التفصيلية بما في " +"ذلك مكونات مثل الشارع والمدينة والمنطقة والبلد والموقع الجغرافي (خطوط الطول " "والعرض). وهو يدعم التكامل مع واجهات برمجة التطبيقات للترميز الجغرافي، مما " "يتيح تخزين استجابات واجهة برمجة التطبيقات الخام لمزيد من المعالجة أو الفحص. " "تسمح الفئة أيضًا بربط عنوان مع مستخدم، مما يسهل التعامل مع البيانات الشخصية." @@ -2236,9 +2229,9 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"يمثل الرمز الترويجي الذي يمكن استخدامه للحصول على خصومات وإدارة صلاحيته ونوع " -"الخصم والتطبيق. تقوم فئة PromoCode بتخزين تفاصيل حول الرمز الترويجي، بما في " -"ذلك معرفه الفريد، وخصائص الخصم (المبلغ أو النسبة المئوية)، وفترة الصلاحية، " +"يمثل الرمز الترويجي الذي يمكن استخدامه للحصول على خصومات وإدارة صلاحيته ونوع" +" الخصم والتطبيق. تقوم فئة PromoCode بتخزين تفاصيل حول الرمز الترويجي، بما في" +" ذلك معرفه الفريد، وخصائص الخصم (المبلغ أو النسبة المئوية)، وفترة الصلاحية، " "والمستخدم المرتبط به (إن وجد)، وحالة استخدامه. ويتضمن وظيفة للتحقق من صحة " "الرمز الترويجي وتطبيقه على الطلب مع ضمان استيفاء القيود." @@ -2284,7 +2277,8 @@ msgstr "وقت بدء الصلاحية" #: engine/core/models.py:1120 msgid "timestamp when the promocode was used, blank if not used yet" -msgstr "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" +msgstr "" +"الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" #: engine/core/models.py:1121 msgid "usage timestamp" @@ -2311,8 +2305,8 @@ msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين " -"أو لا هذا ولا ذاك." +"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" +" أو لا هذا ولا ذاك." #: engine/core/models.py:1171 msgid "promocode already used" @@ -2327,8 +2321,8 @@ msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2471,8 +2465,8 @@ msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد " -"الإلكتروني للعميل، رقم هاتف العميل" +"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" +" الإلكتروني للعميل، رقم هاتف العميل" #: engine/core/models.py:1584 #, python-brace-format @@ -2503,7 +2497,8 @@ msgid "feedback comments" msgstr "تعليقات على الملاحظات" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "الإشارة إلى المنتج المحدد في الطلب الذي تدور حوله هذه الملاحظات" #: engine/core/models.py:1720 @@ -2533,9 +2528,9 @@ msgstr "" "يمثل المنتجات المرتبطة بالطلبات وسماتها. يحتفظ نموذج OrderProduct بمعلومات " "حول المنتج الذي هو جزء من الطلب، بما في ذلك تفاصيل مثل سعر الشراء والكمية " "وسمات المنتج وحالته. يدير الإشعارات للمستخدم والمسؤولين ويتعامل مع عمليات " -"مثل إرجاع رصيد المنتج أو إضافة ملاحظات. يوفر هذا النموذج أيضًا أساليب وخصائص " -"تدعم منطق العمل، مثل حساب السعر الإجمالي أو إنشاء عنوان URL للتنزيل للمنتجات " -"الرقمية. يتكامل النموذج مع نموذجي الطلب والمنتج ويخزن مرجعًا لهما." +"مثل إرجاع رصيد المنتج أو إضافة ملاحظات. يوفر هذا النموذج أيضًا أساليب وخصائص" +" تدعم منطق العمل، مثل حساب السعر الإجمالي أو إنشاء عنوان URL للتنزيل " +"للمنتجات الرقمية. يتكامل النموذج مع نموذجي الطلب والمنتج ويخزن مرجعًا لهما." #: engine/core/models.py:1757 msgid "the price paid by the customer for this product at purchase time" @@ -2643,15 +2638,15 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "يمثل وظيفة التنزيل للأصول الرقمية المرتبطة بالطلبات. توفر فئة " "DigitalAssetDownload القدرة على إدارة التنزيلات المتعلقة بمنتجات الطلبات " "والوصول إليها. وتحتفظ بمعلومات حول منتج الطلب المرتبط، وعدد التنزيلات، وما " -"إذا كان الأصل مرئيًا للعامة. وتتضمن طريقة لإنشاء عنوان URL لتنزيل الأصل عندما " -"يكون الطلب المرتبط في حالة مكتملة." +"إذا كان الأصل مرئيًا للعامة. وتتضمن طريقة لإنشاء عنوان URL لتنزيل الأصل " +"عندما يكون الطلب المرتبط في حالة مكتملة." #: engine/core/models.py:1961 msgid "download" @@ -2695,8 +2690,8 @@ msgid "No customer activity in the last 30 days." msgstr "لا يوجد نشاط للعملاء في آخر 30 يوماً." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "المبيعات اليومية (30 د)" +msgid "Daily sales" +msgstr "المبيعات اليومية" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2707,6 +2702,7 @@ msgid "Gross revenue" msgstr "إجمالي الإيرادات" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "الطلبات" @@ -2714,6 +2710,10 @@ msgstr "الطلبات" msgid "Gross" msgstr "الإجمالي" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "لوحة التحكم" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "نظرة عامة على الدخل" @@ -2742,20 +2742,32 @@ msgid "No data" msgstr "لا يوجد تاريخ" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "الإيرادات (الإجمالي، 30 د)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "الإيرادات (الصافي، 30 د)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "المرتجعات (30 د)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "صافي الإيرادات" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "الطلبات التي تمت معالجتها (30 د)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "معدل الاسترداد" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "تم الإرجاع" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "مخزون منخفض" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "لا توجد عناصر منخفضة المخزون." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2770,11 +2782,11 @@ msgid "Most wished product" msgstr "أكثر المنتجات المرغوبة" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "لا توجد بيانات بعد." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "المنتج الأكثر شعبية" @@ -2810,10 +2822,6 @@ msgstr "لم يتم بيع أي فئة في آخر 30 يوماً." msgid "Django site admin" msgstr "مشرف موقع جانغو" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "لوحة التحكم" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2843,12 +2851,11 @@ msgstr "مرحباً %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"شكرًا لك على طلبك #%(order.pk)s! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل. " -"فيما يلي تفاصيل طلبك:" +"شكرًا لك على طلبك #%(order.pk)s! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل." +" فيما يلي تفاصيل طلبك:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2955,8 +2962,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "شكرًا لك على طلبك! يسعدنا تأكيد طلبك. فيما يلي تفاصيل طلبك:" @@ -3026,7 +3032,7 @@ msgstr "يجب تكوين معلمة NOMINATIM_URL!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "يجب ألا تتجاوز أبعاد الصورة w{max_width} x h{max_height} بكسل!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3034,7 +3040,7 @@ msgstr "" "يتعامل مع طلب فهرس خريطة الموقع ويعيد استجابة XML. يضمن أن تتضمن الاستجابة " "رأس نوع المحتوى المناسب ل XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3043,16 +3049,16 @@ msgstr "" "يعالج استجابة العرض التفصيلي لخريطة الموقع. تقوم هذه الدالة بمعالجة الطلب، " "وجلب استجابة تفاصيل خريطة الموقع المناسبة، وتعيين رأس نوع المحتوى ل XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "إرجاع قائمة باللغات المدعومة والمعلومات الخاصة بها." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "إرجاع معلمات الموقع الإلكتروني ككائن JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3060,11 +3066,11 @@ msgstr "" "يعالج عمليات ذاكرة التخزين المؤقت مثل قراءة بيانات ذاكرة التخزين المؤقت " "وتعيينها بمفتاح ومهلة محددة." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "يتعامل مع عمليات إرسال نموذج \"اتصل بنا\"." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3072,77 +3078,69 @@ msgstr "" "يعالج طلبات معالجة عناوين URL والتحقق من صحة عناوين URL من طلبات POST " "الواردة." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "يتعامل مع استعلامات البحث العامة." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "يتعامل بمنطق الشراء كشركة تجارية دون تسجيل." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "يتعامل مع تنزيل الأصل الرقمي المرتبط بأمر ما.\n" -"تحاول هذه الدالة خدمة ملف الأصل الرقمي الموجود في دليل التخزين الخاص " -"بالمشروع. إذا لم يتم العثور على الملف، يتم رفع خطأ HTTP 404 للإشارة إلى أن " -"المورد غير متوفر." +"تحاول هذه الدالة خدمة ملف الأصل الرقمي الموجود في دليل التخزين الخاص بالمشروع. إذا لم يتم العثور على الملف، يتم رفع خطأ HTTP 404 للإشارة إلى أن المورد غير متوفر." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "الطلب_برو_منتج_uuid مطلوب" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "طلب المنتج غير موجود" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "يمكنك تنزيل الأصل الرقمي مرة واحدة فقط" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "يجب دفع الطلب قبل تنزيل الأصل الرقمي" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "لا يحتوي منتج الطلب على منتج" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "الرمز المفضل غير موجود" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "يتعامل مع طلبات الرمز المفضل لموقع ويب.\n" -"تحاول هذه الدالة عرض ملف الأيقونة المفضلة الموجود في الدليل الثابت للمشروع. " -"إذا لم يتم العثور على ملف الأيقونة المفضلة، يتم رفع خطأ HTTP 404 للإشارة إلى " -"أن المورد غير متوفر." +"تحاول هذه الدالة عرض ملف الأيقونة المفضلة الموجود في الدليل الثابت للمشروع. إذا لم يتم العثور على ملف الأيقونة المفضلة، يتم رفع خطأ HTTP 404 للإشارة إلى أن المورد غير متوفر." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"يعيد توجيه الطلب إلى صفحة فهرس المشرف. تعالج الدالة طلبات HTTP الواردة وتعيد " -"توجيهها إلى صفحة فهرس واجهة إدارة Django. تستخدم دالة \"إعادة التوجيه\" في " +"يعيد توجيه الطلب إلى صفحة فهرس المشرف. تعالج الدالة طلبات HTTP الواردة وتعيد" +" توجيهها إلى صفحة فهرس واجهة إدارة Django. تستخدم دالة \"إعادة التوجيه\" في " "Django للتعامل مع إعادة توجيه HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "إرجاع الإصدار الحالي من eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "إرجاع المتغيرات المخصصة للوحة التحكم." @@ -3154,22 +3152,23 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"يحدد مجموعة طرق عرض لإدارة العمليات المتعلقة ب Evibes. يرث صنف EvibesViewSet " -"من ModelViewSet ويوفر وظائف للتعامل مع الإجراءات والعمليات على كيانات " -"Evibes. وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء الحالي، " -"والأذونات القابلة للتخصيص، وتنسيقات العرض." +"يحدد مجموعة طرق عرض لإدارة العمليات المتعلقة ب Evibes. يرث صنف EvibesViewSet" +" من ModelViewSet ويوفر وظائف للتعامل مع الإجراءات والعمليات على كيانات " +"Evibes. وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء " +"الحالي، والأذونات القابلة للتخصيص، وتنسيقات العرض." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "يمثل مجموعة طرق عرض لإدارة كائنات AttributeGroup. يتعامل مع العمليات " "المتعلقة ب AttributeGroup، بما في ذلك التصفية والتسلسل واسترجاع البيانات. " -"تعد هذه الفئة جزءًا من طبقة واجهة برمجة التطبيقات الخاصة بالتطبيق وتوفر طريقة " -"موحدة لمعالجة الطلبات والاستجابات لبيانات AttributeGroup." +"تعد هذه الفئة جزءًا من طبقة واجهة برمجة التطبيقات الخاصة بالتطبيق وتوفر " +"طريقة موحدة لمعالجة الطلبات والاستجابات لبيانات AttributeGroup." #: engine/core/viewsets.py:175 msgid "" @@ -3191,13 +3190,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"مجموعة طرق عرض لإدارة كائنات AttributeValue. توفر مجموعة طرق العرض هذه وظائف " -"لإدراج كائنات AttributeValue واسترجاعها وإنشائها وتحديثها وحذفها. وهي تتكامل " -"مع آليات مجموعة طرق عرض Django REST Framework وتستخدم المتسلسلات المناسبة " -"للإجراءات المختلفة. يتم توفير إمكانيات التصفية من خلال DjangoFilterBackend." +"مجموعة طرق عرض لإدارة كائنات AttributeValue. توفر مجموعة طرق العرض هذه وظائف" +" لإدراج كائنات AttributeValue واسترجاعها وإنشائها وتحديثها وحذفها. وهي " +"تتكامل مع آليات مجموعة طرق عرض Django REST Framework وتستخدم المتسلسلات " +"المناسبة للإجراءات المختلفة. يتم توفير إمكانيات التصفية من خلال " +"DjangoFilterBackend." #: engine/core/viewsets.py:213 msgid "" @@ -3208,8 +3208,8 @@ msgid "" "can access specific data." msgstr "" "يدير طرق العرض للعمليات المتعلقة بالفئة. فئة CategoryViewSet مسؤولة عن " -"التعامل مع العمليات المتعلقة بنموذج الفئة في النظام. وهي تدعم استرجاع بيانات " -"الفئة وتصفيتها وتسلسلها. تفرض مجموعة طرق العرض أيضًا الأذونات لضمان وصول " +"التعامل مع العمليات المتعلقة بنموذج الفئة في النظام. وهي تدعم استرجاع بيانات" +" الفئة وتصفيتها وتسلسلها. تفرض مجموعة طرق العرض أيضًا الأذونات لضمان وصول " "المستخدمين المصرح لهم فقط إلى بيانات محددة." #: engine/core/viewsets.py:326 @@ -3249,34 +3249,35 @@ msgid "" "Vendor-related resources through the Django REST framework." msgstr "" "يمثل مجموعة طرق عرض لإدارة كائنات المورد. تسمح مجموعة العرض هذه بجلب بيانات " -"البائع وتصفيتها وتسلسلها. وهي تُعرِّف مجموعة الاستعلام، وتكوينات التصفية، وفئات " -"أداة التسلسل المستخدمة للتعامل مع الإجراءات المختلفة. الغرض من هذه الفئة هو " -"توفير وصول مبسط إلى الموارد المتعلقة بالمورد من خلال إطار عمل Django REST." +"البائع وتصفيتها وتسلسلها. وهي تُعرِّف مجموعة الاستعلام، وتكوينات التصفية، " +"وفئات أداة التسلسل المستخدمة للتعامل مع الإجراءات المختلفة. الغرض من هذه " +"الفئة هو توفير وصول مبسط إلى الموارد المتعلقة بالمورد من خلال إطار عمل " +"Django REST." #: engine/core/viewsets.py:594 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "تمثيل مجموعة عرض تتعامل مع كائنات الملاحظات. تدير هذه الفئة العمليات " "المتعلقة بكائنات الملاحظات، بما في ذلك الإدراج والتصفية واسترجاع التفاصيل. " "الغرض من مجموعة العرض هذه هو توفير متسلسلات مختلفة لإجراءات مختلفة وتنفيذ " -"معالجة قائمة على الأذونات لكائنات الملاحظات التي يمكن الوصول إليها. وهي توسع " -"\"مجموعة عرض الملاحظات\" الأساسية وتستفيد من نظام تصفية Django للاستعلام عن " -"البيانات." +"معالجة قائمة على الأذونات لكائنات الملاحظات التي يمكن الوصول إليها. وهي توسع" +" \"مجموعة عرض الملاحظات\" الأساسية وتستفيد من نظام تصفية Django للاستعلام عن" +" البيانات." #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet لإدارة الطلبات والعمليات ذات الصلة. توفر هذه الفئة وظائف لاسترداد " @@ -3290,8 +3291,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "يوفر مجموعة طرق عرض لإدارة كيانات OrderProduct. تتيح مجموعة طرق العرض هذه " @@ -3323,15 +3324,15 @@ msgstr "يتعامل مع العمليات المتعلقة ببيانات ال msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"ViewSet لإدارة عمليات قائمة الرغبات. توفر مجموعة طرق عرض قائمة الأمنيات نقاط " -"نهاية للتفاعل مع قائمة أمنيات المستخدم، مما يسمح باسترجاع المنتجات وتعديلها " -"وتخصيصها ضمن قائمة الأمنيات. تسهل مجموعة العرض هذه وظائف مثل الإضافة " +"ViewSet لإدارة عمليات قائمة الرغبات. توفر مجموعة طرق عرض قائمة الأمنيات نقاط" +" نهاية للتفاعل مع قائمة أمنيات المستخدم، مما يسمح باسترجاع المنتجات وتعديلها" +" وتخصيصها ضمن قائمة الأمنيات. تسهل مجموعة العرض هذه وظائف مثل الإضافة " "والإزالة والإجراءات المجمعة لمنتجات قائمة الرغبات. يتم دمج عمليات التحقق من " "الأذونات للتأكد من أن المستخدمين يمكنهم فقط إدارة قوائم الرغبات الخاصة بهم " "ما لم يتم منح أذونات صريحة." diff --git a/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo index 6d4fb167774797ed89ba8d13bdb753e235cc7449..dbd9131f3dcd4645a5e0fbbf0fdf5be38370e551 100644 GIT binary patch delta 14898 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 delta 14876 zcmZA82Yim#|Nrq55yXhZ3Q;6P>=ChNM66h`_lU%(Jz~?_-qhaOT2-{AO;e*3Uuw5S zRg0oVX|-B=RLk%6zRyYj9{=m{IC-AWxz2T6=Q``Y6YUS*`ECBr&vPY5`lW_rV>)Br zz?!*@nd56rmy#+qW@c4ma^WoO?qke5n2GphHDfYj#_Gmo#_X6ELogpkp&vHG9M~GU zt?7;Fu^+x=jK>TnqZ|B*f%qJ0gUMXOm?apB888)9Z!hM=qZovj&>!z&G!1-;YFO1; z_Ixyk5x2r(n2aH~22;~{jM+(smoWpQ?SnUCCE|U~ht3jpZBKMZy;(A<0b?;6&cz5^ zg$Z~N3u2KNVg(WoAqjKMe$)$mQI>$ahXMw-K9_Vd6DamKVGKGMXP z_QVC68dDEPG_yC{-Q0QzH7CAC&6(?{A$f&in6rg#XeHE`S4Z_wZB!36#S%EY1>>)= zT1!Dz+=RN(r&tJ&AoI=KLe0`b@wPk_R}+7anj1q~+8!B=if5yGWFhLlAD|kXit)VA z3DhLc-txW@X%_TP||GUPpR^@`9b1Ot_@8F>$!J zi!mKAV>e^!Qol!cV^$KcPcY^)teI%cNv^-2M2`{g>t)PCyy)p|OgT<`(-$dti4Ta& z_A{mvaaez28gs+(1Ly(bBZF)My9_aA2;~`uF@Y%`m2Av3EH~2jVCpEl3XY??{tPm@ z<|=9xlpJkLarCqzQ-#bpR2QY7*6T40!b_+zyo>7E`=|?_VOb0tV;>Zcd5JrqCh1UA z{gE!7fSP=hkxno(k>% za;`zu+k@IKZlZcHWU^gu_%4px*coY>!Wn6=j-F zvHQSUj3vH|8lu8ejVXndP^%^Z18@ZD{8Xf~%yKM>Ij7knsD_#obm&&4Y+1MybWn|^}2em`nIxQ?0=f6bu( z^`_4#&_0lErfpdOszNo?jbl&`Z05?lqQ<&6s>{crdT=)Cfoo9@+UDY27)pEuGvRGa zkM}%eGLm_WdceP^A;~t&-k=ETLFG{w)JN5iLp`_^ss|FB!%_98VNqO#8nOeZAw1*G z|B4zC&%b2U@}SxF!QrTeR7X{a!+hAyIoh3Hgt~4$szIr!RkRN^Des^jm}icS%V1UF zj#v#BAur%Dr^x6HE;;X_TKo!igTT4=jf$ZfR1@{!cvMd%q8dB~b)Q+NdaF?l-|jq) zs&@l57an2`t^Yjp>>Mb8nK==KF<2Wb;3Uk7pP|#>qaHZh#fwq**@Pu< zJ8EmcfSWLAfvvw2)pG~XQ<2PhGFnzy7TPfi!WzVJ7>UzSW4sHC;{ntg{e}^kWs!YQ z1=POK4|CvT)MQ+Wp|};bADqM>ytRn_Z${=B1tYP+V!npqK2(EBEwNo3i4BOOQExZ{ z)e{R*H(G(}(ygcl{)}p{|57_NL8y9#Q9V)-OW}Z}^nW=rD=5&I9>d1?6V}FvW%hx+ zP-8k6bKnH5j0>;~9>pkpjJ{Z6xot=p)OGDJKPI_&BI>*0d=Ht5WIjUO_&OHD$Ib#P zY**JueMaHFO(M_wyVfqn6ynQ1o48 zyCxj9;l!i5t}TXOAJn9q?BY4tkobL9{-^UP22if=X}V8#%!9d5FIo!eagV7@CNBl8 zP+isEo-kujV>}Pb;u6#w9Kw!x3oB#v8avxZq3W$e&7ISz2AoGd@E6RE&rr|Fv{qkU zwf@P3QV@luu?_0NNvL(d0N=p1sGiz`A$S4Rz(*K}FHqNKeaF6OHPi#+u`2e!T(}Z- z-;Xhi*8dk|^njz7A8%qMH1FD3T-jM0HAx#_73_qXe2Y+X=zuGKjIqRJ-m^V63|kT} zMQup8Q4M*B9(7fwb#_bxP|GG5^`Jtiu8KnSNL^PRk9vb7)SC}==O?2cu+W`f>&|aQ z&6zJSA0Bq)SJu)0!4&*Of!1Tj_4dY5sI52}b7K?KjT2ClXdr6NOhrx3wW#{rQTxLl z)OCkZ4ZrBl|Aty6k1!OAZt&Q3+F*knqrs>fet?B=4<_M7EQxhC+M())dZQVr`U|iu zu18JEGguEZZL;@midrSpP;=&MR0Gd>$f(74P!D{Bg)!Ir)+$((xRZ+~qPlPcYRvbc z=FS6D4`koWH(LzB);JPl@dRpP%l?6#q#ZGo*fX7sCc|dbSnowW-~?(&Zek<`Zn4H- zG2&!YkF0SXb>$DRI^`i-?Xql(+F?DY$+{i2N-iV!_n6Gv>l>F$9Bw`qPlbn*1%mD zg^y4VD!$z=%g(4bT8O&gL2QT*u`brwVdDv?hJJ<7==+H^7F9kC>+^hbh>RwS|EKng zM>Euo7NExNEY`;06nleqsD>`bB6tclNA6)Z%=4L@JK-2e+z`892MoYe%!!B5yZ(P9 zqYJN~Zukdgz`#`drok9P+z?eh+qn=k6R$wsa03S6PSk^sVW0E?Dsk2 zUzW@ppWDgN1Wyo;!6_KK)6R`!s3EzBC9w1^*ArNVcsZ8FuP_21pypD(-S)Z|tVsM8 zs;5#=bL_%yjX#<6d+dV>V;$l+tc0^sH$H&jco%D8jxX$+w?IGQPM8IIU_Kmx>dEPt zAGcywJc4@OcUTVZd&u~c3EOLDYbjKhCShJ2jE!+7>dnuh-ryh98x-DW-?$m7Ym+fO zPDS<1EX;vBF+ZL_y~r(8PkFL@X(v|&)SC=NHDDBKtS6%yG7I&F>oGTejH-7S3*xsJ zhJT{oEO5X5EQ!Vm#EnoxeFRnSF*3Q?{}0$n(gig;d!cr~WYnZuj_RRps5eT*8h8V> zN(vpclQRJ|R2xw}a|YF8|DeV`;(vD8bw<7UN}R&;%>gnMD2P2|$7~eF5U)m+U%@6A zblC0_T~QBMf(39t>dh{r8j$rX``~I=iZ~IIe2jS;)sv5o@N&f2j?%+C-%LJc$8HvC zxvWHW@p{w+yD%f3K~1g;=!*}XPjLYq_@pCs3Dwx!Yvj_*}K%a2_uP9aU9-8jeX)-HW?bW5Zhs;b9RTE`#tA4e+JX5{JeeR z>OU|!iT_63FW&{O#U_{@FJGYl_2$ z2i>%@JTGP=u8a{Fi#>e!x{jHNPyJ$h=m*R|`7OMMcW?2rjaPozuKzbT zrCy&GwkIb2%TQ3h6JJs9=}UTp_$fg$^``pxnAOD3eSORg9}knx&&S)cF&TZ#K~DVb z?_*ZsUj7EJp=qDZ$GfbCq2|DNtdDcBIG#au<=?1{COp8$`{~vZgNcWrhHfVM;!4zg z)?yW&Z$2cWF}#WX7?Rz``&}>`(-X%!8>7a!Ir?FH?1^1bf7L#KYEV#+k9QeYM_u0n zwYu7%=1vl3rYAy3?rV3h4FoCh{s(Vl-HJ5%uE04LG3As!Rc666;-S29#{cYu^wv7 z+M>F=7wW=6s0PkJ_1rqtn4d=Nkk3(Daxu2OqSywt!Hq>VWIh(dWiIx7Nk(sY1hu{| zVF3Pydb4M!3$qvU@qUpA#v;TeUECaXT>`3MgYgZVg^~C^>IHs8_0Tm`gMPQM$Gjq= zH}wy-56FkASQ^zMl~Fy?5OrZk)DAZgwF*|C=E6Iu>o%e4ZAWe0hg|$E79zfZs_z@7 z>sf!9$>@SW)Yyfiy1KfvHI^VAfaVm(~+apC?kDzW)9d(0_u6z_~F3fZBCzzG^sEf~`mh~Of3zdnm zL)-)P0>dL%|C(%{QXmha9()=#wl`64cE^>!!pg)si`lV`!+OMRFb-Fs=F$yR!yaNh z1{b$O(ib&JXQ3wThTM^QoeaqP% z%ZUw%OQ1HOp{N&Fg=+Y5Y>d~i5tb@%mt!)jArq1P#bXwcsY$^W)VjWf(=jO0uG1B$ z2EB_~&)=iQ_8O{TeiiI;%8B~Dpgii$2B5llqH`B&DDR;f8WyDuiuD&yMg^0-1^i#-Pp*ajrv6*0ZS33jfM>G6$fBun1=2`KF#L zXo{_g2j~PIa2`i>*;&-ibrZEU|BhN6>8jW`7`6A8MNQ7msG;bMy6!F13r$1y%zpHY zCiB#t7*f^F(ygc-xq|BQY}M?Bk`MLZ3aBn_jDgq{^+tm*66d2Dasa)P4pr|JY9|fk z3!!&Esm}V>R@jjOJ!mBA0h3V;Sc%$jj-fWDTUa0eLA`lQ4QqSUTo{0A$XMqpj3(ZL z>VX%i4JuttdtLULtbfhYa0=A2L8x`S0@Xz)QM25)mYwBIP|GtJ^#;eWF#d`f<1Dr9 z&;_DCHS=KrhM{_*JZhE2pkB1Chm4lh092QbcP>C(u+jOs^B8JwTtt02y@9&nOH@OG z>e$s%5p~~wsQZjXt(v*0`a3W`dJd6M*Iso6k6neJXuHLRqi$3dHAJ;hH;h9KQ5RHC z%t7_sR*c5Ws0J0RYloyR_9RZgGI$s{?=cU^Xtw5#u?-2u%EXmXV?7YtVG7p4%=K&> zhZ@s$s0V%E;*+R1J?ngerHDgfZFvJ{Kd-F6`DE%*;ZxKcc!GN4(E4@@EsxEKXQCSP zgNq9^u-|?Mpf;{G7=uSqLz%guT{Q(!JyQj%V?Wd~+=S(MzPU;!3IiM2Nf(QX$73|^ zaPfWAhEue$y+H!%LuoZ?hrEc|fCA&}1M51IQ4ijX(Rdxz&>~G({|(6WCKG`lInQBB z;uokcZ`RcIz&zAy_zAVAhc~nFKvbNHt??zsW2@%Y4bDfX`_^w^hj4id)_+q9{-i(; zsu6EL#l~S5;;YybYqqpEde?c+S+|ufU*x>utk~L?PjjAk7Heb6N2Bh4yp6~H&KA+u zPL9r~k7EyN-EP8A{LIDQ<0RsnF7DmVehiO5Kg!=mt&XJ_j+;^Yz$w%mIES4vV|!aa z(L=_cf;UmiYdCrvfV$Bp)H>gZnv`czd-`?M2J$y*9S3!=bD<2@A|8M#xE0^RZXIm{ zE~ADpu#gWP1+|y|f`#xQs$n_1*^Q<)s>iybJ_Gt-G>%6N z**i>-D zsh|YAVbw-0vk|B<-+>y^U8pVlFzUnXYt&Hwj^6M8FUaUqDX^#g-K+rW#`Uox4ny5w zGbZB>)J9b_(Z@SETcDQT5Y&x#qrU$iNA=uw)SSweWIu+ZP(v1r9*zBIGK_`!0_$Uz zUbaF@^nPJLz43n326PWKwxxU92aLt}#G6q2NyR?)f#a|)@j5JnH&CCRL49pc_3q31 z*T%Ds0?qPcs5icWdSKo+t&LGVG8TPMhc=p`>FnQh7L(V5LW$>)_^xV(xr%>a80U0M zb7j-XYxQXUnbBNOf)i75A!=4PCI6Is7I%TF4kUk#G@JC2cmZ{MaV_yzsL89N7I7<^ z_5SQiJs;8qqDh?7u?aPlKY7SB;^b-!^q#W+5b+Cf0OdN)ldnWxlW&Z-#Qs%N*(Rh+ zoV!k)h2(i3lb3i7aX#`oE|X6?mbiN=R?mBKzjm_NYbQ06zklsqCh{9~7017%ti;c~ zk^PYa^f8^8@+sVhDdIi0@pGNax2D{e{1to3Y_{#?FPWT3b(QjypF;&Lz0s6KxbhU@ zdgPCho|5lQz0%~Tp^i3K4y$5Aca64O9i=GaBgT8IB;Uy8_5IU)Pw@*1K5~VeH|_ZG zHt9HdZ5G8zM>)TOw93`{0SBuxM;K~t>(Hj7qX%UtQQL0}sh_*93guc2I+|$weqF#iQZzS9pez>-!Fb$G`3~|r#t^@cKajqqOux9y zr%c}$>X9^GOe6&_FdTJ!L|Q?96uv`xj|+pb1Z7k4J9qP(F`u~q<6l`|oJKagX zcl>t*lCRD6DX*0kCf-T>@bh=samt+8XOirFTgAT?Ibhz5mGLy^$JyLe^Wl4O_o7?W(1LB-oW3#ESnjo4~kbK&~ z_qhL#LgaioH~7C2J_tDfhO0lHd~bJdHD%*mc~QzE$WP&14e}YuHz2=*w37HOtuY-( zFbginVcrrx1F2k?_zv+lT!Vj-8k5&2kd7(j^SFmSAg^P*Gl6^#@_*qelD_nHA*CIi zIp=B5#ns5XBIy`N+>JEX-E;=_BXxJ@XHaJ_`O5f>D{Dc%H~Bbs4WakgOIbIUKTZBa z^4CcExU5gz>FHQwg9u_d`5V4P;RaF^`E{hRqB5@aAq zJMt0lA*hTCTwxggK4g8W#@N0PoI1rY1VOFk7lkVcaJ zAu=Nj1q=CQTrv9iE%yE|CgRSkj#s$AvX0n@E~W*#><5=tJ3l3R<}OI`=N=9jb&d96;>m8 zh;QHquC40sH%=!x+7N$fvt}syF5YW-{%}_)u9Fs##&fa*Dbn5K9Nr~eB3&fSAZ791 zfG+{mpF~PKDv~)wx=VUQy_v4w`{Z>@B%ViFMjECT>nLIQ@8@inyU#`Cs58pd`&#AX zU%{W8`N1#KMe=V=3Dz$6dId z3rCVl5uc~RD$+61BI0J0FT+4=Ng7IdNs^8sq;8x$L#j#2!TDb(^T+nYX~(bR$B^PE z@FRVq6Dg@x$NHp1Rln_%A+&f@`J@slAvKfzQWn)s%CtBpuHfRp*i0!AaqavT&ulR( zrD*&~pPY%kh7a$R6gqfVQmXmGZQXY@~Fe+v1hyUbH*?O#Tx~$2=zWTD~7#FzC>h(7`?X^-3CaXx+&EY1dA^ zxhq{t%iC{91T?33SVFQpvHWT_pKr^?f3@<^NBss;)_2&5o`<%$_Wi%&!}H!8o}5;` S^P>Qt;\n" "Language-Team: BRITISH ENGLISH \n" @@ -28,7 +28,8 @@ msgstr "Je aktivní" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Pokud je nastaveno na false, nemohou tento objekt vidět uživatelé bez " "potřebného oprávnění." @@ -155,7 +156,8 @@ msgstr "Doručeno na" msgid "canceled" msgstr "Zrušeno" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Neúspěšný" @@ -272,7 +274,8 @@ msgstr "" "Přepsání existující skupiny atributů s uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Přepsání některých polí existující skupiny atributů s uložením " "neupravitelných položek" @@ -324,7 +327,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Přepsání existující hodnoty atributu uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Přepsání některých polí existující hodnoty atributu s uložením " "neupravitelných položek" @@ -382,12 +386,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Vyhledávání podřetězců bez ohledu na velikost písmen v položkách " -"human_readable_id, order_products.product.name a order_products.product." -"partnumber" +"human_readable_id, order_products.product.name a " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -423,9 +427,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Řazení podle jedné z následujících možností: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Pro sestupné " @@ -470,8 +474,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí " -"s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " +"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí" +" s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " "transakce." #: engine/core/docs/drf/viewsets.py:397 @@ -602,7 +606,8 @@ msgstr "Přidání mnoha produktů do seznamu přání" #: engine/core/docs/drf/viewsets.py:533 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." +msgstr "" +"Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." #: engine/core/docs/drf/viewsets.py:541 msgid "remove many products from wishlist" @@ -618,28 +623,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrování podle jedné nebo více dvojic název/hodnota atributu. \n" "- **Syntaxe**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metody** (pokud je vynecháno, výchozí hodnota je `obsahuje`): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- **Typování hodnot**: Pro booleany, celá čísla, floaty se nejprve zkouší " -"JSON (takže můžete předávat seznamy/dicty), `true`/`false`; jinak se s nimi " -"zachází jako s řetězci. \n" -"- **Base64**: předpona `b64-` pro bezpečné zakódování surové hodnoty do URL " -"base64. \n" +"- **Metody** (pokud je vynecháno, výchozí hodnota je `obsahuje`): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Typování hodnot**: Pro booleany, celá čísla, floaty se nejprve zkouší JSON (takže můžete předávat seznamy/dicty), `true`/`false`; jinak se s nimi zachází jako s řetězci. \n" +"- **Base64**: předpona `b64-` pro bezpečné zakódování surové hodnoty do URL base64. \n" "Příklady: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -654,12 +649,10 @@ msgstr "(přesně) UUID produktu" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné " -"řazení použijte předponu `-`. \n" +"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné řazení použijte předponu `-`. \n" "**Povolené:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -917,7 +910,8 @@ msgstr "Odstranění povýšení" #: engine/core/docs/drf/viewsets.py:1169 msgid "rewrite an existing promotion saving non-editables" -msgstr "Přepsání existující propagační akce s uložením neupravitelných položek" +msgstr "" +"Přepsání existující propagační akce s uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" @@ -968,7 +962,8 @@ msgstr "Odstranění značky produktu" #: engine/core/docs/drf/viewsets.py:1259 msgid "rewrite an existing product tag saving non-editables" -msgstr "Přepsání existující značky produktu s uložením neupravitelných položek" +msgstr "" +"Přepsání existující značky produktu s uložením neupravitelných položek" #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" @@ -1124,7 +1119,7 @@ msgstr "Data uložená v mezipaměti" msgid "camelized JSON data from the requested URL" msgstr "Kamelizovaná data JSON z požadované adresy URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Povoleny jsou pouze adresy URL začínající http(s)://." @@ -1208,11 +1203,11 @@ msgstr "Koupit objednávku" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Prosím, pošlete atributy jako řetězec ve formátu attr1=hodnota1," -"attr2=hodnota2." +"Prosím, pošlete atributy jako řetězec ve formátu " +"attr1=hodnota1,attr2=hodnota2." #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1286,9 +1281,11 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Které atributy a hodnoty lze použít pro filtrování této kategorie." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" -"Minimální a maximální ceny produktů v této kategorii, pokud jsou k dispozici." +"Minimální a maximální ceny produktů v této kategorii, pokud jsou k " +"dispozici." #: engine/core/graphene/object_types.py:205 msgid "tags for this category" @@ -1593,8 +1590,8 @@ msgstr "" "dodavatelích a jejich požadavcích na interakci. Třída Vendor se používá k " "definování a správě informací týkajících se externího dodavatele. Uchovává " "jméno prodejce, údaje o ověření požadované pro komunikaci a procentuální " -"přirážku použitou na produkty získané od prodejce. Tento model také uchovává " -"další metadata a omezení, takže je vhodný pro použití v systémech, které " +"přirážku použitou na produkty získané od prodejce. Tento model také uchovává" +" další metadata a omezení, takže je vhodný pro použití v systémech, které " "komunikují s prodejci třetích stran." #: engine/core/models.py:124 @@ -1709,8 +1706,8 @@ msgstr "" "jinými kategoriemi a podporovat vztahy rodič-dítě. Třída obsahuje pole pro " "metadata a vizuální zobrazení, která slouží jako základ pro funkce " "související s kategoriemi. Tato třída se obvykle používá k definování a " -"správě kategorií produktů nebo jiných podobných seskupení v rámci aplikace a " -"umožňuje uživatelům nebo správcům zadávat název, popis a hierarchii " +"správě kategorií produktů nebo jiných podobných seskupení v rámci aplikace a" +" umožňuje uživatelům nebo správcům zadávat název, popis a hierarchii " "kategorií a také přiřazovat atributy, jako jsou obrázky, značky nebo " "priorita." @@ -1763,7 +1760,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Reprezentuje objekt značky v systému. Tato třída zpracovává informace a " "atributy související se značkou, včetně jejího názvu, loga, popisu, " @@ -1812,8 +1810,8 @@ msgstr "Kategorie" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1906,10 +1904,10 @@ msgstr "" "digitální stav, název, popis, číslo dílu a přípona. Poskytuje související " "užitečné vlastnosti pro získání hodnocení, počtu zpětných vazeb, ceny, " "množství a celkového počtu objednávek. Určeno pro použití v systému, který " -"zpracovává elektronické obchodování nebo správu zásob. Tato třída komunikuje " -"se souvisejícími modely (například Category, Brand a ProductTag) a spravuje " -"ukládání často přistupovaných vlastností do mezipaměti pro zlepšení výkonu. " -"Používá se k definování a manipulaci s údaji o produktu a souvisejícími " +"zpracovává elektronické obchodování nebo správu zásob. Tato třída komunikuje" +" se souvisejícími modely (například Category, Brand a ProductTag) a spravuje" +" ukládání často přistupovaných vlastností do mezipaměti pro zlepšení výkonu." +" Používá se k definování a manipulaci s údaji o produktu a souvisejícími " "informacemi v rámci aplikace." #: engine/core/models.py:585 @@ -1965,8 +1963,8 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Reprezentuje atribut v systému. Tato třída slouží k definování a správě " @@ -2035,12 +2033,12 @@ msgstr "Atribut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Představuje konkrétní hodnotu atributu, který je spojen s produktem. Spojuje " -"\"atribut\" s jedinečnou \"hodnotou\", což umožňuje lepší organizaci a " +"Představuje konkrétní hodnotu atributu, který je spojen s produktem. Spojuje" +" \"atribut\" s jedinečnou \"hodnotou\", což umožňuje lepší organizaci a " "dynamickou reprezentaci vlastností produktu." #: engine/core/models.py:788 @@ -2058,15 +2056,15 @@ msgstr "Konkrétní hodnota tohoto atributu" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Představuje obrázek produktu spojený s produktem v systému. Tato třída je " "určena ke správě obrázků produktů, včetně funkcí pro nahrávání souborů s " -"obrázky, jejich přiřazování ke konkrétním produktům a určování pořadí jejich " -"zobrazení. Obsahuje také funkci pro zpřístupnění alternativního textu pro " +"obrázky, jejich přiřazování ke konkrétním produktům a určování pořadí jejich" +" zobrazení. Obsahuje také funkci pro zpřístupnění alternativního textu pro " "obrázky." #: engine/core/models.py:826 @@ -2107,13 +2105,13 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Představuje propagační kampaň na produkty se slevou. Tato třída se používá k " -"definici a správě propagačních kampaní, které nabízejí procentuální slevu na " -"produkty. Třída obsahuje atributy pro nastavení slevové sazby, poskytnutí " -"podrobností o akci a její propojení s příslušnými produkty. Integruje se s " +"Představuje propagační kampaň na produkty se slevou. Tato třída se používá k" +" definici a správě propagačních kampaní, které nabízejí procentuální slevu " +"na produkty. Třída obsahuje atributy pro nastavení slevové sazby, poskytnutí" +" podrobností o akci a její propojení s příslušnými produkty. Integruje se s " "katalogem produktů, aby bylo možné určit položky, kterých se kampaň týká." #: engine/core/models.py:880 @@ -2182,8 +2180,8 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Představuje dokumentační záznam vázaný na produkt. Tato třída se používá k " "ukládání informací o dokumentech souvisejících s konkrétními produkty, " @@ -2205,22 +2203,22 @@ msgstr "Nevyřešené" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Reprezentuje entitu adresy, která obsahuje údaje o umístění a asociace s " "uživatelem. Poskytuje funkce pro ukládání geografických a adresních dat a " "integraci se službami geokódování. Tato třída je určena k ukládání " "podrobných informací o adrese včetně komponent, jako je ulice, město, " "region, země a geolokace (zeměpisná délka a šířka). Podporuje integraci se " -"službami API pro geokódování a umožňuje ukládání nezpracovaných odpovědí API " -"pro další zpracování nebo kontrolu. Třída také umožňuje přiřadit adresu k " +"službami API pro geokódování a umožňuje ukládání nezpracovaných odpovědí API" +" pro další zpracování nebo kontrolu. Třída také umožňuje přiřadit adresu k " "uživateli, což usnadňuje personalizované zpracování dat." #: engine/core/models.py:1029 @@ -2376,8 +2374,8 @@ msgstr "Neplatný typ slevy pro promokód {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2461,7 +2459,8 @@ msgstr "Uživatel smí mít vždy pouze jednu čekající objednávku!" #: engine/core/models.py:1351 msgid "you cannot add products to an order that is not a pending one" -msgstr "Do objednávky, která není v procesu vyřizování, nelze přidat produkty." +msgstr "" +"Do objednávky, která není v procesu vyřizování, nelze přidat produkty." #: engine/core/models.py:1356 msgid "you cannot add inactive products to order" @@ -2542,8 +2541,8 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "spravuje zpětnou vazbu uživatelů k produktům. Tato třída je určena k " -"zachycování a ukládání zpětné vazby uživatelů ke konkrétním produktům, které " -"si zakoupili. Obsahuje atributy pro ukládání komentářů uživatelů, odkaz na " +"zachycování a ukládání zpětné vazby uživatelů ke konkrétním produktům, které" +" si zakoupili. Obsahuje atributy pro ukládání komentářů uživatelů, odkaz na " "související produkt v objednávce a hodnocení přiřazené uživatelem. Třída " "využívá databázová pole k efektivnímu modelování a správě dat zpětné vazby." @@ -2556,7 +2555,8 @@ msgid "feedback comments" msgstr "Zpětná vazba" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Odkazuje na konkrétní produkt v objednávce, kterého se tato zpětná vazba " "týká." @@ -2701,9 +2701,9 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Představuje funkci stahování digitálních aktiv spojených s objednávkami. " "Třída DigitalAssetDownload poskytuje možnost spravovat a zpřístupňovat " @@ -2755,8 +2755,8 @@ msgid "No customer activity in the last 30 days." msgstr "Žádná aktivita zákazníka za posledních 30 dní." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Denní tržby (30d)" +msgid "Daily sales" +msgstr "Denní prodej" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2767,6 +2767,7 @@ msgid "Gross revenue" msgstr "Hrubé příjmy" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Objednávky" @@ -2774,6 +2775,10 @@ msgstr "Objednávky" msgid "Gross" msgstr "Hrubý" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Přístrojová deska" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Přehled příjmů" @@ -2802,20 +2807,32 @@ msgid "No data" msgstr "Bez data" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Příjmy (hrubé, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Příjmy (čisté, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Návraty (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Čistý příjem" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Zpracované objednávky (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Míra vrácení peněz" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Vrácené" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Nízké zásoby" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Žádné nízké skladové zásoby." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2830,11 +2847,11 @@ msgid "Most wished product" msgstr "Nejžádanější produkt" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Zatím nejsou k dispozici žádné údaje." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Nejoblíbenější produkt" @@ -2870,10 +2887,6 @@ msgstr "Žádný prodej v kategorii za posledních 30 dní." msgid "Django site admin" msgstr "Správce webu Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Přístrojová deska" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2903,8 +2916,7 @@ msgstr "Ahoj %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Děkujeme vám za vaši objednávku #%(order.pk)s! S potěšením Vám oznamujeme, " @@ -3019,8 +3031,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Děkujeme vám za vaši objednávku! S potěšením potvrzujeme váš nákup. Níže " @@ -3093,7 +3104,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Rozměry obrázku by neměly přesáhnout w{max_width} x h{max_height} pixelů." -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3101,7 +3112,7 @@ msgstr "" "Zpracuje požadavek na index mapy stránek a vrátí odpověď XML. Zajistí, aby " "odpověď obsahovala odpovídající hlavičku typu obsahu XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3111,28 +3122,28 @@ msgstr "" "požadavek, načte příslušnou podrobnou odpověď mapy stránek a nastaví " "hlavičku Content-Type pro XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Vrátí seznam podporovaných jazyků a odpovídajících informací." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Vrátí parametry webové stránky jako objekt JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Zpracovává operace mezipaměti, jako je čtení a nastavování dat mezipaměti se " -"zadaným klíčem a časovým limitem." +"Zpracovává operace mezipaměti, jako je čtení a nastavování dat mezipaměti se" +" zadaným klíčem a časovým limitem." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Zpracovává odeslání formuláře `contact us`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3140,78 +3151,70 @@ msgstr "" "Zpracovává požadavky na zpracování a ověřování adres URL z příchozích " "požadavků POST." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Zpracovává globální vyhledávací dotazy." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Řeší logiku nákupu jako firmy bez registrace." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Zpracovává stahování digitálního aktiva spojeného s objednávkou.\n" -"Tato funkce se pokusí obsloužit soubor digitálního aktiva umístěný v " -"adresáři úložiště projektu. Pokud soubor není nalezen, je vyvolána chyba " -"HTTP 404, která označuje, že zdroj není k dispozici." +"Tato funkce se pokusí obsloužit soubor digitálního aktiva umístěný v adresáři úložiště projektu. Pokud soubor není nalezen, je vyvolána chyba HTTP 404, která označuje, že zdroj není k dispozici." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid je povinné" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "objednávka produktu neexistuje" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Digitální aktivum můžete stáhnout pouze jednou" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "objednávka musí být zaplacena před stažením digitálního aktiva." -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Objednaný produkt nemá produkt" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon nebyl nalezen" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Zpracovává požadavky na favicon webové stránky.\n" -"Tato funkce se pokusí obsloužit soubor favicon umístěný ve statickém " -"adresáři projektu. Pokud soubor favicon není nalezen, je vyvolána chyba HTTP " -"404, která označuje, že zdroj není k dispozici." +"Tato funkce se pokusí obsloužit soubor favicon umístěný ve statickém adresáři projektu. Pokud soubor favicon není nalezen, je vyvolána chyba HTTP 404, která označuje, že zdroj není k dispozici." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Přesměruje požadavek na indexovou stránku správce. Funkce zpracovává " "příchozí požadavky HTTP a přesměrovává je na indexovou stránku " -"administrátorského rozhraní Django. Pro zpracování přesměrování HTTP používá " -"funkci `redirect` Djanga." +"administrátorského rozhraní Django. Pro zpracování přesměrování HTTP používá" +" funkci `redirect` Djanga." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Vrací aktuální verzi systému eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Vrací vlastní proměnné pro Dashboard." @@ -3226,14 +3229,16 @@ msgstr "" "Definuje sadu pohledů pro správu operací souvisejících s Evibes. Třída " "EvibesViewSet dědí z ModelViewSet a poskytuje funkce pro zpracování akcí a " "operací s entitami Evibes. Zahrnuje podporu dynamických tříd serializátorů " -"na základě aktuální akce, přizpůsobitelných oprávnění a formátů vykreslování." +"na základě aktuální akce, přizpůsobitelných oprávnění a formátů " +"vykreslování." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Představuje sadu pohledů pro správu objektů AttributeGroup. Zpracovává " "operace související s AttributeGroup, včetně filtrování, serializace a " @@ -3262,8 +3267,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Sada pohledů pro správu objektů AttributeValue. Tato sada pohledů poskytuje " "funkce pro výpis, načítání, vytváření, aktualizaci a mazání objektů " @@ -3312,8 +3317,8 @@ msgstr "" "serializace a operací s konkrétními instancemi. Rozšiřuje se z " "`EvibesViewSet`, aby využívala společné funkce, a integruje se s rámcem " "Django REST pro operace RESTful API. Obsahuje metody pro načítání " -"podrobností o produktu, uplatňování oprávnění a přístup k související zpětné " -"vazbě produktu." +"podrobností o produktu, uplatňování oprávnění a přístup k související zpětné" +" vazbě produktu." #: engine/core/viewsets.py:574 msgid "" @@ -3334,8 +3339,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentace sady zobrazení, která zpracovává objekty zpětné vazby. Tato " @@ -3350,31 +3355,31 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet pro správu objednávek a souvisejících operací. Tato třída poskytuje " "funkce pro načítání, úpravu a správu objektů objednávek. Obsahuje různé " "koncové body pro zpracování operací s objednávkami, jako je přidávání nebo " "odebírání produktů, provádění nákupů pro registrované i neregistrované " -"uživatele a načítání nevyřízených objednávek aktuálního ověřeného uživatele. " -"Sada ViewSet používá několik serializátorů podle konkrétní prováděné akce a " -"podle toho vynucuje oprávnění při interakci s daty objednávek." +"uživatele a načítání nevyřízených objednávek aktuálního ověřeného uživatele." +" Sada ViewSet používá několik serializátorů podle konkrétní prováděné akce a" +" podle toho vynucuje oprávnění při interakci s daty objednávek." #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Poskytuje sadu pohledů pro správu entit OrderProduct. Tato sada pohledů " "umožňuje operace CRUD a vlastní akce specifické pro model OrderProduct. " -"Zahrnuje filtrování, kontroly oprávnění a přepínání serializátoru na základě " -"požadované akce. Kromě toho poskytuje podrobnou akci pro zpracování zpětné " +"Zahrnuje filtrování, kontroly oprávnění a přepínání serializátoru na základě" +" požadované akce. Kromě toho poskytuje podrobnou akci pro zpracování zpětné " "vazby na instance OrderProduct" #: engine/core/viewsets.py:879 @@ -3401,8 +3406,8 @@ msgstr "Zpracovává operace související s údaji o zásobách v systému." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3423,9 +3428,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Tato třída poskytuje funkce sady pohledů pro správu objektů `Address`. Třída " -"AddressViewSet umožňuje operace CRUD, filtrování a vlastní akce související " -"s entitami adres. Obsahuje specializované chování pro různé metody HTTP, " +"Tato třída poskytuje funkce sady pohledů pro správu objektů `Address`. Třída" +" AddressViewSet umožňuje operace CRUD, filtrování a vlastní akce související" +" s entitami adres. Obsahuje specializované chování pro různé metody HTTP, " "přepisování serializátoru a zpracování oprávnění na základě kontextu " "požadavku." @@ -3445,5 +3450,5 @@ msgstr "" "Zpracovává operace související se značkami produktů v rámci aplikace. Tato " "třída poskytuje funkce pro načítání, filtrování a serializaci objektů " "Product Tag. Podporuje flexibilní filtrování podle konkrétních atributů " -"pomocí zadaného filtru backend a dynamicky používá různé serializátory podle " -"prováděné akce." +"pomocí zadaného filtru backend a dynamicky používá různé serializátory podle" +" prováděné akce." diff --git a/engine/core/locale/da_DK/LC_MESSAGES/django.mo b/engine/core/locale/da_DK/LC_MESSAGES/django.mo index e05ea04416280a77e77762095c17befcf4c14ec0..bfd04e8a329dff9803ef8c600ffae5f3a4c28f8f 100644 GIT binary patch delta 14869 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 delta 14876 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 diff --git a/engine/core/locale/da_DK/LC_MESSAGES/django.po b/engine/core/locale/da_DK/LC_MESSAGES/django.po index a8fe7c6f..863cabe5 100644 --- a/engine/core/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/core/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "Er aktiv" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Hvis det er sat til false, kan dette objekt ikke ses af brugere uden den " "nødvendige tilladelse." @@ -154,7 +155,8 @@ msgstr "Leveret" msgid "canceled" msgstr "Annulleret" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Mislykket" @@ -205,8 +207,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Anvend kun en nøgle til at læse tilladte data fra cachen.\n" -"Anvend nøgle, data og timeout med autentificering for at skrive data til " -"cachen." +"Anvend nøgle, data og timeout med autentificering for at skrive data til cachen." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -271,7 +272,8 @@ msgstr "" "attributter" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende attributgruppe og gem ikke-" "redigerbare felter" @@ -324,10 +326,11 @@ msgstr "" "Omskriv en eksisterende attributværdi, der gemmer ikke-redigerbare filer" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare " -"felter" +"Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare" +" felter" #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 msgid "list all categories (simple view)" @@ -377,16 +380,17 @@ msgstr "Liste over alle kategorier (enkel visning)" #: engine/core/docs/drf/viewsets.py:275 msgid "for non-staff users, only their own orders are returned." -msgstr "For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." +msgstr "" +"For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Substringsøgning uden brug af store og små bogstaver på tværs af " -"human_readable_id, order_products.product.name og order_products.product." -"partnumber" +"human_readable_id, order_products.product.name og " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -418,13 +422,13 @@ msgstr "Filtrer efter ordrestatus (case-insensitive substring match)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Bestil efter en af: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge " -"(f.eks. '-buy_time')." +"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge" +" (f.eks. '-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -594,7 +598,8 @@ msgstr "Fjern et produkt fra ønskelisten" #: engine/core/docs/drf/viewsets.py:524 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" -"Fjerner et produkt fra en ønskeliste ved hjælp af den angivne `product_uuid`." +"Fjerner et produkt fra en ønskeliste ved hjælp af den angivne " +"`product_uuid`." #: engine/core/docs/drf/viewsets.py:532 msgid "add many products to wishlist" @@ -621,28 +626,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrer efter et eller flere attributnavn/værdipar. \n" "- **Syntaks**: `attr_name=method-value[;attr2=method2-value2]...`.\n" -"- **Metoder** (standard er `icontains`, hvis udeladt): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Værdiindtastning**: JSON forsøges først (så du kan sende lister/dikter), " -"`true`/`false` for booleans, heltal, floats; ellers behandles de som " -"strenge. \n" -"- **Base64**: præfiks med `b64-` for URL-sikker base64-kodning af den rå " -"værdi. \n" +"- **Metoder** (standard er `icontains`, hvis udeladt): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Værdiindtastning**: JSON forsøges først (så du kan sende lister/dikter), `true`/`false` for booleans, heltal, floats; ellers behandles de som strenge. \n" +"- **Base64**: præfiks med `b64-` for URL-sikker base64-kodning af den rå værdi. \n" "Eksempler på dette: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -657,12 +652,10 @@ msgstr "(præcis) Produkt-UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` " -"for faldende. \n" +"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` for faldende. \n" "**Tilladt:** uuid, vurdering, navn, slug, oprettet, ændret, pris, tilfældig" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -1131,7 +1124,7 @@ msgstr "Cachelagrede data" msgid "camelized JSON data from the requested URL" msgstr "Cameliserede JSON-data fra den ønskede URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Kun URL'er, der starter med http(s)://, er tilladt." @@ -1215,11 +1208,11 @@ msgstr "Køb en ordre" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Send venligst attributterne som en streng formateret som attr1=værdi1," -"attr2=værdi2" +"Send venligst attributterne som en streng formateret som " +"attr1=værdi1,attr2=værdi2" #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1291,10 +1284,12 @@ msgstr "Markup-procentdel" #: engine/core/graphene/object_types.py:199 msgid "which attributes and values can be used for filtering this category." msgstr "" -"Hvilke attributter og værdier, der kan bruges til at filtrere denne kategori." +"Hvilke attributter og værdier, der kan bruges til at filtrere denne " +"kategori." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimums- og maksimumspriser for produkter i denne kategori, hvis de er " "tilgængelige." @@ -1602,12 +1597,12 @@ msgid "" msgstr "" "Repræsenterer en vendor-enhed, der er i stand til at lagre oplysninger om " "eksterne leverandører og deres interaktionskrav. Vendor-klassen bruges til " -"at definere og administrere oplysninger om en ekstern leverandør. Den gemmer " -"leverandørens navn, godkendelsesoplysninger, der kræves til kommunikation, " +"at definere og administrere oplysninger om en ekstern leverandør. Den gemmer" +" leverandørens navn, godkendelsesoplysninger, der kræves til kommunikation, " "og den procentvise markering, der anvendes på produkter, der hentes fra " "leverandøren. Denne model vedligeholder også yderligere metadata og " -"begrænsninger, hvilket gør den velegnet til brug i systemer, der interagerer " -"med tredjepartsleverandører." +"begrænsninger, hvilket gør den velegnet til brug i systemer, der interagerer" +" med tredjepartsleverandører." #: engine/core/models.py:124 msgid "stores credentials and endpoints required for vendor communication" @@ -1663,8 +1658,8 @@ msgstr "" "identificere produkter. ProductTag-klassen er designet til entydigt at " "identificere og klassificere produkter gennem en kombination af en intern " "tag-identifikator og et brugervenligt visningsnavn. Den understøtter " -"operationer, der eksporteres gennem mixins, og giver mulighed for tilpasning " -"af metadata til administrative formål." +"operationer, der eksporteres gennem mixins, og giver mulighed for tilpasning" +" af metadata til administrative formål." #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1723,9 +1718,9 @@ msgstr "" "Klassen indeholder felter til metadata og visuel repræsentation, som " "fungerer som et fundament for kategorirelaterede funktioner. Denne klasse " "bruges typisk til at definere og administrere produktkategorier eller andre " -"lignende grupperinger i en applikation, så brugere eller administratorer kan " -"angive navn, beskrivelse og hierarki for kategorier samt tildele attributter " -"som billeder, tags eller prioritet." +"lignende grupperinger i en applikation, så brugere eller administratorer kan" +" angive navn, beskrivelse og hierarki for kategorier samt tildele " +"attributter som billeder, tags eller prioritet." #: engine/core/models.py:274 msgid "upload an image representing this category" @@ -1776,12 +1771,13 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Repræsenterer et brand-objekt i systemet. Denne klasse håndterer oplysninger " -"og attributter relateret til et brand, herunder dets navn, logoer, " -"beskrivelse, tilknyttede kategorier, en unik slug og prioriteret rækkefølge. " -"Den gør det muligt at organisere og repræsentere brand-relaterede data i " +"Repræsenterer et brand-objekt i systemet. Denne klasse håndterer oplysninger" +" og attributter relateret til et brand, herunder dets navn, logoer, " +"beskrivelse, tilknyttede kategorier, en unik slug og prioriteret rækkefølge." +" Den gør det muligt at organisere og repræsentere brand-relaterede data i " "applikationen." #: engine/core/models.py:448 @@ -1826,8 +1822,8 @@ msgstr "Kategorier" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1835,8 +1831,8 @@ msgid "" msgstr "" "Repræsenterer lageret af et produkt, der administreres i systemet. Denne " "klasse giver detaljer om forholdet mellem leverandører, produkter og deres " -"lageroplysninger samt lagerrelaterede egenskaber som pris, købspris, mængde, " -"SKU og digitale aktiver. Den er en del af lagerstyringssystemet for at " +"lageroplysninger samt lagerrelaterede egenskaber som pris, købspris, mængde," +" SKU og digitale aktiver. Den er en del af lagerstyringssystemet for at " "muliggøre sporing og evaluering af produkter, der er tilgængelige fra " "forskellige leverandører." @@ -1921,8 +1917,8 @@ msgstr "" "egenskaber til at hente vurderinger, antal tilbagemeldinger, pris, antal og " "samlede ordrer. Designet til brug i et system, der håndterer e-handel eller " "lagerstyring. Denne klasse interagerer med relaterede modeller (såsom " -"Category, Brand og ProductTag) og administrerer caching for hyppigt anvendte " -"egenskaber for at forbedre ydeevnen. Den bruges til at definere og " +"Category, Brand og ProductTag) og administrerer caching for hyppigt anvendte" +" egenskaber for at forbedre ydeevnen. Den bruges til at definere og " "manipulere produktdata og tilhørende oplysninger i en applikation." #: engine/core/models.py:585 @@ -1978,13 +1974,13 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Repræsenterer en attribut i systemet. Denne klasse bruges til at definere og " -"administrere attributter, som er data, der kan tilpasses, og som kan knyttes " -"til andre enheder. Attributter har tilknyttede kategorier, grupper, " +"Repræsenterer en attribut i systemet. Denne klasse bruges til at definere og" +" administrere attributter, som er data, der kan tilpasses, og som kan " +"knyttes til andre enheder. Attributter har tilknyttede kategorier, grupper, " "værdityper og navne. Modellen understøtter flere typer værdier, herunder " "string, integer, float, boolean, array og object. Det giver mulighed for " "dynamisk og fleksibel datastrukturering." @@ -2040,7 +2036,8 @@ msgstr "er filtrerbar" #: engine/core/models.py:759 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -"Hvilke attributter og værdier, der kan bruges til at filtrere denne kategori." +"Hvilke attributter og værdier, der kan bruges til at filtrere denne " +"kategori." #: engine/core/models.py:771 engine/core/models.py:789 #: engine/core/templates/digital_order_delivered_email.html:134 @@ -2049,9 +2046,9 @@ msgstr "Attribut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Repræsenterer en specifik værdi for en attribut, der er knyttet til et " "produkt. Den forbinder 'attributten' med en unik 'værdi', hvilket giver " @@ -2073,8 +2070,8 @@ msgstr "Den specifikke værdi for denne attribut" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2122,8 +2119,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Repræsenterer en reklamekampagne for produkter med rabat. Denne klasse " "bruges til at definere og administrere kampagner, der tilbyder en " @@ -2199,8 +2196,8 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Repræsenterer en dokumentarisk post, der er knyttet til et produkt. Denne " "klasse bruges til at gemme oplysninger om dokumentarfilm relateret til " @@ -2223,14 +2220,14 @@ msgstr "Uafklaret" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Repræsenterer en adresseenhed, der indeholder placeringsoplysninger og " "tilknytninger til en bruger. Indeholder funktionalitet til lagring af " @@ -2305,9 +2302,9 @@ msgid "" msgstr "" "Repræsenterer en kampagnekode, der kan bruges til rabatter, og styrer dens " "gyldighed, rabattype og anvendelse. PromoCode-klassen gemmer oplysninger om " -"en kampagnekode, herunder dens unikke identifikator, rabattegenskaber (beløb " -"eller procent), gyldighedsperiode, tilknyttet bruger (hvis nogen) og status " -"for dens brug. Den indeholder funktionalitet til at validere og anvende " +"en kampagnekode, herunder dens unikke identifikator, rabattegenskaber (beløb" +" eller procent), gyldighedsperiode, tilknyttet bruger (hvis nogen) og status" +" for dens brug. Den indeholder funktionalitet til at validere og anvende " "kampagnekoden på en ordre og samtidig sikre, at begrænsningerne er opfyldt." #: engine/core/models.py:1087 @@ -2396,8 +2393,8 @@ msgstr "Ugyldig rabattype for promokode {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2405,8 +2402,8 @@ msgstr "" "ordre i applikationen, herunder dens forskellige attributter såsom " "fakturerings- og forsendelsesoplysninger, status, tilknyttet bruger, " "notifikationer og relaterede operationer. Ordrer kan have tilknyttede " -"produkter, kampagner kan anvendes, adresser kan indstilles, og forsendelses- " -"eller faktureringsoplysninger kan opdateres. Ligeledes understøtter " +"produkter, kampagner kan anvendes, adresser kan indstilles, og forsendelses-" +" eller faktureringsoplysninger kan opdateres. Ligeledes understøtter " "funktionaliteten håndtering af produkterne i ordrens livscyklus." #: engine/core/models.py:1213 @@ -2440,8 +2437,8 @@ msgstr "Bestillingsstatus" #: engine/core/models.py:1243 engine/core/models.py:1769 msgid "json structure of notifications to display to users" msgstr "" -"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges " -"tabelvisningen" +"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges" +" tabelvisningen" #: engine/core/models.py:1249 msgid "json representation of order attributes for this order" @@ -2495,7 +2492,8 @@ msgstr "Du kan ikke tilføje flere produkter, end der er på lager" #: engine/core/models.py:1428 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." #: engine/core/models.py:1416 #, python-brace-format @@ -2529,7 +2527,8 @@ msgstr "Du kan ikke købe en tom ordre!" #: engine/core/models.py:1522 msgid "you cannot buy an order without a user" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." #: engine/core/models.py:1536 msgid "a user without a balance cannot buy with balance" @@ -2578,9 +2577,11 @@ msgid "feedback comments" msgstr "Kommentarer til feedback" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Henviser til det specifikke produkt i en ordre, som denne feedback handler om" +"Henviser til det specifikke produkt i en ordre, som denne feedback handler " +"om" #: engine/core/models.py:1720 msgid "related order product" @@ -2607,8 +2608,8 @@ msgid "" "Product models and stores a reference to them." msgstr "" "Repræsenterer produkter forbundet med ordrer og deres attributter. " -"OrderProduct-modellen vedligeholder oplysninger om et produkt, der er en del " -"af en ordre, herunder detaljer som købspris, antal, produktattributter og " +"OrderProduct-modellen vedligeholder oplysninger om et produkt, der er en del" +" af en ordre, herunder detaljer som købspris, antal, produktattributter og " "status. Den administrerer notifikationer til brugeren og administratorer og " "håndterer operationer som f.eks. at returnere produktsaldoen eller tilføje " "feedback. Modellen indeholder også metoder og egenskaber, der understøtter " @@ -2684,7 +2685,8 @@ msgstr "Forkert handling angivet for feedback: {action}!" #: engine/core/models.py:1888 msgid "you cannot feedback an order which is not received" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " +"ordre." #: engine/core/models.py:1894 msgid "name" @@ -2723,9 +2725,9 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Repræsenterer downloadfunktionen for digitale aktiver, der er forbundet med " "ordrer. DigitalAssetDownload-klassen giver mulighed for at administrere og " @@ -2779,8 +2781,8 @@ msgid "No customer activity in the last 30 days." msgstr "Ingen kundeaktivitet i de sidste 30 dage." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Dagligt salg (30d)" +msgid "Daily sales" +msgstr "Dagligt salg" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2791,6 +2793,7 @@ msgid "Gross revenue" msgstr "Bruttoindtægter" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Bestillinger" @@ -2798,6 +2801,10 @@ msgstr "Bestillinger" msgid "Gross" msgstr "Brutto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Dashboard" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Oversigt over indtægter" @@ -2826,20 +2833,32 @@ msgid "No data" msgstr "Ingen dato" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Indtægter (brutto, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Indtægter (netto, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Returnerer (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Nettoomsætning" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Behandlede ordrer (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Tilbagebetalingssats" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Returneret" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Lavt lager" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Ingen varer på lavt lager." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2854,11 +2873,11 @@ msgid "Most wished product" msgstr "Mest ønskede produkt" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Ingen data endnu." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Mest populære produkt" @@ -2894,10 +2913,6 @@ msgstr "Ingen kategorisalg inden for de sidste 30 dage." msgid "Django site admin" msgstr "Django site-administrator" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Dashboard" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2927,8 +2942,7 @@ msgstr "Hej %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Tak for din ordre #%(order.pk)s! Vi er glade for at kunne informere dig om, " @@ -3042,8 +3056,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Tak for din bestilling! Vi er glade for at kunne bekræfte dit køb. Nedenfor " @@ -3114,9 +3127,10 @@ msgstr "Parameteren NOMINATIM_URL skal være konfigureret!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} pixels." +"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} " +"pixels." -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3124,7 +3138,7 @@ msgstr "" "Håndterer anmodningen om sitemap-indekset og returnerer et XML-svar. Den " "sikrer, at svaret indeholder den passende indholdstypeheader for XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3134,17 +3148,17 @@ msgstr "" "behandler anmodningen, henter det relevante sitemap-detaljesvar og " "indstiller Content-Type-headeren til XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returnerer en liste over understøttede sprog og de tilhørende oplysninger." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnerer hjemmesidens parametre som et JSON-objekt." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3152,11 +3166,11 @@ msgstr "" "Håndterer cache-operationer som f.eks. læsning og indstilling af cachedata " "med en specificeret nøgle og timeout." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Håndterer indsendelser af `kontakt os`-formularer." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3164,66 +3178,58 @@ msgstr "" "Håndterer anmodninger om behandling og validering af URL'er fra indgående " "POST-anmodninger." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Håndterer globale søgeforespørgsler." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Håndterer logikken i at købe som en virksomhed uden registrering." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Håndterer download af et digitalt aktiv, der er knyttet til en ordre.\n" -"Denne funktion forsøger at betjene den digitale aktivfil, der ligger i " -"projektets lagermappe. Hvis filen ikke findes, udløses en HTTP 404-fejl som " -"tegn på, at ressourcen ikke er tilgængelig." +"Denne funktion forsøger at betjene den digitale aktivfil, der ligger i projektets lagermappe. Hvis filen ikke findes, udløses en HTTP 404-fejl som tegn på, at ressourcen ikke er tilgængelig." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid er påkrævet" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "Bestil produkt findes ikke" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Du kan kun downloade det digitale aktiv én gang" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "Ordren skal betales, før det digitale aktiv downloades." -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Ordreproduktet har ikke et produkt" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "Favicon ikke fundet" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Håndterer anmodninger om et websteds favicon.\n" -"Denne funktion forsøger at servere favicon-filen, der ligger i projektets " -"statiske mappe. Hvis favicon-filen ikke findes, udløses en HTTP 404-fejl for " -"at angive, at ressourcen ikke er tilgængelig." +"Denne funktion forsøger at servere favicon-filen, der ligger i projektets statiske mappe. Hvis favicon-filen ikke findes, udløses en HTTP 404-fejl for at angive, at ressourcen ikke er tilgængelig." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Omdirigerer anmodningen til administratorens indeksside. Funktionen " @@ -3231,11 +3237,11 @@ msgstr "" "administratorinterfacets indeksside. Den bruger Djangos `redirect`-funktion " "til at håndtere HTTP-omdirigeringen." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Returnerer den aktuelle version af eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Returnerer brugerdefinerede variabler til Dashboard." @@ -3255,10 +3261,11 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Repræsenterer et visningssæt til håndtering af AttributeGroup-objekter. " "Håndterer operationer relateret til AttributeGroup, herunder filtrering, " @@ -3287,11 +3294,11 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Et visningssæt til håndtering af AttributeValue-objekter. Dette viewet giver " -"funktionalitet til at liste, hente, oprette, opdatere og slette " +"Et visningssæt til håndtering af AttributeValue-objekter. Dette viewet giver" +" funktionalitet til at liste, hente, oprette, opdatere og slette " "AttributeValue-objekter. Det integreres med Django REST Framework's viewset-" "mekanismer og bruger passende serializers til forskellige handlinger. " "Filtreringsfunktioner leveres gennem DjangoFilterBackend." @@ -3317,8 +3324,8 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"Repræsenterer et visningssæt til håndtering af Brand-instanser. Denne klasse " -"giver funktionalitet til at forespørge, filtrere og serialisere Brand-" +"Repræsenterer et visningssæt til håndtering af Brand-instanser. Denne klasse" +" giver funktionalitet til at forespørge, filtrere og serialisere Brand-" "objekter. Den bruger Djangos ViewSet-rammeværk til at forenkle " "implementeringen af API-slutpunkter for Brand-objekter." @@ -3335,9 +3342,9 @@ msgstr "" "Håndterer operationer relateret til `Product`-modellen i systemet. Denne " "klasse giver et visningssæt til håndtering af produkter, herunder deres " "filtrering, serialisering og operationer på specifikke forekomster. Den " -"udvider fra `EvibesViewSet` for at bruge fælles funktionalitet og integrerer " -"med Django REST-frameworket til RESTful API-operationer. Indeholder metoder " -"til at hente produktoplysninger, anvende tilladelser og få adgang til " +"udvider fra `EvibesViewSet` for at bruge fælles funktionalitet og integrerer" +" med Django REST-frameworket til RESTful API-operationer. Indeholder metoder" +" til at hente produktoplysninger, anvende tilladelser og få adgang til " "relateret feedback om et produkt." #: engine/core/viewsets.py:574 @@ -3348,9 +3355,9 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Repræsenterer et visningssæt til håndtering af Vendor-objekter. Dette viewet " -"gør det muligt at hente, filtrere og serialisere Vendor-data. Det definerer " -"queryset, filterkonfigurationer og serializer-klasser, der bruges til at " +"Repræsenterer et visningssæt til håndtering af Vendor-objekter. Dette viewet" +" gør det muligt at hente, filtrere og serialisere Vendor-data. Det definerer" +" queryset, filterkonfigurationer og serializer-klasser, der bruges til at " "håndtere forskellige handlinger. Formålet med denne klasse er at give " "strømlinet adgang til Vendor-relaterede ressourcer gennem Django REST-" "frameworket." @@ -3360,16 +3367,16 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Repræsentation af et visningssæt, der håndterer feedback-objekter. Denne " -"klasse håndterer handlinger relateret til feedback-objekter, herunder liste, " -"filtrering og hentning af detaljer. Formålet med dette visningssæt er at " +"klasse håndterer handlinger relateret til feedback-objekter, herunder liste," +" filtrering og hentning af detaljer. Formålet med dette visningssæt er at " "levere forskellige serializers til forskellige handlinger og implementere " -"tilladelsesbaseret håndtering af tilgængelige feedback-objekter. Det udvider " -"basen `EvibesViewSet` og gør brug af Djangos filtreringssystem til at " +"tilladelsesbaseret håndtering af tilgængelige feedback-objekter. Det udvider" +" basen `EvibesViewSet` og gør brug af Djangos filtreringssystem til at " "forespørge på data." #: engine/core/viewsets.py:621 @@ -3377,14 +3384,14 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet til håndtering af ordrer og relaterede operationer. Denne klasse " -"indeholder funktionalitet til at hente, ændre og administrere ordreobjekter. " -"Den indeholder forskellige endpoints til håndtering af ordreoperationer " +"indeholder funktionalitet til at hente, ændre og administrere ordreobjekter." +" Den indeholder forskellige endpoints til håndtering af ordreoperationer " "såsom tilføjelse eller fjernelse af produkter, udførelse af køb for " "registrerede såvel som uregistrerede brugere og hentning af den aktuelle " "godkendte brugers afventende ordrer. ViewSet bruger flere serializers " @@ -3395,13 +3402,13 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Indeholder et visningssæt til håndtering af OrderProduct-enheder. Dette " -"visningssæt muliggør CRUD-operationer og brugerdefinerede handlinger, der er " -"specifikke for OrderProduct-modellen. Det omfatter filtrering, kontrol af " +"visningssæt muliggør CRUD-operationer og brugerdefinerede handlinger, der er" +" specifikke for OrderProduct-modellen. Det omfatter filtrering, kontrol af " "tilladelser og skift af serializer baseret på den ønskede handling. " "Derudover indeholder det en detaljeret handling til håndtering af feedback " "på OrderProduct-instanser." @@ -3430,8 +3437,8 @@ msgstr "Håndterer operationer relateret til lagerdata i systemet." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3452,11 +3459,11 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Denne klasse giver viewset-funktionalitet til håndtering af `Address`-" -"objekter. AddressViewSet-klassen muliggør CRUD-operationer, filtrering og " -"brugerdefinerede handlinger relateret til adresseenheder. Den omfatter " -"specialiseret adfærd for forskellige HTTP-metoder, tilsidesættelse af " -"serializer og håndtering af tilladelser baseret på anmodningskonteksten." +"Denne klasse giver viewset-funktionalitet til håndtering af " +"`Address`-objekter. AddressViewSet-klassen muliggør CRUD-operationer, " +"filtrering og brugerdefinerede handlinger relateret til adresseenheder. Den " +"omfatter specialiseret adfærd for forskellige HTTP-metoder, tilsidesættelse " +"af serializer og håndtering af tilladelser baseret på anmodningskonteksten." #: engine/core/viewsets.py:1123 #, python-brace-format diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.mo b/engine/core/locale/de_DE/LC_MESSAGES/django.mo index da74cdf72a5222525d2bed17c99657497b974fe2..484d3724e70c6ce245ff9ae22c52f920eb3ef50e 100644 GIT binary patch delta 14903 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 diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.po b/engine/core/locale/de_DE/LC_MESSAGES/django.po index 72c7b1b5..baa2cd91 100644 --- a/engine/core/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/core/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Ist aktiv" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Wenn auf false gesetzt, kann dieses Objekt von Benutzern ohne die " "erforderliche Berechtigung nicht gesehen werden." @@ -156,7 +157,8 @@ msgstr "Geliefert" msgid "canceled" msgstr "Abgesagt" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Gescheitert" @@ -207,10 +209,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu " -"lesen.\n" -"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den " -"Cache zu schreiben." +"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu lesen.\n" +"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den Cache zu schreiben." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -276,7 +276,8 @@ msgstr "" "Editierbarkeit" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Umschreiben einiger Felder einer bestehenden Attributgruppe, wobei nicht " "editierbare Felder gespeichert werden" @@ -306,8 +307,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:141 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:151 msgid "list all attribute values (simple view)" @@ -332,7 +333,8 @@ msgstr "" "Editierbarkeit" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Umschreiben einiger Felder eines vorhandenen Attributwerts, wobei nicht " "bearbeitbare Daten gespeichert werden" @@ -365,8 +367,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:244 engine/core/docs/drf/viewsets.py:245 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:252 engine/core/docs/drf/viewsets.py:704 #: engine/core/docs/drf/viewsets.py:988 @@ -391,12 +393,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Groß- und Kleinschreibung unempfindliche Teilstringsuche über " -"human_readable_id, order_products.product.name und order_products.product." -"partnumber" +"human_readable_id, order_products.product.name und " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -432,9 +434,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sortierung nach einem von: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Präfix mit '-' für absteigend " @@ -468,8 +470,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:373 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:380 msgid "purchase an order" @@ -502,7 +504,8 @@ msgstr "eine Bestellung kaufen, ohne ein Konto anzulegen" #: engine/core/docs/drf/viewsets.py:409 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer ab." +"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer " +"ab." #: engine/core/docs/drf/viewsets.py:420 msgid "add product to order" @@ -519,8 +522,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:429 msgid "add a list of products to order, quantities will not count" msgstr "" -"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht " -"gezählt" +"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht" +" gezählt" #: engine/core/docs/drf/viewsets.py:430 msgid "" @@ -589,8 +592,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:496 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:503 msgid "retrieve current pending wishlist of a user" @@ -599,8 +602,8 @@ msgstr "Abruf der aktuellen Wunschliste eines Benutzers" #: engine/core/docs/drf/viewsets.py:504 msgid "retrieves a current pending wishlist of an authenticated user" msgstr "" -"ruft eine aktuelle ausstehende Wunschliste eines authentifizierten Benutzers " -"ab" +"ruft eine aktuelle ausstehende Wunschliste eines authentifizierten Benutzers" +" ab" #: engine/core/docs/drf/viewsets.py:514 msgid "add product to wishlist" @@ -647,29 +650,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtern Sie nach einem oder mehreren Attributnamen/Wertpaaren. \n" "- **Syntax**: `attr_name=Methode-Wert[;attr2=Methode2-Wert2]...`\n" -"- **Methoden** (Standardwert ist \"icontains\", wenn nicht angegeben): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Wert-Typisierung**: JSON wird zuerst versucht (damit man Listen/Dicts " -"übergeben kann), `true`/`false` für Booleans, Integers, Floats; ansonsten " -"als String behandelt. \n" -"- Base64**: Präfix \"b64-\" für URL-sichere Base64-Kodierung des " -"Rohwertes. \n" +"- **Methoden** (Standardwert ist \"icontains\", wenn nicht angegeben): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Wert-Typisierung**: JSON wird zuerst versucht (damit man Listen/Dicts übergeben kann), `true`/`false` für Booleans, Integers, Floats; ansonsten als String behandelt. \n" +"- Base64**: Präfix \"b64-\" für URL-sichere Base64-Kodierung des Rohwertes. \n" "Beispiele: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -684,12 +676,10 @@ msgstr "(genaue) Produkt-UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. " -"Präfix mit \"-\" für absteigend. \n" +"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. Präfix mit \"-\" für absteigend. \n" "**Erlaubt:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -712,8 +702,8 @@ msgstr "Ein Produkt erstellen" #: engine/core/docs/drf/viewsets.py:628 engine/core/docs/drf/viewsets.py:629 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" -"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer " -"Felder" +"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer" +" Felder" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "" @@ -765,10 +755,10 @@ msgstr "Autovervollständigung der Adresseingabe" #: engine/core/docs/drf/viewsets.py:794 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " -"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans " -"-a core -a geo -a payments -a vibes_auth -a blog" +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans" +" -a core -a geo -a payments -a vibes_auth -a blog" #: engine/core/docs/drf/viewsets.py:800 msgid "limit the results amount, 1 < limit < 10, default: 5" @@ -798,8 +788,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:851 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:861 msgid "list all order–product relations (simple view)" @@ -858,8 +848,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:981 msgid "rewrite some fields of an existing brand saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1006 msgid "list all vendors (simple view)" @@ -885,8 +875,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1041 msgid "rewrite some fields of an existing vendor saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1051 msgid "list all product images (simple view)" @@ -912,8 +902,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1086 msgid "rewrite some fields of an existing product image saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1096 msgid "list all promo codes (simple view)" @@ -939,8 +929,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1131 msgid "rewrite some fields of an existing promo code saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1141 msgid "list all promotions (simple view)" @@ -966,8 +956,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1186 msgid "list all stocks (simple view)" @@ -993,8 +983,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1221 msgid "rewrite some fields of an existing stock record saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/docs/drf/viewsets.py:1231 msgid "list all product tags (simple view)" @@ -1020,8 +1010,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " -"Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" +" Daten zu speichern" #: engine/core/elasticsearch/__init__.py:122 #: engine/core/elasticsearch/__init__.py:570 @@ -1104,8 +1094,8 @@ msgstr "SKU" #: engine/core/filters.py:184 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories " -"zu verwenden" +"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories" +" zu verwenden" #: engine/core/filters.py:353 msgid "Search (ID, product name or part number)" @@ -1173,7 +1163,7 @@ msgstr "Zwischengespeicherte Daten" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-Daten aus der angeforderten URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Nur URLs, die mit http(s):// beginnen, sind zulässig" @@ -1224,7 +1214,8 @@ msgstr "Aktion muss entweder \"Hinzufügen\" oder \"Entfernen\" sein!" #: engine/core/graphene/mutations.py:293 msgid "perform an action on a list of products in the wishlist" -msgstr "Ausführen einer Aktion für eine Liste von Produkten in der Wunschliste" +msgstr "" +"Ausführen einer Aktion für eine Liste von Produkten in der Wunschliste" #: engine/core/graphene/mutations.py:311 msgid "please provide wishlist_uuid value" @@ -1259,8 +1250,8 @@ msgstr "Eine Bestellung kaufen" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Bitte senden Sie die Attribute als String im Format attr1=wert1,attr2=wert2" @@ -1339,9 +1330,11 @@ msgstr "" "verwendet werden." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" -"Mindest- und Höchstpreise für Produkte in dieser Kategorie, sofern verfügbar." +"Mindest- und Höchstpreise für Produkte in dieser Kategorie, sofern " +"verfügbar." #: engine/core/graphene/object_types.py:205 msgid "tags for this category" @@ -1611,11 +1604,11 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"Stellt eine Gruppe von Attributen dar, die hierarchisch aufgebaut sein kann. " -"Diese Klasse wird verwendet, um Attributgruppen zu verwalten und zu " +"Stellt eine Gruppe von Attributen dar, die hierarchisch aufgebaut sein kann." +" Diese Klasse wird verwendet, um Attributgruppen zu verwalten und zu " "organisieren. Eine Attributgruppe kann eine übergeordnete Gruppe haben, die " -"eine hierarchische Struktur bildet. Dies kann nützlich sein, um Attribute in " -"einem komplexen System effektiver zu kategorisieren und zu verwalten." +"eine hierarchische Struktur bildet. Dies kann nützlich sein, um Attribute in" +" einem komplexen System effektiver zu kategorisieren und zu verwalten." #: engine/core/models.py:91 msgid "parent of this group" @@ -1645,9 +1638,9 @@ msgid "" msgstr "" "Stellt eine Verkäuferentität dar, die Informationen über externe Verkäufer " "und deren Interaktionsanforderungen speichern kann. Die Klasse Vendor wird " -"zur Definition und Verwaltung von Informationen über einen externen Anbieter " -"verwendet. Sie speichert den Namen des Anbieters, die für die Kommunikation " -"erforderlichen Authentifizierungsdaten und den prozentualen Aufschlag, der " +"zur Definition und Verwaltung von Informationen über einen externen Anbieter" +" verwendet. Sie speichert den Namen des Anbieters, die für die Kommunikation" +" erforderlichen Authentifizierungsdaten und den prozentualen Aufschlag, der " "auf die vom Anbieter abgerufenen Produkte angewendet wird. Dieses Modell " "verwaltet auch zusätzliche Metadaten und Einschränkungen, wodurch es sich " "für die Verwendung in Systemen eignet, die mit Drittanbietern interagieren." @@ -1704,10 +1697,10 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"Stellt ein Produkt-Tag dar, das zur Klassifizierung oder Identifizierung von " -"Produkten verwendet wird. Die Klasse ProductTag dient der eindeutigen " -"Identifizierung und Klassifizierung von Produkten durch eine Kombination aus " -"einem internen Tag-Bezeichner und einem benutzerfreundlichen Anzeigenamen. " +"Stellt ein Produkt-Tag dar, das zur Klassifizierung oder Identifizierung von" +" Produkten verwendet wird. Die Klasse ProductTag dient der eindeutigen " +"Identifizierung und Klassifizierung von Produkten durch eine Kombination aus" +" einem internen Tag-Bezeichner und einem benutzerfreundlichen Anzeigenamen. " "Sie unterstützt Operationen, die über Mixins exportiert werden, und " "ermöglicht die Anpassung von Metadaten für Verwaltungszwecke." @@ -1768,9 +1761,9 @@ msgstr "" "Beziehungen unterstützen. Die Klasse enthält Felder für Metadaten und " "visuelle Darstellung, die als Grundlage für kategoriebezogene Funktionen " "dienen. Diese Klasse wird in der Regel verwendet, um Produktkategorien oder " -"andere ähnliche Gruppierungen innerhalb einer Anwendung zu definieren und zu " -"verwalten. Sie ermöglicht es Benutzern oder Administratoren, den Namen, die " -"Beschreibung und die Hierarchie von Kategorien festzulegen sowie Attribute " +"andere ähnliche Gruppierungen innerhalb einer Anwendung zu definieren und zu" +" verwalten. Sie ermöglicht es Benutzern oder Administratoren, den Namen, die" +" Beschreibung und die Hierarchie von Kategorien festzulegen sowie Attribute " "wie Bilder, Tags oder Priorität zuzuweisen." #: engine/core/models.py:274 @@ -1824,7 +1817,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Stellt ein Markenobjekt im System dar. Diese Klasse verwaltet Informationen " "und Attribute in Bezug auf eine Marke, einschließlich ihres Namens, Logos, " @@ -1875,16 +1869,16 @@ msgstr "Kategorien" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" "Stellt den Bestand eines im System verwalteten Produkts dar. Diese Klasse " -"liefert Details über die Beziehung zwischen Lieferanten, Produkten und deren " -"Bestandsinformationen sowie bestandsbezogene Eigenschaften wie Preis, " +"liefert Details über die Beziehung zwischen Lieferanten, Produkten und deren" +" Bestandsinformationen sowie bestandsbezogene Eigenschaften wie Preis, " "Einkaufspreis, Menge, SKU und digitale Assets. Sie ist Teil des " "Bestandsverwaltungssystems, um die Nachverfolgung und Bewertung der von " "verschiedenen Anbietern verfügbaren Produkte zu ermöglichen." @@ -1940,7 +1934,8 @@ msgstr "SKU des Verkäufers" #: engine/core/models.py:556 msgid "digital file associated with this stock if applicable" -msgstr "Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" +msgstr "" +"Digitale Datei, die mit diesem Bestand verbunden ist, falls zutreffend" #: engine/core/models.py:557 msgid "digital file" @@ -1968,12 +1963,12 @@ msgstr "" "Stellt ein Produkt mit Attributen wie Kategorie, Marke, Tags, digitalem " "Status, Name, Beschreibung, Teilenummer und Slug dar. Bietet verwandte " "Hilfseigenschaften zum Abrufen von Bewertungen, Feedback-Zahlen, Preis, " -"Menge und Gesamtbestellungen. Konzipiert für die Verwendung in einem System, " -"das den elektronischen Handel oder die Bestandsverwaltung verwaltet. Diese " +"Menge und Gesamtbestellungen. Konzipiert für die Verwendung in einem System," +" das den elektronischen Handel oder die Bestandsverwaltung verwaltet. Diese " "Klasse interagiert mit verwandten Modellen (wie Category, Brand und " -"ProductTag) und verwaltet die Zwischenspeicherung von Eigenschaften, auf die " -"häufig zugegriffen wird, um die Leistung zu verbessern. Sie wird verwendet, " -"um Produktdaten und die damit verbundenen Informationen innerhalb einer " +"ProductTag) und verwaltet die Zwischenspeicherung von Eigenschaften, auf die" +" häufig zugegriffen wird, um die Leistung zu verbessern. Sie wird verwendet," +" um Produktdaten und die damit verbundenen Informationen innerhalb einer " "Anwendung zu definieren und zu manipulieren." #: engine/core/models.py:585 @@ -1998,7 +1993,8 @@ msgstr "Ist das Produkt digital" #: engine/core/models.py:612 msgid "provide a clear identifying name for the product" -msgstr "Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." +msgstr "" +"Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." #: engine/core/models.py:613 msgid "product name" @@ -2029,12 +2025,12 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Stellt ein Attribut im System dar. Diese Klasse wird verwendet, um Attribute " -"zu definieren und zu verwalten. Dabei handelt es sich um anpassbare " +"Stellt ein Attribut im System dar. Diese Klasse wird verwendet, um Attribute" +" zu definieren und zu verwalten. Dabei handelt es sich um anpassbare " "Datenelemente, die mit anderen Entitäten verknüpft werden können. Attribute " "haben zugehörige Kategorien, Gruppen, Werttypen und Namen. Das Modell " "unterstützt mehrere Wertetypen, darunter String, Integer, Float, Boolean, " @@ -2102,9 +2098,9 @@ msgstr "Attribut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Stellt einen spezifischen Wert für ein Attribut dar, das mit einem Produkt " "verknüpft ist. Es verknüpft das \"Attribut\" mit einem eindeutigen \"Wert\" " @@ -2127,16 +2123,16 @@ msgstr "Der spezifische Wert für dieses Attribut" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Stellt ein Produktbild dar, das mit einem Produkt im System verbunden ist. " "Diese Klasse dient der Verwaltung von Bildern für Produkte, einschließlich " "der Funktionen zum Hochladen von Bilddateien, der Zuordnung zu bestimmten " -"Produkten und der Festlegung ihrer Anzeigereihenfolge. Sie enthält auch eine " -"Funktion zur Barrierefreiheit mit alternativem Text für die Bilder." +"Produkten und der Festlegung ihrer Anzeigereihenfolge. Sie enthält auch eine" +" Funktion zur Barrierefreiheit mit alternativem Text für die Bilder." #: engine/core/models.py:826 msgid "provide alternative text for the image for accessibility" @@ -2178,16 +2174,16 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Repräsentiert eine Werbekampagne für Produkte mit einem Rabatt. Diese Klasse " -"wird verwendet, um Werbekampagnen zu definieren und zu verwalten, die einen " -"prozentualen Rabatt für Produkte anbieten. Die Klasse enthält Attribute zum " -"Festlegen des Rabattsatzes, zum Bereitstellen von Details über die " +"Repräsentiert eine Werbekampagne für Produkte mit einem Rabatt. Diese Klasse" +" wird verwendet, um Werbekampagnen zu definieren und zu verwalten, die einen" +" prozentualen Rabatt für Produkte anbieten. Die Klasse enthält Attribute zum" +" Festlegen des Rabattsatzes, zum Bereitstellen von Details über die " "Werbeaktion und zum Verknüpfen der Aktion mit den entsprechenden Produkten. " -"Sie ist mit dem Produktkatalog integriert, um die betroffenen Artikel in der " -"Kampagne zu bestimmen." +"Sie ist mit dem Produktkatalog integriert, um die betroffenen Artikel in der" +" Kampagne zu bestimmen." #: engine/core/models.py:880 msgid "percentage discount for the selected products" @@ -2231,8 +2227,8 @@ msgstr "" "Stellt die Wunschliste eines Benutzers zum Speichern und Verwalten " "gewünschter Produkte dar. Die Klasse bietet Funktionen zur Verwaltung einer " "Sammlung von Produkten und unterstützt Vorgänge wie das Hinzufügen und " -"Entfernen von Produkten sowie das Hinzufügen und Entfernen mehrerer Produkte " -"gleichzeitig." +"Entfernen von Produkten sowie das Hinzufügen und Entfernen mehrerer Produkte" +" gleichzeitig." #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2256,15 +2252,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Stellt einen dokumentarischen Datensatz dar, der an ein Produkt gebunden " "ist. Diese Klasse wird verwendet, um Informationen über Dokumentationen zu " "bestimmten Produkten zu speichern, einschließlich Datei-Uploads und deren " "Metadaten. Sie enthält Methoden und Eigenschaften zur Handhabung des " -"Dateityps und des Speicherpfads für die Dokumentationsdateien. Sie erweitert " -"die Funktionalität von bestimmten Mixins und bietet zusätzliche " +"Dateityps und des Speicherpfads für die Dokumentationsdateien. Sie erweitert" +" die Funktionalität von bestimmten Mixins und bietet zusätzliche " "benutzerdefinierte Funktionen." #: engine/core/models.py:998 @@ -2281,14 +2277,14 @@ msgstr "Ungelöst" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Stellt eine Adresseinheit dar, die Standortdetails und Assoziationen mit " "einem Benutzer enthält. Bietet Funktionen für die Speicherung von " @@ -2383,7 +2379,8 @@ msgstr "Kennung des Promo-Codes" #: engine/core/models.py:1095 msgid "fixed discount amount applied if percent is not used" msgstr "" -"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet wird" +"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " +"wird" #: engine/core/models.py:1096 msgid "fixed discount amount" @@ -2460,8 +2457,8 @@ msgstr "Ungültiger Rabatttyp für den Promocode {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2635,8 +2632,8 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Verwaltet Benutzerfeedback für Produkte. Diese Klasse dient der Erfassung " -"und Speicherung von Benutzerfeedback für bestimmte Produkte, die sie gekauft " -"haben. Sie enthält Attribute zum Speichern von Benutzerkommentaren, einen " +"und Speicherung von Benutzerfeedback für bestimmte Produkte, die sie gekauft" +" haben. Sie enthält Attribute zum Speichern von Benutzerkommentaren, einen " "Verweis auf das entsprechende Produkt in der Bestellung und eine vom " "Benutzer zugewiesene Bewertung. Die Klasse verwendet Datenbankfelder, um " "Feedbackdaten effektiv zu modellieren und zu verwalten." @@ -2650,10 +2647,11 @@ msgid "feedback comments" msgstr "Kommentare zum Feedback" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese " -"Rückmeldung bezieht" +"Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese" +" Rückmeldung bezieht" #: engine/core/models.py:1720 msgid "related order product" @@ -2679,14 +2677,14 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"Stellt die mit Bestellungen verbundenen Produkte und ihre Attribute dar. Das " -"OrderProduct-Modell verwaltet Informationen über ein Produkt, das Teil einer " -"Bestellung ist, einschließlich Details wie Kaufpreis, Menge, " +"Stellt die mit Bestellungen verbundenen Produkte und ihre Attribute dar. Das" +" OrderProduct-Modell verwaltet Informationen über ein Produkt, das Teil " +"einer Bestellung ist, einschließlich Details wie Kaufpreis, Menge, " "Produktattribute und Status. Es verwaltet Benachrichtigungen für Benutzer " "und Administratoren und führt Vorgänge wie die Rückgabe des Produktsaldos " "oder das Hinzufügen von Feedback durch. Dieses Modell bietet auch Methoden " -"und Eigenschaften, die die Geschäftslogik unterstützen, z. B. die Berechnung " -"des Gesamtpreises oder die Generierung einer Download-URL für digitale " +"und Eigenschaften, die die Geschäftslogik unterstützen, z. B. die Berechnung" +" des Gesamtpreises oder die Generierung einer Download-URL für digitale " "Produkte. Das Modell ist mit den Modellen \"Order\" und \"Product\" " "integriert und speichert einen Verweis auf diese." @@ -2800,16 +2798,16 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Stellt die Download-Funktionalität für digitale Assets in Verbindung mit " "Bestellungen dar. Die Klasse DigitalAssetDownload ermöglicht die Verwaltung " "und den Zugriff auf Downloads im Zusammenhang mit Auftragsprodukten. Sie " "verwaltet Informationen über das zugehörige Auftragsprodukt, die Anzahl der " -"Downloads und ob das Asset öffentlich sichtbar ist. Sie enthält eine Methode " -"zur Generierung einer URL für das Herunterladen des Assets, wenn sich die " +"Downloads und ob das Asset öffentlich sichtbar ist. Sie enthält eine Methode" +" zur Generierung einer URL für das Herunterladen des Assets, wenn sich die " "zugehörige Bestellung in einem abgeschlossenen Status befindet." #: engine/core/models.py:1961 @@ -2856,8 +2854,8 @@ msgid "No customer activity in the last 30 days." msgstr "Keine Kundenaktivität in den letzten 30 Tagen." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Tägliche Verkäufe (30d)" +msgid "Daily sales" +msgstr "Tägliche Verkäufe" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2868,6 +2866,7 @@ msgid "Gross revenue" msgstr "Bruttoeinnahmen" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Bestellungen" @@ -2875,6 +2874,10 @@ msgstr "Bestellungen" msgid "Gross" msgstr "Brutto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Dashboard" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Einkommensübersicht" @@ -2903,20 +2906,32 @@ msgid "No data" msgstr "Kein Datum" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Einkommen (gross, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Einnahmen (netto, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Rückgaben (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Nettoeinkommen" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Bearbeitete Aufträge (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Erstattungssatz" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Zurückgeschickt" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Niedriger Bestand" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Keine Artikel mit geringem Lagerbestand." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2931,11 +2946,11 @@ msgid "Most wished product" msgstr "Meistgewünschtes Produkt" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Noch keine Daten." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Beliebtestes Produkt" @@ -2971,10 +2986,6 @@ msgstr "Keine Kategorieverkäufe in den letzten 30 Tagen." msgid "Django site admin" msgstr "Django-Website-Administrator" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Dashboard" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3004,8 +3015,7 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Vielen Dank für Ihre Bestellung #%(order.pk)s! Wir freuen uns, Ihnen " @@ -3120,8 +3130,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Vielen Dank für Ihre Bestellung! Wir freuen uns, Ihren Kauf zu bestätigen. " @@ -3158,7 +3167,8 @@ msgstr "Sowohl Daten als auch Timeout sind erforderlich" #: engine/core/utils/caching.py:46 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" +msgstr "" +"Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" #: engine/core/utils/emailing.py:27 #, python-brace-format @@ -3195,7 +3205,7 @@ msgstr "" "Die Bildabmessungen sollten w{max_width} x h{max_height} Pixel nicht " "überschreiten" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3204,7 +3214,7 @@ msgstr "" "zurück. Sie stellt sicher, dass die Antwort den entsprechenden Content-Type-" "Header für XML enthält." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3214,18 +3224,18 @@ msgstr "" "Funktion verarbeitet die Anfrage, holt die entsprechende Sitemap-" "Detailantwort ab und setzt den Content-Type-Header für XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Gibt eine Liste der unterstützten Sprachen und der entsprechenden " "Informationen zurück." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Gibt die Parameter der Website als JSON-Objekt zurück." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3233,11 +3243,11 @@ msgstr "" "Erledigt Cache-Operationen wie das Lesen und Setzen von Cache-Daten mit " "einem bestimmten Schlüssel und Timeout." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Verarbeitet Übermittlungen des Formulars \"Kontaktieren Sie uns\"." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3245,70 +3255,60 @@ msgstr "" "Bearbeitet Anfragen zur Verarbeitung und Validierung von URLs aus " "eingehenden POST-Anfragen." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Bearbeitet globale Suchanfragen." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Behandelt die Logik des Kaufs als Unternehmen ohne Registrierung." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Bearbeitet das Herunterladen eines digitalen Assets, das mit einem Auftrag " -"verbunden ist.\n" -"Diese Funktion versucht, die Datei des digitalen Assets, die sich im " -"Speicherverzeichnis des Projekts befindet, bereitzustellen. Wenn die Datei " -"nicht gefunden wird, wird ein HTTP 404-Fehler ausgelöst, um anzuzeigen, dass " -"die Ressource nicht verfügbar ist." +"Bearbeitet das Herunterladen eines digitalen Assets, das mit einem Auftrag verbunden ist.\n" +"Diese Funktion versucht, die Datei des digitalen Assets, die sich im Speicherverzeichnis des Projekts befindet, bereitzustellen. Wenn die Datei nicht gefunden wird, wird ein HTTP 404-Fehler ausgelöst, um anzuzeigen, dass die Ressource nicht verfügbar ist." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid ist erforderlich" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "Produkt bestellen existiert nicht" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Sie können das digitale Asset nur einmal herunterladen" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "" -"die Bestellung muss vor dem Herunterladen des digitalen Assets bezahlt werden" +"die Bestellung muss vor dem Herunterladen des digitalen Assets bezahlt " +"werden" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Das Bestellprodukt hat kein Produkt" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "Favicon nicht gefunden" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Bearbeitet Anfragen nach dem Favicon einer Website.\n" -"Diese Funktion versucht, die Favicon-Datei, die sich im statischen " -"Verzeichnis des Projekts befindet, bereitzustellen. Wenn die Favicon-Datei " -"nicht gefunden wird, wird ein HTTP 404-Fehler ausgegeben, um anzuzeigen, " -"dass die Ressource nicht verfügbar ist." +"Diese Funktion versucht, die Favicon-Datei, die sich im statischen Verzeichnis des Projekts befindet, bereitzustellen. Wenn die Favicon-Datei nicht gefunden wird, wird ein HTTP 404-Fehler ausgegeben, um anzuzeigen, dass die Ressource nicht verfügbar ist." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Leitet die Anfrage auf die Admin-Indexseite um. Die Funktion verarbeitet " @@ -3316,11 +3316,11 @@ msgstr "" "Administrationsoberfläche um. Sie verwendet die Funktion `redirect` von " "Django für die Bearbeitung der HTTP-Umleitung." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Gibt die aktuelle Version von eVibes zurück." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Gibt benutzerdefinierte Variablen für das Dashboard zurück." @@ -3333,22 +3333,23 @@ msgid "" "and rendering formats." msgstr "" "Definiert ein Viewset für die Verwaltung von Evibes-bezogenen Operationen. " -"Die Klasse EvibesViewSet erbt von ModelViewSet und bietet Funktionalität für " -"die Handhabung von Aktionen und Operationen auf Evibes-Entitäten. Sie " +"Die Klasse EvibesViewSet erbt von ModelViewSet und bietet Funktionalität für" +" die Handhabung von Aktionen und Operationen auf Evibes-Entitäten. Sie " "enthält Unterstützung für dynamische Serialisiererklassen auf der Grundlage " "der aktuellen Aktion, anpassbare Berechtigungen und Rendering-Formate." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Stellt ein Viewset für die Verwaltung von AttributeGroup-Objekten dar. " "Bearbeitet Vorgänge im Zusammenhang mit AttributeGroup, einschließlich " -"Filterung, Serialisierung und Abruf von Daten. Diese Klasse ist Teil der API-" -"Schicht der Anwendung und bietet eine standardisierte Methode zur " +"Filterung, Serialisierung und Abruf von Daten. Diese Klasse ist Teil der " +"API-Schicht der Anwendung und bietet eine standardisierte Methode zur " "Verarbeitung von Anfragen und Antworten für AttributeGroup-Daten." #: engine/core/viewsets.py:175 @@ -3373,14 +3374,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Ein Viewset für die Verwaltung von AttributeValue-Objekten. Dieses Viewset " "bietet Funktionen zum Auflisten, Abrufen, Erstellen, Aktualisieren und " "Löschen von AttributeValue-Objekten. Es integriert sich in die Viewset-" -"Mechanismen des Django REST Frameworks und verwendet geeignete Serialisierer " -"für verschiedene Aktionen. Filterfunktionen werden über das " +"Mechanismen des Django REST Frameworks und verwendet geeignete Serialisierer" +" für verschiedene Aktionen. Filterfunktionen werden über das " "DjangoFilterBackend bereitgestellt." #: engine/core/viewsets.py:213 @@ -3392,8 +3393,8 @@ msgid "" "can access specific data." msgstr "" "Verwaltet Ansichten für kategoriebezogene Operationen. Die Klasse " -"CategoryViewSet ist für die Handhabung von Vorgängen im Zusammenhang mit dem " -"Kategoriemodell im System verantwortlich. Sie unterstützt das Abrufen, " +"CategoryViewSet ist für die Handhabung von Vorgängen im Zusammenhang mit dem" +" Kategoriemodell im System verantwortlich. Sie unterstützt das Abrufen, " "Filtern und Serialisieren von Kategoriedaten. Das Viewset erzwingt auch " "Berechtigungen, um sicherzustellen, dass nur autorisierte Benutzer auf " "bestimmte Daten zugreifen können." @@ -3422,8 +3423,8 @@ msgid "" msgstr "" "Verwaltet Vorgänge im Zusammenhang mit dem Modell \"Produkt\" im System. " "Diese Klasse bietet ein Viewset für die Verwaltung von Produkten, " -"einschließlich ihrer Filterung, Serialisierung und Operationen für bestimmte " -"Instanzen. Sie ist eine Erweiterung von `EvibesViewSet`, um gemeinsame " +"einschließlich ihrer Filterung, Serialisierung und Operationen für bestimmte" +" Instanzen. Sie ist eine Erweiterung von `EvibesViewSet`, um gemeinsame " "Funktionen zu nutzen und integriert sich in das Django REST Framework für " "RESTful API Operationen. Enthält Methoden zum Abrufen von Produktdetails, " "zur Anwendung von Berechtigungen und zum Zugriff auf zugehörige " @@ -3449,15 +3450,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Darstellung eines View-Sets, das Feedback-Objekte behandelt. Diese Klasse " "verwaltet Vorgänge im Zusammenhang mit Feedback-Objekten, einschließlich " "Auflistung, Filterung und Abruf von Details. Der Zweck dieses ViewSets ist " -"es, verschiedene Serialisierer für verschiedene Aktionen bereitzustellen und " -"eine erlaubnisbasierte Handhabung von zugänglichen Feedback-Objekten zu " +"es, verschiedene Serialisierer für verschiedene Aktionen bereitzustellen und" +" eine erlaubnisbasierte Handhabung von zugänglichen Feedback-Objekten zu " "implementieren. Es erweitert das Basis `EvibesViewSet` und nutzt das " "Filtersystem von Django zur Abfrage von Daten." @@ -3466,16 +3467,16 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet zur Verwaltung von Aufträgen und zugehörigen Vorgängen. Diese Klasse " -"bietet Funktionen zum Abrufen, Ändern und Verwalten von Bestellobjekten. Sie " -"enthält verschiedene Endpunkte für die Handhabung von Bestellvorgängen wie " -"das Hinzufügen oder Entfernen von Produkten, die Durchführung von Käufen für " -"registrierte und nicht registrierte Benutzer und das Abrufen der " +"ViewSet zur Verwaltung von Aufträgen und zugehörigen Vorgängen. Diese Klasse" +" bietet Funktionen zum Abrufen, Ändern und Verwalten von Bestellobjekten. " +"Sie enthält verschiedene Endpunkte für die Handhabung von Bestellvorgängen " +"wie das Hinzufügen oder Entfernen von Produkten, die Durchführung von Käufen" +" für registrierte und nicht registrierte Benutzer und das Abrufen der " "ausstehenden Bestellungen des aktuell authentifizierten Benutzers. Das " "ViewSet verwendet mehrere Serialisierer, die auf der spezifischen Aktion " "basieren, die durchgeführt wird, und erzwingt die entsprechenden " @@ -3485,16 +3486,16 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Bietet ein Viewset für die Verwaltung von OrderProduct-Entitäten. Dieses " "Viewset ermöglicht CRUD-Vorgänge und benutzerdefinierte Aktionen speziell " "für das OrderProduct-Modell. Es umfasst Filterung, Berechtigungsprüfungen " "und Serializer-Umschaltung auf der Grundlage der angeforderten Aktion. " -"Außerdem bietet es eine detaillierte Aktion für die Bearbeitung von Feedback " -"zu OrderProduct-Instanzen" +"Außerdem bietet es eine detaillierte Aktion für die Bearbeitung von Feedback" +" zu OrderProduct-Instanzen" #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " @@ -3521,15 +3522,15 @@ msgstr "Erledigt Vorgänge im Zusammenhang mit Bestandsdaten im System." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet für die Verwaltung von Wishlist-Vorgängen. Das WishlistViewSet " -"bietet Endpunkte für die Interaktion mit der Wunschliste eines Benutzers und " -"ermöglicht das Abrufen, Ändern und Anpassen von Produkten innerhalb der " +"bietet Endpunkte für die Interaktion mit der Wunschliste eines Benutzers und" +" ermöglicht das Abrufen, Ändern und Anpassen von Produkten innerhalb der " "Wunschliste. Dieses ViewSet erleichtert Funktionen wie das Hinzufügen, " "Entfernen und Massenaktionen für Produkte auf der Wunschliste. " "Berechtigungsprüfungen sind integriert, um sicherzustellen, dass Benutzer " @@ -3545,8 +3546,8 @@ msgid "" "on the request context." msgstr "" "Diese Klasse bietet Viewset-Funktionalität für die Verwaltung von " -"\"Address\"-Objekten. Die Klasse AddressViewSet ermöglicht CRUD-Operationen, " -"Filterung und benutzerdefinierte Aktionen im Zusammenhang mit " +"\"Address\"-Objekten. Die Klasse AddressViewSet ermöglicht CRUD-Operationen," +" Filterung und benutzerdefinierte Aktionen im Zusammenhang mit " "Adressentitäten. Sie umfasst spezielle Verhaltensweisen für verschiedene " "HTTP-Methoden, Serialisierungsüberschreibungen und die Behandlung von " "Berechtigungen auf der Grundlage des Anfragekontexts." @@ -3567,6 +3568,6 @@ msgstr "" "Bearbeitet Vorgänge im Zusammenhang mit Produkt-Tags innerhalb der " "Anwendung. Diese Klasse bietet Funktionen zum Abrufen, Filtern und " "Serialisieren von Produkt-Tag-Objekten. Sie unterstützt die flexible " -"Filterung nach bestimmten Attributen unter Verwendung des angegebenen Filter-" -"Backends und verwendet dynamisch verschiedene Serialisierer auf der " +"Filterung nach bestimmten Attributen unter Verwendung des angegebenen " +"Filter-Backends und verwendet dynamisch verschiedene Serialisierer auf der " "Grundlage der durchgeführten Aktion." diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.mo b/engine/core/locale/en_GB/LC_MESSAGES/django.mo index 1f32402b030959cbf802b5cfe22f6e051b9f1a5e..b85a659ee046d1407ad8db94ef406cdf79ecb558 100644 GIT binary patch delta 14875 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 delta 14887 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 Hck=uXYp9aC diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.po b/engine/core/locale/en_GB/LC_MESSAGES/django.po index 50ad97f1..c496e9bd 100644 --- a/engine/core/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/core/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 Egor "fureunoir" Gorbunov # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -31,9 +31,11 @@ msgstr "Is Active" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"If set to false, this object can't be seen by users without needed permission" +"If set to false, this object can't be seen by users without needed " +"permission" #: engine/core/abstract.py:23 engine/core/choices.py:18 msgid "created" @@ -157,7 +159,8 @@ msgstr "Delivered" msgid "canceled" msgstr "Canceled" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Failed" @@ -272,7 +275,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" @@ -321,7 +325,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" @@ -375,11 +380,11 @@ msgstr "For non-staff users, only their own orders are returned." #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -411,13 +416,13 @@ msgstr "Filter by order status (case-insensitive substring match)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -603,30 +608,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:568 engine/core/docs/drf/viewsets.py:569 @@ -639,12 +634,10 @@ msgstr "(exact) Product UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -1094,7 +1087,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -1178,11 +1171,11 @@ msgstr "Buy an order" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"Please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1256,7 +1249,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Which attributes and values can be used for filtering this category." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimum and maximum prices for products in this category, if available." @@ -1729,12 +1723,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." #: engine/core/models.py:448 msgid "name of this brand" @@ -1778,15 +1774,15 @@ msgstr "Categories" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1930,15 +1926,15 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." #: engine/core/models.py:733 @@ -2000,13 +1996,13 @@ msgstr "Attribute" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." #: engine/core/models.py:788 msgid "attribute of this value" @@ -2023,14 +2019,14 @@ msgstr "The specific value for this attribute" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." @@ -2072,15 +2068,15 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." #: engine/core/models.py:880 msgid "percentage discount for the selected products" @@ -2148,15 +2144,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." #: engine/core/models.py:998 msgid "documentary" @@ -2172,23 +2168,23 @@ msgstr "Unresolved" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2343,15 +2339,15 @@ msgstr "Invalid discount type for promocode {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." @@ -2522,7 +2518,8 @@ msgid "feedback comments" msgstr "Feedback comments" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" @@ -2666,16 +2663,16 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." #: engine/core/models.py:1961 msgid "download" @@ -2720,8 +2717,8 @@ msgid "No customer activity in the last 30 days." msgstr "No customer activity in the last 30 days." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Daily sales (30d)" +msgid "Daily sales" +msgstr "Daily sales" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2732,6 +2729,7 @@ msgid "Gross revenue" msgstr "Gross revenue" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Orders" @@ -2739,6 +2737,10 @@ msgstr "Orders" msgid "Gross" msgstr "Gross" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Dashboard" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Income overview" @@ -2767,20 +2769,32 @@ msgid "No data" msgstr "No data" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Revenue (gross, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Revenue (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Returns (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Net revenue" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Processed orders (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Refund rate" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Returned" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Low stock" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "No low stock items." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2795,11 +2809,11 @@ msgid "Most wished product" msgstr "Most wished products" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "No data yet." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Most popular products" @@ -2835,10 +2849,6 @@ msgstr "No category sales in the last 30 days." msgid "Django site admin" msgstr "Django site admin" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Dashboard" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2868,12 +2878,11 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Thank you for your order #%(order.pk)s! We are pleased to inform you that we " -"have taken your order into work. Below are the details of your order:" +"Thank you for your order #%(order.pk)s! We are pleased to inform you that we" +" have taken your order into work. Below are the details of your order:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2983,12 +2992,11 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Thank you for your order! We are pleased to confirm your purchase. Below are " -"the details of your order:" +"Thank you for your order! We are pleased to confirm your purchase. Below are" +" the details of your order:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3057,7 +3065,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Image dimensions should not exceed w{max_width} x h{max_height} pixels!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3065,7 +3073,7 @@ msgstr "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3075,17 +3083,17 @@ msgstr "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returns a list of supported languages and their corresponding information." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Returns the parameters of the website as a JSON object." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3093,11 +3101,11 @@ msgstr "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Handles `contact us` form submissions." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3105,77 +3113,69 @@ msgstr "" "Handles requests for processing and validating URLs from incoming POST " "requests." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Handles global search queries." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Handles the logic of buying as a business without registration." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid is required" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "order product does not exist" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "the order must be paid before downloading the digital asset" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "The order product does not have a product" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon not found" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Returns current version of the eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Returns custom variables for Dashboard." @@ -3195,15 +3195,17 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." #: engine/core/viewsets.py:175 msgid "" @@ -3226,14 +3228,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." #: engine/core/viewsets.py:213 msgid "" @@ -3298,15 +3300,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." #: engine/core/viewsets.py:621 @@ -3314,31 +3316,31 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" #: engine/core/viewsets.py:879 @@ -3365,16 +3367,16 @@ msgstr "Handles operations related to Stock data in the system." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." diff --git a/engine/core/locale/en_US/LC_MESSAGES/django.mo b/engine/core/locale/en_US/LC_MESSAGES/django.mo index 1a3a0b25b059213247d378b1624506ef1dadc272..e3d455fbaf6384fa627677909db238a49593e237 100644 GIT binary patch delta 14884 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 G2mTLbwVa6n delta 14882 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 DALWim diff --git a/engine/core/locale/en_US/LC_MESSAGES/django.po b/engine/core/locale/en_US/LC_MESSAGES/django.po index 781a67ff..2508f976 100644 --- a/engine/core/locale/en_US/LC_MESSAGES/django.po +++ b/engine/core/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,9 +27,11 @@ msgstr "Is Active" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"If set to false, this object can't be seen by users without needed permission" +"If set to false, this object can't be seen by users without needed " +"permission" #: engine/core/abstract.py:23 engine/core/choices.py:18 msgid "created" @@ -153,7 +155,8 @@ msgstr "Delivered" msgid "canceled" msgstr "Canceled" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Failed" @@ -268,7 +271,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" @@ -317,7 +321,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" @@ -371,11 +376,11 @@ msgstr "For non-staff users, only their own orders are returned." #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -407,13 +412,13 @@ msgstr "Filter by order status (case-insensitive substring match)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -599,26 +604,17 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…`\n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" @@ -634,12 +630,10 @@ msgstr "(exact) Product UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -1089,7 +1083,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -1173,11 +1167,11 @@ msgstr "Buy an order" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"Please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1251,7 +1245,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Which attributes and values can be used for filtering this category." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimum and maximum prices for products in this category, if available." @@ -1724,12 +1719,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." #: engine/core/models.py:448 msgid "name of this brand" @@ -1773,15 +1770,15 @@ msgstr "Categories" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1925,15 +1922,15 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." #: engine/core/models.py:733 @@ -1995,13 +1992,13 @@ msgstr "Attribute" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." #: engine/core/models.py:788 msgid "attribute of this value" @@ -2018,14 +2015,14 @@ msgstr "The specific value for this attribute" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." @@ -2067,15 +2064,15 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Represents a promotional campaign for products with a discount. This class " "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." #: engine/core/models.py:880 msgid "percentage discount for the selected products" @@ -2143,15 +2140,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Represents a documentary record tied to a product. This class is used to " "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." #: engine/core/models.py:998 msgid "documentary" @@ -2167,23 +2164,23 @@ msgstr "Unresolved" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2338,15 +2335,15 @@ msgstr "Invalid discount type for promocode {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." @@ -2517,7 +2514,8 @@ msgid "feedback comments" msgstr "Feedback comments" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" @@ -2661,16 +2659,16 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." #: engine/core/models.py:1961 msgid "download" @@ -2715,8 +2713,8 @@ msgid "No customer activity in the last 30 days." msgstr "No customer activity in the last 30 days." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Daily sales (30d)" +msgid "Daily sales" +msgstr "Daily sales" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2727,6 +2725,7 @@ msgid "Gross revenue" msgstr "Gross revenue" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Orders" @@ -2734,6 +2733,10 @@ msgstr "Orders" msgid "Gross" msgstr "Gross" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Dashboard" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Income overview" @@ -2762,20 +2765,32 @@ msgid "No data" msgstr "No date" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Revenue (gross, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Revenue (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Returns (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Net revenue" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Processed orders (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Refund rate" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Returned" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Low stock" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "No low stock items." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2790,11 +2805,11 @@ msgid "Most wished product" msgstr "Most wished products" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "No data yet." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Most popular products" @@ -2830,10 +2845,6 @@ msgstr "No category sales in the last 30 days." msgid "Django site admin" msgstr "Django site admin" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Dashboard" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2863,12 +2874,11 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Thank you for your order #%(order.pk)s! We are pleased to inform you that we " -"have taken your order into work. Below are the details of your order:" +"Thank you for your order #%(order.pk)s! We are pleased to inform you that we" +" have taken your order into work. Below are the details of your order:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2978,12 +2988,11 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Thank you for your order! We are pleased to confirm your purchase. Below are " -"the details of your order:" +"Thank you for your order! We are pleased to confirm your purchase. Below are" +" the details of your order:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3052,7 +3061,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Image dimensions should not exceed w{max_width} x h{max_height} pixels!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3060,7 +3069,7 @@ msgstr "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3070,17 +3079,17 @@ msgstr "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returns a list of supported languages and their corresponding information." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Returns the parameters of the website as a JSON object." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3088,11 +3097,11 @@ msgstr "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Handles `contact us` form submissions." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3100,77 +3109,69 @@ msgstr "" "Handles requests for processing and validating URLs from incoming POST " "requests." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Handles global search queries." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Handles the logic of buying as a business without registration." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid is required" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "order product does not exist" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "the order must be paid before downloading the digital asset" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "The order product does not have a product" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon not found" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Returns current version of the eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Returns custom variables for Dashboard." @@ -3190,15 +3191,17 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." #: engine/core/viewsets.py:175 msgid "" @@ -3221,14 +3224,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." #: engine/core/viewsets.py:213 msgid "" @@ -3293,15 +3296,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." #: engine/core/viewsets.py:621 @@ -3309,31 +3312,31 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" #: engine/core/viewsets.py:879 @@ -3360,16 +3363,16 @@ msgstr "Handles operations related to Stock data in the system." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." diff --git a/engine/core/locale/es_ES/LC_MESSAGES/django.mo b/engine/core/locale/es_ES/LC_MESSAGES/django.mo index 907238b911748e6f9af6e5ff90914267bd3e48db..4ab855fabc3fa0a27cf430071696910e28e7c4f4 100644 GIT binary patch delta 14891 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 M*>^wAm0JA&00xrB9RL6T delta 14873 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Está activo" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Si se establece en false, este objeto no puede ser visto por los usuarios " "sin el permiso necesario" @@ -156,7 +157,8 @@ msgstr "Entregado" msgid "canceled" msgstr "Cancelado" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Fallido" @@ -208,8 +210,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar sólo una clave para leer datos permitidos de la caché.\n" -"Aplicar clave, datos y tiempo de espera con autenticación para escribir " -"datos en la caché." +"Aplicar clave, datos y tiempo de espera con autenticación para escribir datos en la caché." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -245,8 +246,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Compra un pedido como empresa, utilizando los `productos` proporcionados con " -"`product_uuid` y `attributes`." +"Compra un pedido como empresa, utilizando los `productos` proporcionados con" +" `product_uuid` y `attributes`." #: engine/core/docs/drf/views.py:164 msgid "download a digital asset from purchased digital order" @@ -273,7 +274,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescribir un grupo de atributos existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescribir algunos campos de un grupo de atributos existente guardando los " "no editables" @@ -301,7 +303,8 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:141 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no editables" +"Reescribir algunos campos de un atributo existente guardando los no " +"editables" #: engine/core/docs/drf/viewsets.py:151 msgid "list all attribute values (simple view)" @@ -324,10 +327,11 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescribir un valor de atributo existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Reescribir algunos campos de un valor de atributo existente guardando los no " -"editables" +"Reescribir algunos campos de un valor de atributo existente guardando los no" +" editables" #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 msgid "list all categories (simple view)" @@ -383,12 +387,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Búsqueda de subcadenas sin distinción entre mayúsculas y minúsculas en " -"human_readable_id, order_products.product.name y order_products.product." -"partnumber" +"human_readable_id, order_products.product.name y " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -409,8 +413,8 @@ msgstr "Filtrar por ID de pedido exacto legible por el ser humano" #: engine/core/docs/drf/viewsets.py:308 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a " -"mayúsculas y minúsculas)" +"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a" +" mayúsculas y minúsculas)" #: engine/core/docs/drf/viewsets.py:313 msgid "Filter by user's UUID" @@ -424,9 +428,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordenar por: uuid, human_readable_id, user_email, user, status, created, " "modified, buy_time, random. Utilice el prefijo '-' para orden descendente " @@ -573,7 +577,8 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:496 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no editables" +"Reescribir algunos campos de un atributo existente guardando los no " +"editables" #: engine/core/docs/drf/viewsets.py:503 msgid "retrieve current pending wishlist of a user" @@ -628,31 +633,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrar por uno o varios pares nombre/valor de atributo. \n" "- Sintaxis**: `nombre_attr=método-valor[;attr2=método2-valor2]...`.\n" -"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Tipificación de valores**: Se intenta primero JSON (para poder pasar " -"listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso " -"contrario se trata como cadena. \n" -"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin " -"procesar. \n" +"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Tipificación de valores**: Se intenta primero JSON (para poder pasar listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso contrario se trata como cadena. \n" +"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin procesar. \n" "Ejemplos: \n" -"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", " -"\"bluetooth\"]`,\n" +"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." #: engine/core/docs/drf/viewsets.py:568 engine/core/docs/drf/viewsets.py:569 @@ -665,12 +659,10 @@ msgstr "UUID (exacto) del producto" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` " -"para que sea descendente. \n" +"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` para que sea descendente. \n" "**Permitido:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -879,7 +871,8 @@ msgstr "Eliminar la imagen de un producto" #: engine/core/docs/drf/viewsets.py:1079 msgid "rewrite an existing product image saving non-editables" -msgstr "Reescribir una imagen de producto existente guardando los no editables" +msgstr "" +"Reescribir una imagen de producto existente guardando los no editables" #: engine/core/docs/drf/viewsets.py:1086 msgid "rewrite some fields of an existing product image saving non-editables" @@ -1073,7 +1066,8 @@ msgstr "SKU" #: engine/core/filters.py:184 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "Debe haber un category_uuid para usar la bandera include_subcategories" +msgstr "" +"Debe haber un category_uuid para usar la bandera include_subcategories" #: engine/core/filters.py:353 msgid "Search (ID, product name or part number)" @@ -1141,7 +1135,7 @@ msgstr "Datos en caché" msgid "camelized JSON data from the requested URL" msgstr "Datos JSON camelizados de la URL solicitada" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Sólo se permiten URL que empiecen por http(s)://." @@ -1174,7 +1168,8 @@ msgstr "Indique order_uuid o order_hr_id, ¡se excluyen mutuamente!" #: engine/core/graphene/mutations.py:236 engine/core/graphene/mutations.py:501 #: engine/core/graphene/mutations.py:543 engine/core/viewsets.py:712 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" +msgstr "" +"Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" #: engine/core/graphene/mutations.py:245 msgid "perform an action on a list of products in the order" @@ -1225,11 +1220,11 @@ msgstr "Comprar un pedido" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Por favor, envíe los atributos como una cadena formateada como attr1=valor1," -"attr2=valor2" +"Por favor, envíe los atributos como una cadena formateada como " +"attr1=valor1,attr2=valor2" #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1304,7 +1299,8 @@ msgstr "" "Qué atributos y valores se pueden utilizar para filtrar esta categoría." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Precios mínimo y máximo de los productos de esta categoría, si están " "disponibles." @@ -1337,7 +1333,8 @@ msgstr "Cómo" #: engine/core/graphene/object_types.py:483 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" -"Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está configurado." +"Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está " +"configurado." #: engine/core/graphene/object_types.py:366 msgid "represents feedback from a user." @@ -1580,8 +1577,8 @@ msgstr "" "Representa un grupo de atributos, que puede ser jerárquico. Esta clase se " "utiliza para gestionar y organizar grupos de atributos. Un grupo de " "atributos puede tener un grupo padre, formando una estructura jerárquica. " -"Esto puede ser útil para categorizar y gestionar los atributos de manera más " -"eficaz en un sistema complejo." +"Esto puede ser útil para categorizar y gestionar los atributos de manera más" +" eficaz en un sistema complejo." #: engine/core/models.py:91 msgid "parent of this group" @@ -1611,11 +1608,11 @@ msgid "" msgstr "" "Representa una entidad de proveedor capaz de almacenar información sobre " "proveedores externos y sus requisitos de interacción. La clase Proveedor se " -"utiliza para definir y gestionar la información relacionada con un proveedor " -"externo. Almacena el nombre del vendedor, los detalles de autenticación " +"utiliza para definir y gestionar la información relacionada con un proveedor" +" externo. Almacena el nombre del vendedor, los detalles de autenticación " "necesarios para la comunicación y el porcentaje de marcado aplicado a los " -"productos recuperados del vendedor. Este modelo también mantiene metadatos y " -"restricciones adicionales, lo que lo hace adecuado para su uso en sistemas " +"productos recuperados del vendedor. Este modelo también mantiene metadatos y" +" restricciones adicionales, lo que lo hace adecuado para su uso en sistemas " "que interactúan con proveedores externos." #: engine/core/models.py:124 @@ -1788,7 +1785,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Representa un objeto Marca en el sistema. Esta clase maneja información y " "atributos relacionados con una marca, incluyendo su nombre, logotipos, " @@ -1838,8 +1836,8 @@ msgstr "Categorías" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1848,8 +1846,8 @@ msgstr "" "Representa el stock de un producto gestionado en el sistema. Esta clase " "proporciona detalles sobre la relación entre vendedores, productos y su " "información de existencias, así como propiedades relacionadas con el " -"inventario como precio, precio de compra, cantidad, SKU y activos digitales. " -"Forma parte del sistema de gestión de inventario para permitir el " +"inventario como precio, precio de compra, cantidad, SKU y activos digitales." +" Forma parte del sistema de gestión de inventario para permitir el " "seguimiento y la evaluación de los productos disponibles de varios " "vendedores." @@ -1932,13 +1930,13 @@ msgstr "" "Representa un producto con atributos como categoría, marca, etiquetas, " "estado digital, nombre, descripción, número de pieza y babosa. Proporciona " "propiedades de utilidad relacionadas para recuperar valoraciones, recuentos " -"de comentarios, precio, cantidad y total de pedidos. Diseñado para su uso en " -"un sistema que gestiona el comercio electrónico o la gestión de inventarios. " -"Esta clase interactúa con modelos relacionados (como Category, Brand y " -"ProductTag) y gestiona el almacenamiento en caché de las propiedades a las " -"que se accede con frecuencia para mejorar el rendimiento. Se utiliza para " -"definir y manipular datos de productos y su información asociada dentro de " -"una aplicación." +"de comentarios, precio, cantidad y total de pedidos. Diseñado para su uso en" +" un sistema que gestiona el comercio electrónico o la gestión de " +"inventarios. Esta clase interactúa con modelos relacionados (como Category, " +"Brand y ProductTag) y gestiona el almacenamiento en caché de las propiedades" +" a las que se accede con frecuencia para mejorar el rendimiento. Se utiliza " +"para definir y manipular datos de productos y su información asociada dentro" +" de una aplicación." #: engine/core/models.py:585 msgid "category this product belongs to" @@ -1993,14 +1991,14 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Representa un atributo en el sistema. Esta clase se utiliza para definir y " "gestionar atributos, que son datos personalizables que pueden asociarse a " -"otras entidades. Los atributos tienen asociadas categorías, grupos, tipos de " -"valores y nombres. El modelo admite varios tipos de valores, como cadenas, " +"otras entidades. Los atributos tienen asociadas categorías, grupos, tipos de" +" valores y nombres. El modelo admite varios tipos de valores, como cadenas, " "enteros, flotantes, booleanos, matrices y objetos. Esto permite una " "estructuración dinámica y flexible de los datos." @@ -2064,9 +2062,9 @@ msgstr "Atributo" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representa un valor específico para un atributo vinculado a un producto. " "Vincula el \"atributo\" a un \"valor\" único, lo que permite una mejor " @@ -2087,8 +2085,8 @@ msgstr "El valor específico de este atributo" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2137,8 +2135,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Representa una campaña promocional para productos con descuento. Esta clase " "se utiliza para definir y gestionar campañas promocionales que ofrecen un " @@ -2214,8 +2212,8 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Representa un registro documental vinculado a un producto. Esta clase se " "utiliza para almacenar información sobre documentales relacionados con " @@ -2238,14 +2236,14 @@ msgstr "Sin resolver" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representa una entidad de dirección que incluye detalles de ubicación y " "asociaciones con un usuario. Proporciona funcionalidad para el " @@ -2254,8 +2252,8 @@ msgstr "" "información detallada sobre direcciones, incluidos componentes como calle, " "ciudad, región, país y geolocalización (longitud y latitud). Admite la " "integración con API de geocodificación, permitiendo el almacenamiento de " -"respuestas API sin procesar para su posterior procesamiento o inspección. La " -"clase también permite asociar una dirección a un usuario, facilitando el " +"respuestas API sin procesar para su posterior procesamiento o inspección. La" +" clase también permite asociar una dirección a un usuario, facilitando el " "manejo personalizado de los datos." #: engine/core/models.py:1029 @@ -2413,8 +2411,8 @@ msgstr "¡Tipo de descuento no válido para el código promocional {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2422,9 +2420,9 @@ msgstr "" "dentro de la aplicación, incluyendo sus diversos atributos como información " "de facturación y envío, estado, usuario asociado, notificaciones y " "operaciones relacionadas. Los pedidos pueden tener productos asociados, se " -"pueden aplicar promociones, establecer direcciones y actualizar los datos de " -"envío o facturación. Del mismo modo, la funcionalidad permite gestionar los " -"productos en el ciclo de vida del pedido." +"pueden aplicar promociones, establecer direcciones y actualizar los datos de" +" envío o facturación. Del mismo modo, la funcionalidad permite gestionar los" +" productos en el ciclo de vida del pedido." #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2597,7 +2595,8 @@ msgid "feedback comments" msgstr "Comentarios" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Hace referencia al producto específico de un pedido sobre el que trata esta " "opinión" @@ -2632,8 +2631,8 @@ msgstr "" "atributos del producto y su estado. Gestiona las notificaciones para el " "usuario y los administradores y maneja operaciones como la devolución del " "saldo del producto o la adición de comentarios. Este modelo también " -"proporciona métodos y propiedades que soportan la lógica de negocio, como el " -"cálculo del precio total o la generación de una URL de descarga para " +"proporciona métodos y propiedades que soportan la lógica de negocio, como el" +" cálculo del precio total o la generación de una URL de descarga para " "productos digitales. El modelo se integra con los modelos Pedido y Producto " "y almacena una referencia a ellos." @@ -2745,16 +2744,17 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Representa la funcionalidad de descarga de activos digitales asociados a " -"pedidos. La clase DigitalAssetDownload proporciona la capacidad de gestionar " -"y acceder a descargas relacionadas con productos de pedidos. Mantiene " +"pedidos. La clase DigitalAssetDownload proporciona la capacidad de gestionar" +" y acceder a descargas relacionadas con productos de pedidos. Mantiene " "información sobre el producto del pedido asociado, el número de descargas y " -"si el activo es visible públicamente. Incluye un método para generar una URL " -"para descargar el activo cuando el pedido asociado está en estado completado." +"si el activo es visible públicamente. Incluye un método para generar una URL" +" para descargar el activo cuando el pedido asociado está en estado " +"completado." #: engine/core/models.py:1961 msgid "download" @@ -2800,8 +2800,8 @@ msgid "No customer activity in the last 30 days." msgstr "Sin actividad de clientes en los últimos 30 días." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Ventas diarias (30d)" +msgid "Daily sales" +msgstr "Ventas diarias" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2812,6 +2812,7 @@ msgid "Gross revenue" msgstr "Ingresos brutos" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Pedidos" @@ -2819,6 +2820,10 @@ msgstr "Pedidos" msgid "Gross" msgstr "Bruto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Cuadro de mandos" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Resumen de ingresos" @@ -2847,20 +2852,32 @@ msgid "No data" msgstr "Sin fecha" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Ingresos (brutos, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Ingresos (netos, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Devoluciones (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Ingresos netos" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Pedidos procesados (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Tasa de devolución" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Devuelto" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Pocas existencias" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "No hay artículos de bajo stock." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2875,11 +2892,11 @@ msgid "Most wished product" msgstr "Producto más deseado" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Aún no hay datos." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Producto más popular" @@ -2915,10 +2932,6 @@ msgstr "Ninguna venta de categoría en los últimos 30 días." msgid "Django site admin" msgstr "Administrador del sitio Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Cuadro de mandos" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2948,8 +2961,7 @@ msgstr "Hola %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "¡Gracias por su pedido #%(order.pk)s! Nos complace informarle de que hemos " @@ -3063,8 +3075,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Gracias por su pedido. Nos complace confirmarle su compra. A continuación " @@ -3139,16 +3150,16 @@ msgstr "" "Las dimensiones de la imagen no deben superar w{max_width} x h{max_height} " "píxeles." -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"Gestiona la solicitud del índice del mapa del sitio y devuelve una respuesta " -"XML. Se asegura de que la respuesta incluya el encabezado de tipo de " +"Gestiona la solicitud del índice del mapa del sitio y devuelve una respuesta" +" XML. Se asegura de que la respuesta incluya el encabezado de tipo de " "contenido apropiado para XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3158,17 +3169,18 @@ msgstr "" "función procesa la solicitud, obtiene la respuesta detallada del mapa del " "sitio y establece el encabezado Content-Type para XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -"Devuelve una lista de los idiomas admitidos y su información correspondiente." +"Devuelve una lista de los idiomas admitidos y su información " +"correspondiente." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Devuelve los parámetros del sitio web como un objeto JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3176,11 +3188,11 @@ msgstr "" "Gestiona las operaciones de caché, como la lectura y el establecimiento de " "datos de caché con una clave y un tiempo de espera especificados." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Gestiona los formularios de contacto." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3188,78 +3200,70 @@ msgstr "" "Gestiona las solicitudes de procesamiento y validación de URL de las " "solicitudes POST entrantes." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Gestiona las consultas de búsqueda global." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Maneja la lógica de la compra como empresa sin registro." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestiona la descarga de un activo digital asociado a un pedido.\n" -"Esta función intenta servir el archivo del activo digital ubicado en el " -"directorio de almacenamiento del proyecto. Si no se encuentra el archivo, se " -"genera un error HTTP 404 para indicar que el recurso no está disponible." +"Esta función intenta servir el archivo del activo digital ubicado en el directorio de almacenamiento del proyecto. Si no se encuentra el archivo, se genera un error HTTP 404 para indicar que el recurso no está disponible." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid es obligatorio" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "pedir producto no existe" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Sólo puede descargar el activo digital una vez" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "el pedido debe pagarse antes de descargar el activo digital" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "El producto del pedido no tiene un producto" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon no encontrado" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestiona las peticiones del favicon de un sitio web.\n" -"Esta función intenta servir el archivo favicon ubicado en el directorio " -"estático del proyecto. Si no se encuentra el archivo favicon, se genera un " -"error HTTP 404 para indicar que el recurso no está disponible." +"Esta función intenta servir el archivo favicon ubicado en el directorio estático del proyecto. Si no se encuentra el archivo favicon, se genera un error HTTP 404 para indicar que el recurso no está disponible." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Redirige la petición a la página índice de administración. La función " "gestiona las peticiones HTTP entrantes y las redirige a la página de índice " -"de la interfaz de administración de Django. Utiliza la función `redirect` de " -"Django para gestionar la redirección HTTP." +"de la interfaz de administración de Django. Utiliza la función `redirect` de" +" Django para gestionar la redirección HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Devuelve la versión actual del eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Devuelve variables personalizadas para Dashboard." @@ -3279,15 +3283,16 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representa un conjunto de vistas para gestionar objetos AttributeGroup. " "Maneja operaciones relacionadas con AttributeGroup, incluyendo filtrado, " -"serialización y recuperación de datos. Esta clase forma parte de la capa API " -"de la aplicación y proporciona una forma estandarizada de procesar las " +"serialización y recuperación de datos. Esta clase forma parte de la capa API" +" de la aplicación y proporciona una forma estandarizada de procesar las " "solicitudes y respuestas de los datos de AttributeGroup." #: engine/core/viewsets.py:175 @@ -3299,10 +3304,10 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Gestiona las operaciones relacionadas con los objetos Attribute dentro de la " -"aplicación. Proporciona un conjunto de puntos finales de la API para " -"interactuar con los datos de los atributos. Esta clase gestiona la consulta, " -"el filtrado y la serialización de objetos Attribute, lo que permite un " +"Gestiona las operaciones relacionadas con los objetos Attribute dentro de la" +" aplicación. Proporciona un conjunto de puntos finales de la API para " +"interactuar con los datos de los atributos. Esta clase gestiona la consulta," +" el filtrado y la serialización de objetos Attribute, lo que permite un " "control dinámico de los datos devueltos, como el filtrado por campos " "específicos o la recuperación de información detallada o simplificada en " "función de la solicitud." @@ -3312,12 +3317,12 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Conjunto de vistas para gestionar objetos AttributeValue. Este conjunto de " -"vistas proporciona funcionalidad para listar, recuperar, crear, actualizar y " -"eliminar objetos AttributeValue. Se integra con los mecanismos viewset de " +"vistas proporciona funcionalidad para listar, recuperar, crear, actualizar y" +" eliminar objetos AttributeValue. Se integra con los mecanismos viewset de " "Django REST Framework y utiliza serializadores apropiados para diferentes " "acciones. Las capacidades de filtrado se proporcionan a través de " "DjangoFilterBackend." @@ -3333,8 +3338,8 @@ msgstr "" "Gestiona vistas para operaciones relacionadas con Categorías. La clase " "CategoryViewSet se encarga de gestionar las operaciones relacionadas con el " "modelo Category del sistema. Permite recuperar, filtrar y serializar datos " -"de categorías. El conjunto de vistas también aplica permisos para garantizar " -"que sólo los usuarios autorizados puedan acceder a datos específicos." +"de categorías. El conjunto de vistas también aplica permisos para garantizar" +" que sólo los usuarios autorizados puedan acceder a datos específicos." #: engine/core/viewsets.py:326 msgid "" @@ -3344,9 +3349,9 @@ msgid "" "endpoints for Brand objects." msgstr "" "Representa un conjunto de vistas para gestionar instancias de Brand. Esta " -"clase proporciona funcionalidad para consultar, filtrar y serializar objetos " -"Brand. Utiliza el marco ViewSet de Django para simplificar la implementación " -"de puntos finales de API para objetos Brand." +"clase proporciona funcionalidad para consultar, filtrar y serializar objetos" +" Brand. Utiliza el marco ViewSet de Django para simplificar la " +"implementación de puntos finales de API para objetos Brand." #: engine/core/viewsets.py:438 msgid "" @@ -3360,11 +3365,12 @@ msgid "" msgstr "" "Gestiona las operaciones relacionadas con el modelo `Producto` en el " "sistema. Esta clase proporciona un conjunto de vistas para la gestión de " -"productos, incluyendo su filtrado, serialización y operaciones en instancias " -"específicas. Se extiende desde `EvibesViewSet` para utilizar funcionalidades " -"comunes y se integra con el framework Django REST para operaciones RESTful " -"API. Incluye métodos para recuperar detalles del producto, aplicar permisos " -"y acceder a comentarios relacionados de un producto." +"productos, incluyendo su filtrado, serialización y operaciones en instancias" +" específicas. Se extiende desde `EvibesViewSet` para utilizar " +"funcionalidades comunes y se integra con el framework Django REST para " +"operaciones RESTful API. Incluye métodos para recuperar detalles del " +"producto, aplicar permisos y acceder a comentarios relacionados de un " +"producto." #: engine/core/viewsets.py:574 msgid "" @@ -3386,8 +3392,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representación de un conjunto de vistas que maneja objetos Feedback. Esta " @@ -3395,34 +3401,34 @@ msgstr "" "incluyendo el listado, filtrado y recuperación de detalles. El propósito de " "este conjunto de vistas es proporcionar diferentes serializadores para " "diferentes acciones e implementar el manejo basado en permisos de los " -"objetos Feedback accesibles. Extiende la base `EvibesViewSet` y hace uso del " -"sistema de filtrado de Django para la consulta de datos." +"objetos Feedback accesibles. Extiende la base `EvibesViewSet` y hace uso del" +" sistema de filtrado de Django para la consulta de datos." #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet para la gestión de pedidos y operaciones relacionadas. Esta clase " "proporciona funcionalidad para recuperar, modificar y gestionar objetos de " -"pedido. Incluye varios puntos finales para gestionar operaciones de pedidos, " -"como añadir o eliminar productos, realizar compras para usuarios registrados " -"y no registrados, y recuperar los pedidos pendientes del usuario autenticado " -"actual. ViewSet utiliza varios serializadores en función de la acción " -"específica que se esté realizando y aplica los permisos correspondientes al " -"interactuar con los datos del pedido." +"pedido. Incluye varios puntos finales para gestionar operaciones de pedidos," +" como añadir o eliminar productos, realizar compras para usuarios " +"registrados y no registrados, y recuperar los pedidos pendientes del usuario" +" autenticado actual. ViewSet utiliza varios serializadores en función de la " +"acción específica que se esté realizando y aplica los permisos " +"correspondientes al interactuar con los datos del pedido." #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Proporciona un conjunto de vistas para gestionar entidades OrderProduct. " @@ -3459,8 +3465,8 @@ msgstr "" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3485,8 +3491,8 @@ msgstr "" "Esta clase proporciona la funcionalidad viewset para la gestión de objetos " "`Address`. La clase AddressViewSet permite operaciones CRUD, filtrado y " "acciones personalizadas relacionadas con entidades de direcciones. Incluye " -"comportamientos especializados para diferentes métodos HTTP, anulaciones del " -"serializador y gestión de permisos basada en el contexto de la solicitud." +"comportamientos especializados para diferentes métodos HTTP, anulaciones del" +" serializador y gestión de permisos basada en el contexto de la solicitud." #: engine/core/viewsets.py:1123 #, python-brace-format diff --git a/engine/core/locale/fa_IR/LC_MESSAGES/django.po b/engine/core/locale/fa_IR/LC_MESSAGES/django.po index d4d9aab1..690a1825 100644 --- a/engine/core/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/core/locale/fa_IR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2543,7 +2543,7 @@ msgid "No customer activity in the last 30 days." msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" +msgid "Daily sales" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 @@ -2555,6 +2555,7 @@ msgid "Gross revenue" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "" @@ -2562,6 +2563,10 @@ msgstr "" msgid "Gross" msgstr "" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "" @@ -2590,19 +2595,31 @@ msgid "No data" msgstr "" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" +msgid "GMV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." msgstr "" #: engine/core/templates/admin/dashboard/_most_returned.html:5 @@ -2618,11 +2635,11 @@ msgid "Most wished product" msgstr "" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "" -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "" @@ -2658,10 +2675,6 @@ msgstr "" msgid "Django site admin" msgstr "" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2863,53 +2876,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2917,31 +2930,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2949,18 +2962,18 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "" -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "" diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.mo b/engine/core/locale/fr_FR/LC_MESSAGES/django.mo index 4cafb91e18c381c8487674dee657cbe41b582ae8..e83e8f6cd73bd225d5392e8bc2391f73a5c84473 100644 GIT binary patch delta 14886 zcmZYF2YgT0|HtwBjg?qI#2#OQ7_maE)QS~~m?3sZ5HT|p#n)D|h`mQqHCl~XHEOh^ zl(tr>R*j;i%WA3mzuw<-{2m^U|9w18p67GUx%ZxX#{GU1X8)Px(4Sd6Kjh22$l=)R z<2c2zQ=sF_%H%k+E2`9S_SJEm{J0-`yBy~$q}r)c&vAS)6tiJCX2&L22-{*|9DrGH zBId*CsPmU&X2GupFMoSbT^juycgtjB`0o3byf(`KyWJ)TW|QGskI%qwooy!ku`e zIZsHtq!y0Tka&Eg8IeQC5IP-Onj3dT4gDZ2fRoW5m!ltkfEu}7SP&1RM?JqpMkiiF zKYW68)^S?Vh#N;>G@(yx$LT^GgH3Q}8`J)ATjNXAi1lM}nGS9r?l{9K?~>#=dnrGe z;y6=r!bmfco~)zH5EntF*(r_M9z(D^E+U_@_tOI*3Nv?S~`H$@dj4I{1eR7Hp5`;|F&d;s2GVlaXE(Ianwlsi7GEV(Q$Z3 zIZdz#j>qD-%(@rV?gHw)@e;MB!X}yR)(SPkebFDcV>a&Z93-RtdIGf=zeip89{ORn z$;=<-MRu5zfDLgUHpRa&AJ(73I>C0RT{0GP<2+RT8f37XkFhLPnQHfcCoVTV7W1&zI32SRpFln6Y1H{wrZfH; z@)s2NV)l2;lLnw(OvOnP!?fDTL~I2*KL7@n~zBt>2D1?;xr}=P(2>qZVbBS>}e- zQE?>J(f&^%Q(-a>!v|NqEnG31_OE>s=;h?`<|Y>N>XgQ2(*bK+SH!|zcy$T!zKKsnS9hoPpn zIp)GB%z-_z6eg%%`+pW0U1%Xz#|%^l{zY{x>$|)eu>$JJ2BDs83~E)+ws9Kjh8u0X z19hDvSOGIoukuH@5kuxN{yO0sG8($8SQGz5ZL4zg&Btm8h7-qQbzFy<<8QG%UPV1o z<^|@JTMl)jHmLW)RLqB~P*e92y79yU#$PXlpDD8KGsf$HFMRENtfGE)|L6b{hU>H{|AuK zje@WkR!29s#Sk2ZI&mdx-)}{=+lLyd3s?jnp*rZl+AOjHsPlu7Cv`fZKPF-wd>iv? z|L-EB3!g&0ATFYAa083tOAN!JYs@NcZ;e5XSS;4YRMg_zj#@)kZF!!x=6gaUYQ*MX zd;ADJx}ncHvoCX_hAId(rxj4!CKPp}dZ>|ViyDz0wmcE_03OVPvu*t<)b+R7`hB+k z1nT-1*D?Qv$^2+5{=tI8+1HyzR~mKUwy0NecMQb-s0)up4edLqHM0h_IQOC2XQ18> z7f|Q@i0b%bTc3G@$7~b-4Q9?8VR;(FqULBO>Vn6xBwoNce2f*b+k0lJrlOu`J*xdy ztbzxz7T(7u7_`w`cK~Xato4x5qPdIe;qRy(XW3+K=#Qm|t6Do?S>jY1uRx99A=I2- zMy;J(o6QJR#O}ml*b(PrQ@o9Ov3V-KZ&qmvx+z$P`SB=ft}mf(a2qS(ORSESwitV2 zF!8&n5!q|KVas!UV7@hnVFl`kqu#K~k;Uq9GRSC~{EfOn*{$Y+?Xf)ZXsn3qZF~kR z5kJ9tSb7`paqNk{xB^4*Jyb_8p{CMryD5)A#i>|@`#U?xsNprM{|+;EjZt$q95u9? zF&w|g8d&H2SJZet59_>uW-x;H9bhwAV>Y{dPY;GO34eITl03pT?$ zs6|uxWAg=M1U4q#g_^@B*Z{-R&G}u$_W`KPGseSvxLD(c1$P*e5aZpL2~ z+4h)MV__^nTmh?KBdm9Ij zJV0~Q6OTZDT#A|TebmTo$9(9yN=7~T4fQ1151A9Iq83*)>PZ%%I9U5Z*% z2hb1CqMqnG499GrnO)KZwK%7urs^bC#K))+b05{zd-$E4OnnMGs3ALuT4c8{6bBwN zbG8B_h!3O6eU9^M7=~djoQS%?J}izmQ4i)iVLDI^b>p5`38!P6{{ELvMxT0xzA%5A zsfL+|_nb7_<`dKtpGH0LbyWLbumJj;GE-6*waDD4^Xpj~;27cv)KncrUGEfnbfIfx zw%}vb+^)$mL%s=h!QH46&Y~96O`J%_A7Xam)YImPC!nTaHEN`;U}-FVh9{;+jj$K- z;B#iGzdXnI_od(g1)73(Uz<1IT+|bs$0B$cGvh;42mZGDeq&y>g>VYxt*|1V#V_dK zGaQUZ&zm(>^&%hb)Tdx>$}e7I{tr`d`x5g=!N$wx7mKUkvBfAaeZ{QSJ*c5RgnD0G zz+#yFsu`JJ^dk;OjYu=p?r4V^(FD{;4#%806C-hnhfIDS<`fesczlibJ{{@(1D(MZ z*UbqJelk8oT`1cPGqj~paZ{{;y-*{!05#W(t?N;*-W?c@hp`rVp4$eYH_f7IfO@iM z48mkAk4vx~9>GuWIqCv?Zkaz=K0uAY{@dooat!t47g1Ao4Yk%D;3gg{%g^5S9%tJf z^C7bbi&AkM^&+``mlu)`Z#HaAdC_0l4Vl=E_ZeE^F~9Qxg=v47KdH|9%W>us-+RdL z;;6@bo8tUTPaWrL;)nn60wO-~oL_Rd{^J+?j_G3lFa5`_)Ks)}T;3<#@8fcYa>665 ziTyIWoG)={7MGKm4#Z`1Ili<{$nJ8YFe#_Y$x8WAR@5WfoyzO--tbU>%RA)r0$tuW z-a72ajkjP~e1Q$PzY|oz<=rlQF(2_pk`j(GyZy_lN6}oKiD11mvVVO z3#M2%VW`?+TYPS9Rob*$W<7xIslSHBv1*VRfi|e^+ZnYO2csTvY>>zFbTI`3C|H9% zFk2ay_n%_oP#xNhnwq?2O-IV0F4zV0<525l7MnhEwb%7qJA&Ns?XgKPXIu-R|nuh_n9o6nLRJ${%j@>|w%ySIE zyp>G52AGAo73x0iu%JHwyOL4QhNCV#9?RhZ)EwP){%xLvae~N%x{Y z{cd3x`d4vzzo0b3DB}634*Y}~sVC^&|Ni`ok}Argo~Ryb?qZNRa>iK~p{8Iv>H-<4 zj^DKYgIaw4)r?h9^-&m%@iv}=T2mXUvH!IgKA=GRb{AH_tkumES3|uhnxJ;WIMn`K zg6hC#)M7n?n!;14kJn2Wj<;;NJJjXb)=s z%iu`VHeP|6qHWj&FJm!{MX?5E8`VYKU@(@)b=C~j_IilAfV-iITcZ}|XjF&NQB!vZ zwc6c{%-V`XotKQd?iw4PRIIspL`JXR;*HIdbV9Ap7}N_S5w*IfqZ=1tH10tyqFfQi z0;ne~iJ7n(YAw{XMxw6U1Iyu1^ytEi$Y|egK&^pes3$vx4KY&_vqqYr=58BS!(Xk% znwk!@LCt+MYI_bvb!a+j*DOWdcsuI+^G(_RwaH{@W>#l?)S~HxZXASK#j{XrU_R-!}J{Me>+}rW6!uVVO*HB z>cYv`66c`41z$pqOuk67pF3a|;uWY}@el`KP)oBIXQ7^a32Lz(LOsYa51DLa&Ygt>dF0ExxBvxS3!+XeQQT+0_uDZ>b%9Mweddc{GGP^9I7KXP;1WP_oi7~ zjZjbA7Tp+w8oDv4)jt9C# zo6m?2s9iMy^>ut7YP&r_btE|2TrUPaDtN~he1eMap>9yLi`nnd*qV3|YEj*=<-ekC zRI#he>56?(U(XL<3}%lp+b|BB6K_V<|7PR*-Pr%yHdDHpq5B>+m-V`v?Km0R6Q4xA z@rv{?pL!!u7dni+Fn3Qg*F!Lo_$yS0>h&_FS?^n$^)}_Jd$a%5@To0m*T=+LtUj?O z?v8zEw+ppx0{faFZH-!l<4|wXk5Oym2~ePYqOgL)3jbBOklY0BnJt zNo2H0GH^fo_IG*z3)NB7lXe~8^8T-tcTpX@f{ifSK=Wx9iR!=z)Qe>eYD7NAH}E-X zE!9ad+c+6(5HCa8dz>?5^zrxzqtHFbd_E6HeTUnHy6_*^2MZ>e7t1Kr5Kgx74AiT7 zA*w?=(2d_?4t#+c8Nb2ifhwS%_J0bQ{#1-dHN1`5|9@g{3>;!cA{Dibw%Pa^YP;qi zYCfi$pw91&+7*eY7tRLMc}Gzr_z?ACa}Q(Wxxe!!nXEVibK^YJ9Irw3c(X140t*sf zwDE7K_rwd-5Z4-RMr;IXn{LN(xCfhH%@L*pqfonQBYLzbo|4fk)-TBnbyd_0DH>Iu zg3WLmYI~l>ju@D1MkoRG0y>2aFh`2{bZmt!iD#m=>v?NXs>@kRoRrG`S4F@`Gn9Q% z@qE;)@;VN{0&kf`GafaRAESo$rj30@nKxq%)X?@v4fT96nHZIsF~zAM&|u`zMq!E6z>QY?YDH zXrnEx;|r3eSnJPeNTuF_uZ})yNV-bFWSz{h8Asy}_$GC$P*bC$0_hHM9?ErGCSS+q z1Ig=fTeZWoQ+JCvjlAyf6s2Ge1$r^)_|Z02eu=%1^5sbdU#qM5TAlX#rPu1Rli#G1 zI9`%+6F>Jx=0^Z@*Zp%+F^voHUhy8=`MJU7qbbiq{<^91{*hYQT9og#ZAy@zLs@px z7|P1q^4-ME$Y+rLA>WsFRmi`CI=WzWJ%2cvmi8pQxpY*ati3H;NxqfM^Sg#~iTW4# zp)I4@iQ&fr(wF4*cGDs}Mg4NpN|OG*_#Gx;car|FsRisEf9-i4{U|(xf74LgjrWiD zs7JZJRO)C$*$w>B8=1eHmbC3ubdI#t*74cn{cpOT5cej{CpF<(e8e~fkzMR~I+EE* z#mDv{V~O7<{*LrDW!lg4DXWdmNjhp0zrbMB@gZpi`LVc`w4U<{VF+c@@PfUzJ`r_1 zBQ>RLl71I0NzjXQlyrl_+MKix&yf0)FGea&p3f)e1JY>H6jBQ1cX2D{>6k*ihO~_` zJ_P^YF`bevwtT;>jpF_Dzat-&jk&hn?mAFM=tUKJb*$v>v9M;;Sf>f}R58bbM{_{?y;DXOin`>lWc% z;@Mc2OMOdzDEY&fjabJCtMaMj^-|wVn;s+`ACXGgHdnC(X|sJPIEge`M=EX`@LkLM zhj{Oq{0Jc)WiNElwz-amCuW(WK0w z!72iMZk4h(A?tLs4V8D3vQU?T0k+L;>Py=EJo1Uu=~zwKcv~J!c?I%QDK9|sBd?FC zk4Y=2o8aMxj+2-Zm*HF968>^S<1)neiMQiw{Dbr+d3`z0s|%Aaj5;2X*D>DOpL~Au zf8tl9a-=?_S4U6kJl!}soQ%s}ME`?3mh`TTXW|f**^AELY(B%i-v-XvvNDtnB;UrK z^XdkNDC=v3Z^-W;f0I;&6iM3|K5WWl0)8cSe#MCtZX)Rec>`&@>WKM*=>2z+oftrR zgR-A6mUR59Rp|=LF!7`&!h(Ab?h-Xzga~oQX$$@C;dWx9eNM$?>!1}ax^*p z1Kl7hYuJkwN4|M@kIv*XzdDhU4@lpbD({!C1LWJ;xCJhv?R$9Co)buZ3Mr3bt~HG0 zDNIn+HYi6yQR?_AzX*Om2O645G z+E|Q~msE{=#cTi1CD6Zdy*i2#e@ajX7udo#F@Y388c5qK)XgG4j{IU$H)0*Vv9ZZI z>9%YaabeOh(nZqeww$c&0V zq_LEbA{`<5drSGMLw>K#zm5NqW>VILG+guF-c}yMFDQIUszCaSq@yP{$YHYHpY3dU z5z0r}o6o20bK544vR0%Pl)14o}QNG9LgdoH!3Oqo-k!dv7Qk~~!Q z!y5J?naTf7{u=3f(hO2Ad-HA7O(wlMYLPiX`knNIcC&1|_sQ#+OgxXYjFhSy>8ND* z-_K4q_mGo9X*0&QJ4?9_c^Bn>kp3mLB#uBG|B}8WpFr6=_?0dH$y;lFOrtEB`hA3+ zQ~dbTHd6HiQfn$dd#z06F{GE2`QiaAh6hRQY5N#;_>nGT0`LGjdB;_F_9jT-~)O|~8KnkS( z4rMtohWOR-3;DN6Z7Ik~N>@et)H-8aK2g!>FY4ZNrQZ)v$>P%{I=xrp{=WXLhrQ)a zP8rrO(PifFi(m*A#TfL* zB+Q3xklUI*m=*iuL}R>W2pQer4hG@hNE=L!y2dQVFbu#3NVmNVYEQ=#B1Xp0DpVyeJWOx}fDAqoB9abma?Y!@dY-oF;JL=6wpc*g^ zbK_fB2A5$^+=nHwRGcvrJjTRf67G#RrY7Zi8XJ?$^Gy>nf8i4R6z4TDCMOkR6O3s< z+`OsniMLQ)7ygQUa2ZsW*TO>B3iDz=%#LGFJvIdk<6Kn3KSW)(5xq3h93-=c2L>b> z(~kI1Gh^Bl7jJG%JdRAVH{9OBdH^*iPN3$@Wz>*7!*I;s(l)d@YRv1PdZ<3Chniy~ z4sXf$YphmMkPAOV-RLt6#Y4z^GuKhGG&I?kXX0|=Z&7n&Xe-+zV^HxNRF5n`-S;C@ zgEKLi7dncX#Kqds|2fG-v@zxEtfF`Zc%H|UlNoR9BFZ%|&M6O#!S zcQz&wcXctQ17_=HOhfAT=x)rr#A|vQ^EuY*ZOk#Qznemj5${el=00BV_A#b1CrHL|h#JG&sII+>y6`bp!tk;7LCIKz zxC3gE4n@@;<>Cpb$u|Y*1Tza+u3mGSOc(`~#@jJ#iMl}_%#H(4vv?#P;0-5X7T&zk z1Y;^v-jpHKWEzEKa1~a;!x)W!V<48FWZygnOA&X*NS<%JWGYaw9@RDHP&a&vb+FuI zyJ7Uk;=~i3D^T@zp!SQas2&WNVwYQGRF@}UUR;Qp>}ybya|7n$`DPy(-S{Nxjc;Ll z{0mu8ro~jd53IyS#6O~jsN^(bqOdw@)%3(XI1+V!8q!&236{qE)9nz{M$L%^=q*Sl ziHt7jjT-Y&sD{i!U&~P~UV}ln9Sh@8cmA>~zvs*{!wy*i453~qs)2Pd3|nA%95RFc zuS#Ya1sbyx?!+_HgUipfT~-H6633xGrlQUdKs9(gYL3ix@lp&R-hg`3Pf^$JLG1^Z zQFG#tne@Nj^f3k62mEH)mgPZJsExXD9O{8duDmO1toxw4d_1ZL=b#?A67`^sF5ZS= z#D_2tZ(vsZ(@Q2BnTMzc{EHfr+_UWsN}(PUjk=&Qs(vEs!L3m}(9<~_Rew5`#$~7> z+lv~))9(CD)R1`pC8L%H&#@1VKsBTeszM?b#cs|q?)*a3b!$)!%0#WA-Ka_V8|s0D z-n4N=tVP@rYvV%X1-#}s8NIH&{XLy&WxZEy$% z5=UWftcE!;4#Tm9JO4WBK4YZNc)+J8FDmVi*#@nzQ?nS-P zuUH0iF0>D-irN?YV?LaMnv7`}h8s}(!7&WR>kH}sBr=aF7==w1@ih#0qZ$;o*miLh zY(gB1dc&Eho>+jo(Na{GZa_8gXHXB*~g#***|H@>RQlK$Cg0J8Y zSRc#0V;`7`8q*<|4<}#^oR1apFvj3R%z}|iY(pxdu4{+IFvZ1_P~Q#bdC62G^D*ki zm$589bQWJ~ySg#zGor7Hr(+oLI#+%KqlvGh)_vi3?Wf$!7)sm|HMb_ChAtg-Kkp$j zYROd$!z{~e*F>N;oMcqjy^0~&7d7doxcE&>AYSXr?>HY}9?JDSP4~%*g|GnXMWc`& z_nP`-icruR)l~!R2{RTo#&fX}E=Ik<0qls^u?EJju(N$Ms@`hU+&P76z&X?duVG$% zjCxMsN_~0N`X>`cK@3*Fwx|myqt^X=dgdTIxT;CWO7A7BvvgStM~d-hFhqaK)y zwXg>kz;{vi-HbW4{&$km0}f*`yo%M)yl-c54QGASByEBZ-uic1-i2mQ7*QgF;bV6@%)LhORsr^#&=ZHy`TGPeDCk zfjhs_o!@|(Gdr;;9(3iGR@485Dfoi|t;cL@?2ThkTX8HF#Ac`)_e4#iL8v)14K+De zqUvu!?GHOp*BwMP{DM3GD{7TIz%VTRf!D6nCLh=_8iKmvM;MAbFa||aXz$w`wMwR==FACH1J8QNsKvjb9{2!DVu7{Rnpm2+lZz*z zy6^+knD0i-oqMPr$h(ejwitqKa1=Jeqo|E7??-l$cEm7Z?+h}U4C_#1y$kh#qo^Ud zid8UZy)_QY5|2Rj$O`9SSAGxcP#&_uF3VR@JFFKqS+}58$&bkWy(Y&-d&3%7juYLm zJkE6SXBb6%5q0Bin~ZrG=Ai0rcmD1xXZ(wAwqw>D z)umIhE^fmZe1LjTxh-~Cc1FF?0@MxnVFKRAhFJF#8&5zr^ec?TET38%p~|OYW1epg zkkMqx{+a#ak%YR@eAL*T!TMM@!``4Bs-a7;6dp&-kv}mv7W&-Iod^sfPQWhM0rOxc z=EsBRTmRpa(S?^#H@t-b7?f$>v@pgIC!osbI2T|J;-#n?et^Na74_h+F%U1f@++8^ z_#tW;`+vdsS0eM$7j|+q!=uDwaVj?2YUjog)R6p%kyv4y>j|t#yaX%YS6Bw`q2^N2 z?e@AjtVTQ$)l(U$Id*=##-B{q9ri&bu>o-+R>wK08}G#kyp8oR-%k7HEzzI26XwJo zSQH1MdU6I9!wr}V522p-AFPaby=1bJ3EyRBYZR(WQ?LjQ!B=n=>dnuf-rx!94NC5| zZ=8hc+7Xx)r=fagHs-^vSPYM%UgSEer@T48w3DkU>P?2C8Za6))>BXonT>kGHCPZg zqv{>R68H^<;~mtS1?{n)C9ybxxG8F=525NkL?$=;|6V&ux}aufDryHDftplHP(8E} z^+uUk7q6gJN$5U1IeVgpDjn4`r%^rj1U2?$_S3hhXd9Nqe=v#`l{mrnO`Lejj`4cz zMSKij#!9Ez@o*r9;Af}l|Ey$AP@o5&abCtM#P@I-Mx3!-z8(+Lu(LQ2SDdvwWcG7> zH=te%%tQGn$ow*UzGE2^d%w3oKV+UaW)bC2FdNRlK>w?YmtL@wWDCATd==G&o{M%! z3Zi-<6tx=4qq;I4)pLp16jQK(A7AJ3HRAn0@^y;_RJg>CU|8U1yASO6#d_FFMmIQ% z>dHGV4!&$Ze48%7V*8xBV`a2#rg7NZ`Jj%z(U76~5Ei3+JVyAjd~fpm zUe)`J*`9^Ex9CCQVt+6U`u$(EKkcthtK8$qAx_M>Pr{-P`CiBk(*I&25-hO}zF{Xnj~PsP8dk%sSv}?$*7o<9tTezso5uuFKSvIa zX{q1;=g;La0i5W~%y~e?{=pvK1H0$<_`14EL62{;#9?k8oQQ3(1D3{3SRc<|90nKi z_`XrK#eBrCIp07YW8Oyf*dmPK`DP`VXguvs_!ai}z6<6;4M7EG3~II1LCxL<*c%gY zISt>4+HewzdVE{-a8&)-E}n-P%5)q}4}6KHv>n67&Q8c4VuoN%Y+A-PU=kJ}o`qVTD=`SyJ9nTOatt*W&Y~K41M{QD zTh`;-Pzs`MR0;L*8jr!)5j9x`U?`5nQkdrA?O2ZZJZgyi%2{JkLo*TeLYb(B9LEOu zEoyFg3r2c;d+|%CovkKnmM5bw?1q|bBT)^UfNH=(7k`1Oe+<>o^Qisd3aY36L0unH z-u6&k)O`|=9o5Sp8a=+9sxPWbrlGoWDXL;Rs$ttvJ#z*t;7wG$f>9pd7ng9}FQDgrzYD>QF45~=E)_+B1Fc$R&ZBUc3GwMy}VR_t%)$uwu!ICY+*IoG&)C&dk2PO?&G^&T%qF0%LWYn^0s2i+C-C&3F6l(HacLqe;^JTCs z<@H>gf|^w0P;+52YT3Stk@zF(MYC10`$R|;*1x){Ed^S?gHa8bh?=cSP-D0XbKz#J zi#uKUBTORpuj=uA{I)?29wV@Bj2)UD=xb;U>tB;&G6m|wG}MDOxOgi@ z5g*4!_!#%%%Y3qEYki6#n5DXHKnYaC`(j6Y9ed$Xtc4Y8*q-Twm37`rMw4q5#^6cR z8~N3=%P$$#WqnZ%9fu`x9%{%wMJ>~lsJV0vQ!urb$MnOa=#MeA?F-h%_QWkvL*!jc zMqTjXE6pUK$4KV_fQ0sUYYKW#{JZ?eXGDEGRp!)Xy z@mP*{jB_B&wmEoYAQLBMx(G%({^Y!-3ci=b|RjRp)KgoBoAaFk76R3pt&ks97I_Ww0@- ziw9yTjzi6XWmp?mVFSE?UQLpacsq7eF`9V4^FFE}5smEFS41t(#;68$L#>)2s0U9& zUB3});t#0FS)j3U1do^bLYiF8HfhI>fYD3zL+UX9V_J=2^Nmr!S|tK8ldi*nBevJe!NbhKwpnHqq^o-Y>JUh z?Q$80S`|mJFa8%b8GF5A-+VA?jMGprvJA6fI;saYp?d59s-b65FMi!iCJ!0^MEiyX zoaLRds2j9HT{sB!CSKGHX1Vfps3F*nHSlND94Oq(zHw;`BaTM(Tr1RPi#L^wx@;lp z0iPqE%ltPW_DxQsy8a^S!n^Lge{(xTL8$ASpjJmeY>e|!-;U3rR?8C{j%AZq1ylo`x;Qe~ zo=@`0`Ws3nnF?vBF1e2CiTthX7Frs+63=tq!Y;&#t?drE4%M*p7=wA+*q(|(9s7W~1#h+tC;u}~IBVV=4sy*tv-rK051T=#Ep`rS?#xGBw*~|78`S=B4kuwiirva*ddX;`coQ{y7oo;_ zC2H9n!%+MMwc&VDZFz3ggG!-3ZmVMgCZp!YQrwQ`Fb(JTu`gPtugCWvrF2C#(EAaY zSTf&YIV{xAHlP7&Lm7lxj*GD#evO($0k7Hh-4HeF`=aVEM}3;^$Ch{p6CRn$gpG(%ByWj?A4_n|hJJE*QN zI>e57d(1=J4K>7rPz@gG%G0ng&o}9=U>9nGIEL!ttgqWHYk=DG$KwQ?hU!wkp|$}{ zP|IpKYEFEG+Iqi3b@jhk93zI=^KsaixGj3MK9`YcgI7>pRCBo9c$T2{h4a_|i;S?J zmK{**evR`kt|E>dY0G~>^dHx@ZP$K^icg`wyLrag zuC0dZ>h9=49cplCKYmY4T0~wuWf=K4NtLL?yZDY<7;dw^|3XgL8KgqKGWvfE7erEN z8ZJOhmgeLikG%*w z;1BFSrYR?vW03EZ{X@hx;yje=I7hxZdF=;deI@*=l`qFDV!C-@eHHqusC_DF@|Kxexn} z@7Tz{t6jbg- zv_);PwJ^b5qdBA_in5lj>|OFrUA_+U&wNXTe<=9a6>{FR z)bDF`d`wzOel)&ETE&HhF_N-r_#b!k{N!~!CdE-UiBy7oC(>Th&&1WZ<_kPV>P@~V zDNK3NNBWtSrEaE>hH~OMuIEA>lZjW5Hc-}!^#2~yDOl&qx4M%_FVqVnU!UtUUMMR` zyp{N`|J|%RYm@NL1`#a<&m<2%FBBY&TB?OiNZ zQ+9MwmCA*^`N`?{#^U?80%fzvz3R>_#OuVfu_kvqO@09R-RMu8O8x*oKiHCeKjx-W z-jSqZGbz;7Ij{4i51+5GepGsoRLoW2yP5AlUG`ncKjn!>x*P3ubuQsHQVc18^aJ(& zB++YTHnEPuT(gRlm%KK8zPkDTM0`({TuM;u0L@E8(w4R4z&U z8}UY5fpq$_JlSs(I=?i$@k$1cjc*{nH5eiQj$Ncy;JOx+oN ztg*oajX3!$PNeVyQVjXkq;aHpV!mMd{-(ACgGse1`w6>pUPpHFohf^azQcK!Uqwzq15!K6u9E7K z*YUZ<+;WOAQX%S8Cfy|eKKc&kpYJHh#jVH%V?RztyPJg|-&lM{Yw~{2FQnun(kXk& zjKS@s<}Pl8i>SK>_quEJL&6kN9^$8@f!xnqm`p`ip%eunRNyO)>weFiL{^efHHmrGyAYQhLG}-D)Ouz>i@S00tlWTMTvJ1)WG?! zuqmdH8j${?{Cm=D^5eK}5vc>Qj;>hWX3eLrOkojHf6`gf!57NcX#JmY1$~{VR9eDK zKO@;LM4Cd`2l(RAm$E$+v~=}#?tRjGT-Th`fb{&>NB(7k z{iK?tzlrO+^8@r5`}~;T3P-wvs>GFeKriBk?m^A)UE+?e&ik%hVQrF^_zHf&wYA*+ z#_J?UTjDQm)(j=z#dj^wAMOgpWzs^@8=UMws^V^P7H^X-k}i;Dl5+ZPz?T5(PbNJ- zs*yQBx=ngOy;-i_TJkz35zi&PLmH+Q>xi`c@83BtcbALwm*vr}-U*eHe+G9r_g_*I z;#ha{|5E-n`974*z~ip`Ctc@`X_V>z&-sGbdzgRzaFulacar|6o;@#=sk|-eU&^xK zb}WWFNiC>*A9Vzh{zGa(noFG=oYV0ZsU+zJ=@n95$|E?x`1$z%M$nrRbvW^a{ENp0 z7tD9%RjKnbX&LDa&P7vRj{L9gydU}3C{KIgCdn`4mHmuVj{3W`{&%o`A4&G0`cJ86ovX_-8C^m=d@sF0sU-phkfiWfI%@FPhbIc1G#sW1jrI zQ-=>vO$i$^EG2c=aCgnERs;Mpdbd4X%HMa7Md4$SZN!1~&~KV#r9_y8e+% aJ}T(>_y4y!Thj}9;u~)Lv%TkJ*#7|sbIvOO diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.po b/engine/core/locale/fr_FR/LC_MESSAGES/django.po index ada9f5bd..5894ed4d 100644 --- a/engine/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/core/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Est actif" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Si la valeur est fixée à false, cet objet ne peut pas être vu par les " "utilisateurs qui n'ont pas l'autorisation nécessaire." @@ -156,7 +157,8 @@ msgstr "Livré" msgid "canceled" msgstr "Annulé" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Échec" @@ -207,10 +209,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Appliquer uniquement une clé pour lire les données autorisées dans la " -"mémoire cache.\n" -"Appliquer une clé, des données et un délai d'attente avec authentification " -"pour écrire des données dans la mémoire cache." +"Appliquer uniquement une clé pour lire les données autorisées dans la mémoire cache.\n" +"Appliquer une clé, des données et un délai d'attente avec authentification pour écrire des données dans la mémoire cache." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -277,7 +277,8 @@ msgstr "" "modifiables" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Réécrire certains champs d'un groupe d'attributs existant en sauvegardant " "les non-éditables" @@ -306,8 +307,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:141 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Réécrire certains champs d'un attribut existant en sauvegardant les éléments " -"non modifiables" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" +" non modifiables" #: engine/core/docs/drf/viewsets.py:151 msgid "list all attribute values (simple view)" @@ -332,7 +333,8 @@ msgstr "" "modifiables" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Réécrire certains champs d'une valeur d'attribut existante en sauvegardant " "les éléments non modifiables" @@ -391,11 +393,11 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Recherche insensible à la casse dans human_readable_id, order_products." -"product.name, et order_products.product.partnumber" +"Recherche insensible à la casse dans human_readable_id, " +"order_products.product.name, et order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -431,13 +433,13 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordonner par l'un des éléments suivants : uuid, human_readable_id, " -"user_email, user, status, created, modified, buy_time, random. Préfixer avec " -"'-' pour l'ordre décroissant (par exemple '-buy_time')." +"user_email, user, status, created, modified, buy_time, random. Préfixer avec" +" '-' pour l'ordre décroissant (par exemple '-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -479,8 +481,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est " -"complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " +"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est" +" complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " "utilisé, une transaction est initiée." #: engine/core/docs/drf/viewsets.py:397 @@ -548,8 +550,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Supprime une liste de produits d'une commande en utilisant le `product_uuid` " -"et les `attributs` fournis." +"Supprime une liste de produits d'une commande en utilisant le `product_uuid`" +" et les `attributs` fournis." #: engine/core/docs/drf/viewsets.py:459 msgid "list all wishlists (simple view)" @@ -585,8 +587,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:496 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Réécrire certains champs d'un attribut existant en sauvegardant les éléments " -"non modifiables" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" +" non modifiables" #: engine/core/docs/drf/viewsets.py:503 msgid "retrieve current pending wishlist of a user" @@ -642,29 +644,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtre sur une ou plusieurs paires nom/valeur d'attribut. \n" "- **Syntaxe** : `nom_attr=méthode-valeur[;attr2=méthode2-valeur2]...`\n" -"- **Méthodes** (la valeur par défaut est `icontains` si elle est omise) : " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Type de valeur** : JSON est essayé en premier (pour que vous puissiez " -"passer des listes/dicts), `true`/`false` pour les booléens, les entiers, les " -"flottants ; sinon traité comme une chaîne de caractères. \n" -"- **Base64** : préfixe avec `b64-` pour encoder la valeur brute en base64 de " -"manière sûre pour l'URL. \n" +"- **Méthodes** (la valeur par défaut est `icontains` si elle est omise) : `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Type de valeur** : JSON est essayé en premier (pour que vous puissiez passer des listes/dicts), `true`/`false` pour les booléens, les entiers, les flottants ; sinon traité comme une chaîne de caractères. \n" +"- **Base64** : préfixe avec `b64-` pour encoder la valeur brute en base64 de manière sûre pour l'URL. \n" "Exemples : \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -679,12 +670,10 @@ msgstr "UUID (exact) du produit" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un " -"tri descendant. \n" +"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un tri descendant. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -952,7 +941,8 @@ msgstr "Supprimer une promotion" #: engine/core/docs/drf/viewsets.py:1169 msgid "rewrite an existing promotion saving non-editables" msgstr "" -"Réécrire une promotion existante en sauvegardant les éléments non modifiables" +"Réécrire une promotion existante en sauvegardant les éléments non " +"modifiables" #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" @@ -1007,8 +997,8 @@ msgstr "Supprimer une étiquette de produit" #: engine/core/docs/drf/viewsets.py:1259 msgid "rewrite an existing product tag saving non-editables" msgstr "" -"Réécrire une étiquette de produit existante en sauvegardant les éléments non " -"modifiables" +"Réécrire une étiquette de produit existante en sauvegardant les éléments non" +" modifiables" #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" @@ -1166,7 +1156,7 @@ msgstr "Données mises en cache" msgid "camelized JSON data from the requested URL" msgstr "Données JSON camélisées provenant de l'URL demandée" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Seuls les URL commençant par http(s):// sont autorisés." @@ -1254,8 +1244,8 @@ msgstr "Acheter une commande" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Veuillez envoyer les attributs sous la forme d'une chaîne formatée comme " "attr1=valeur1,attr2=valeur2." @@ -1336,7 +1326,8 @@ msgstr "" "catégorie." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Prix minimum et maximum pour les produits de cette catégorie, s'ils sont " "disponibles." @@ -1400,8 +1391,8 @@ msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" msgstr "" -"Adresse d'expédition pour cette commande, laisser vide si elle est identique " -"à l'adresse de facturation ou si elle n'est pas applicable" +"Adresse d'expédition pour cette commande, laisser vide si elle est identique" +" à l'adresse de facturation ou si elle n'est pas applicable" #: engine/core/graphene/object_types.py:414 msgid "total price of this order" @@ -1643,8 +1634,8 @@ msgid "" msgstr "" "Représente une entité fournisseur capable de stocker des informations sur " "les fournisseurs externes et leurs exigences en matière d'interaction. La " -"classe Vendeur est utilisée pour définir et gérer les informations relatives " -"à un fournisseur externe. Elle stocke le nom du fournisseur, les détails " +"classe Vendeur est utilisée pour définir et gérer les informations relatives" +" à un fournisseur externe. Elle stocke le nom du fournisseur, les détails " "d'authentification requis pour la communication et le pourcentage de " "majoration appliqué aux produits récupérés auprès du fournisseur. Ce modèle " "gère également des métadonnées et des contraintes supplémentaires, ce qui " @@ -1736,9 +1727,9 @@ msgid "" "attributes for an internal tag identifier and a user-friendly display name." msgstr "" "Représente une étiquette de catégorie utilisée pour les produits. Cette " -"classe modélise une balise de catégorie qui peut être utilisée pour associer " -"et classer des produits. Elle comprend des attributs pour un identifiant de " -"balise interne et un nom d'affichage convivial." +"classe modélise une balise de catégorie qui peut être utilisée pour associer" +" et classer des produits. Elle comprend des attributs pour un identifiant de" +" balise interne et un nom d'affichage convivial." #: engine/core/models.py:254 msgid "category tag" @@ -1765,8 +1756,8 @@ msgstr "" "avoir des relations hiérarchiques avec d'autres catégories, en prenant en " "charge les relations parent-enfant. La classe comprend des champs pour les " "métadonnées et la représentation visuelle, qui servent de base aux " -"fonctionnalités liées aux catégories. Cette classe est généralement utilisée " -"pour définir et gérer des catégories de produits ou d'autres regroupements " +"fonctionnalités liées aux catégories. Cette classe est généralement utilisée" +" pour définir et gérer des catégories de produits ou d'autres regroupements " "similaires au sein d'une application, permettant aux utilisateurs ou aux " "administrateurs de spécifier le nom, la description et la hiérarchie des " "catégories, ainsi que d'attribuer des attributs tels que des images, des " @@ -1822,13 +1813,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Représente un objet Marque dans le système. Cette classe gère les " "informations et les attributs liés à une marque, y compris son nom, ses " "logos, sa description, ses catégories associées, un nom unique et un ordre " -"de priorité. Elle permet d'organiser et de représenter les données relatives " -"à la marque dans l'application." +"de priorité. Elle permet d'organiser et de représenter les données relatives" +" à la marque dans l'application." #: engine/core/models.py:448 msgid "name of this brand" @@ -1872,8 +1864,8 @@ msgstr "Catégories" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1883,8 +1875,8 @@ msgstr "" "des détails sur la relation entre les fournisseurs, les produits et leurs " "informations de stock, ainsi que des propriétés liées à l'inventaire telles " "que le prix, le prix d'achat, la quantité, l'UGS et les actifs numériques. " -"Elle fait partie du système de gestion des stocks pour permettre le suivi et " -"l'évaluation des produits disponibles auprès de différents fournisseurs." +"Elle fait partie du système de gestion des stocks pour permettre le suivi et" +" l'évaluation des produits disponibles auprès de différents fournisseurs." #: engine/core/models.py:520 msgid "the vendor supplying this product stock" @@ -1963,8 +1955,8 @@ msgid "" "product data and its associated information within an application." msgstr "" "Représente un produit avec des attributs tels que la catégorie, la marque, " -"les étiquettes, l'état numérique, le nom, la description, le numéro de pièce " -"et l'étiquette. Fournit des propriétés utilitaires connexes pour récupérer " +"les étiquettes, l'état numérique, le nom, la description, le numéro de pièce" +" et l'étiquette. Fournit des propriétés utilitaires connexes pour récupérer " "les évaluations, le nombre de commentaires, le prix, la quantité et le " "nombre total de commandes. Conçue pour être utilisée dans un système de " "commerce électronique ou de gestion des stocks. Cette classe interagit avec " @@ -2026,14 +2018,14 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Représente un attribut dans le système. Cette classe est utilisée pour " "définir et gérer les attributs, qui sont des données personnalisables " -"pouvant être associées à d'autres entités. Les attributs sont associés à des " -"catégories, des groupes, des types de valeurs et des noms. Le modèle prend " +"pouvant être associées à d'autres entités. Les attributs sont associés à des" +" catégories, des groupes, des types de valeurs et des noms. Le modèle prend " "en charge plusieurs types de valeurs, notamment les chaînes de caractères, " "les entiers, les flottants, les booléens, les tableaux et les objets. Cela " "permet une structuration dynamique et flexible des données." @@ -2099,13 +2091,14 @@ msgstr "Attribut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Représente une valeur spécifique pour un attribut lié à un produit. Il relie " -"l'\"attribut\" à une \"valeur\" unique, ce qui permet une meilleure " -"organisation et une représentation dynamique des caractéristiques du produit." +"Représente une valeur spécifique pour un attribut lié à un produit. Il relie" +" l'\"attribut\" à une \"valeur\" unique, ce qui permet une meilleure " +"organisation et une représentation dynamique des caractéristiques du " +"produit." #: engine/core/models.py:788 msgid "attribute of this value" @@ -2122,16 +2115,16 @@ msgstr "La valeur spécifique de cet attribut" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"Représente une image de produit associée à un produit dans le système. Cette " -"classe est conçue pour gérer les images des produits, y compris la " +"Représente une image de produit associée à un produit dans le système. Cette" +" classe est conçue pour gérer les images des produits, y compris la " "fonctionnalité de téléchargement des fichiers d'image, leur association à " -"des produits spécifiques et la détermination de leur ordre d'affichage. Elle " -"comprend également une fonction d'accessibilité avec un texte alternatif " +"des produits spécifiques et la détermination de leur ordre d'affichage. Elle" +" comprend également une fonction d'accessibilité avec un texte alternatif " "pour les images." #: engine/core/models.py:826 @@ -2172,8 +2165,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Représente une campagne promotionnelle pour des produits avec une remise. " "Cette classe est utilisée pour définir et gérer des campagnes " @@ -2226,7 +2219,8 @@ msgstr "" "gestion des produits souhaités. La classe fournit des fonctionnalités " "permettant de gérer une collection de produits, en prenant en charge des " "opérations telles que l'ajout et la suppression de produits, ainsi que des " -"opérations permettant d'ajouter et de supprimer plusieurs produits à la fois." +"opérations permettant d'ajouter et de supprimer plusieurs produits à la " +"fois." #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2250,11 +2244,11 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Représente un enregistrement documentaire lié à un produit. Cette classe est " -"utilisée pour stocker des informations sur les documentaires liés à des " +"Représente un enregistrement documentaire lié à un produit. Cette classe est" +" utilisée pour stocker des informations sur les documentaires liés à des " "produits spécifiques, y compris les téléchargements de fichiers et leurs " "métadonnées. Elle contient des méthodes et des propriétés permettant de " "gérer le type de fichier et le chemin de stockage des fichiers " @@ -2275,24 +2269,24 @@ msgstr "Non résolu" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Représente une entité d'adresse qui comprend des détails de localisation et " "des associations avec un utilisateur. Elle fournit des fonctionnalités de " "stockage de données géographiques et d'adresses, ainsi qu'une intégration " "avec des services de géocodage. Cette classe est conçue pour stocker des " -"informations détaillées sur les adresses, y compris des éléments tels que la " -"rue, la ville, la région, le pays et la géolocalisation (longitude et " +"informations détaillées sur les adresses, y compris des éléments tels que la" +" rue, la ville, la région, le pays et la géolocalisation (longitude et " "latitude). Elle prend en charge l'intégration avec les API de géocodage, ce " -"qui permet de stocker les réponses brutes de l'API en vue d'un traitement ou " -"d'une inspection ultérieurs. La classe permet également d'associer une " +"qui permet de stocker les réponses brutes de l'API en vue d'un traitement ou" +" d'une inspection ultérieurs. La classe permet également d'associer une " "adresse à un utilisateur, ce qui facilite le traitement personnalisé des " "données." @@ -2359,8 +2353,8 @@ msgid "" msgstr "" "Représente un code promotionnel qui peut être utilisé pour des remises, en " "gérant sa validité, le type de remise et l'application. La classe PromoCode " -"stocke les détails d'un code promotionnel, notamment son identifiant unique, " -"les propriétés de la remise (montant ou pourcentage), la période de " +"stocke les détails d'un code promotionnel, notamment son identifiant unique," +" les propriétés de la remise (montant ou pourcentage), la période de " "validité, l'utilisateur associé (le cas échéant) et l'état de son " "utilisation. Elle comprend une fonctionnalité permettant de valider et " "d'appliquer le code promotionnel à une commande tout en veillant à ce que " @@ -2368,7 +2362,8 @@ msgstr "" #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" -msgstr "Code unique utilisé par un utilisateur pour bénéficier d'une réduction" +msgstr "" +"Code unique utilisé par un utilisateur pour bénéficier d'une réduction" #: engine/core/models.py:1088 msgid "promo code identifier" @@ -2376,7 +2371,8 @@ msgstr "Identifiant du code promotionnel" #: engine/core/models.py:1095 msgid "fixed discount amount applied if percent is not used" -msgstr "Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" +msgstr "" +"Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" #: engine/core/models.py:1096 msgid "fixed discount amount" @@ -2384,7 +2380,8 @@ msgstr "Montant de l'escompte fixe" #: engine/core/models.py:1102 msgid "percentage discount applied if fixed amount is not used" -msgstr "Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" +msgstr "" +"Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" #: engine/core/models.py:1103 msgid "percentage discount" @@ -2409,8 +2406,8 @@ msgstr "Heure de début de validité" #: engine/core/models.py:1120 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore " -"été utilisé." +"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore" +" été utilisé." #: engine/core/models.py:1121 msgid "usage timestamp" @@ -2453,18 +2450,18 @@ msgstr "Type de réduction non valide pour le code promo {self.uuid} !" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"Représente une commande passée par un utilisateur. Cette classe modélise une " -"commande dans l'application, y compris ses différents attributs tels que les " -"informations de facturation et d'expédition, le statut, l'utilisateur " -"associé, les notifications et les opérations connexes. Les commandes peuvent " -"être associées à des produits, des promotions peuvent être appliquées, des " -"adresses peuvent être définies et les détails d'expédition ou de facturation " -"peuvent être mis à jour. De même, la fonctionnalité permet de gérer les " +"Représente une commande passée par un utilisateur. Cette classe modélise une" +" commande dans l'application, y compris ses différents attributs tels que " +"les informations de facturation et d'expédition, le statut, l'utilisateur " +"associé, les notifications et les opérations connexes. Les commandes peuvent" +" être associées à des produits, des promotions peuvent être appliquées, des " +"adresses peuvent être définies et les détails d'expédition ou de facturation" +" peuvent être mis à jour. De même, la fonctionnalité permet de gérer les " "produits dans le cycle de vie de la commande." #: engine/core/models.py:1213 @@ -2540,7 +2537,8 @@ msgstr "Un utilisateur ne peut avoir qu'un seul ordre en cours à la fois !" #: engine/core/models.py:1351 msgid "you cannot add products to an order that is not a pending one" msgstr "" -"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en cours." +"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en " +"cours." #: engine/core/models.py:1356 msgid "you cannot add inactive products to order" @@ -2647,7 +2645,8 @@ msgid "feedback comments" msgstr "Commentaires" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Fait référence au produit spécifique d'une commande sur lequel porte le " "retour d'information." @@ -2676,16 +2675,17 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"Représente les produits associés aux commandes et leurs attributs. Le modèle " -"OrderProduct conserve les informations relatives à un produit faisant partie " -"d'une commande, y compris des détails tels que le prix d'achat, la quantité, " -"les attributs du produit et le statut. Il gère les notifications destinées à " -"l'utilisateur et aux administrateurs, ainsi que des opérations telles que le " -"renvoi du solde du produit ou l'ajout de commentaires. Ce modèle fournit " -"également des méthodes et des propriétés qui prennent en charge la logique " -"commerciale, comme le calcul du prix total ou la génération d'une URL de " -"téléchargement pour les produits numériques. Le modèle s'intègre aux modèles " -"de commande et de produit et stocke une référence à ces derniers." +"Représente les produits associés aux commandes et leurs attributs. Le modèle" +" OrderProduct conserve les informations relatives à un produit faisant " +"partie d'une commande, y compris des détails tels que le prix d'achat, la " +"quantité, les attributs du produit et le statut. Il gère les notifications " +"destinées à l'utilisateur et aux administrateurs, ainsi que des opérations " +"telles que le renvoi du solde du produit ou l'ajout de commentaires. Ce " +"modèle fournit également des méthodes et des propriétés qui prennent en " +"charge la logique commerciale, comme le calcul du prix total ou la " +"génération d'une URL de téléchargement pour les produits numériques. Le " +"modèle s'intègre aux modèles de commande et de produit et stocke une " +"référence à ces derniers." #: engine/core/models.py:1757 msgid "the price paid by the customer for this product at purchase time" @@ -2697,7 +2697,8 @@ msgstr "Prix d'achat au moment de la commande" #: engine/core/models.py:1763 msgid "internal comments for admins about this ordered product" -msgstr "Commentaires internes pour les administrateurs sur ce produit commandé" +msgstr "" +"Commentaires internes pour les administrateurs sur ce produit commandé" #: engine/core/models.py:1764 msgid "internal comments" @@ -2795,9 +2796,9 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Représente la fonctionnalité de téléchargement des ressources numériques " "associées aux commandes. La classe DigitalAssetDownload permet de gérer et " @@ -2851,8 +2852,8 @@ msgid "No customer activity in the last 30 days." msgstr "Pas d'activité client au cours des 30 derniers jours." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Ventes quotidiennes (30j)" +msgid "Daily sales" +msgstr "Ventes quotidiennes" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2863,6 +2864,7 @@ msgid "Gross revenue" msgstr "Recettes brutes" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Commandes" @@ -2870,6 +2872,10 @@ msgstr "Commandes" msgid "Gross" msgstr "Brut" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Tableau de bord" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Aperçu des revenus" @@ -2898,20 +2904,32 @@ msgid "No data" msgstr "Pas de date" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Revenue (gross, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Revenue (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Retours (30j)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Net revenue" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Commandes traitées (30j)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Taux de remboursement" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Renvoyé" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Faible stock" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Pas d'articles en rupture de stock." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2926,11 +2944,11 @@ msgid "Most wished product" msgstr "Produit le plus souhaité" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Pas encore de données." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Produit le plus populaire" @@ -2966,10 +2984,6 @@ msgstr "Aucune vente par catégorie au cours des 30 derniers jours." msgid "Django site admin" msgstr "Administrateur de site Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Tableau de bord" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2999,8 +3013,7 @@ msgstr "Bonjour %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Merci pour votre commande #%(order.pk)s ! Nous avons le plaisir de vous " @@ -3115,8 +3128,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Nous vous remercions pour votre commande ! Nous avons le plaisir de " @@ -3155,8 +3167,8 @@ msgstr "Les données et le délai d'attente sont tous deux nécessaires" #: engine/core/utils/caching.py:46 msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre " -"0 et 216000 secondes." +"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre" +" 0 et 216000 secondes." #: engine/core/utils/emailing.py:27 #, python-brace-format @@ -3193,7 +3205,7 @@ msgstr "" "Les dimensions de l'image ne doivent pas dépasser w{max_width} x " "h{max_height} pixels." -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3201,28 +3213,28 @@ msgstr "" "Gère la demande d'index sitemap et renvoie une réponse XML. Il s'assure que " "la réponse inclut l'en-tête de type de contenu approprié pour XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" "Gère la réponse détaillée d'un plan du site. Cette fonction traite la " -"demande, récupère la réponse détaillée appropriée du plan du site et définit " -"l'en-tête Content-Type pour XML." +"demande, récupère la réponse détaillée appropriée du plan du site et définit" +" l'en-tête Content-Type pour XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Renvoie une liste des langues prises en charge et des informations " "correspondantes." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Renvoie les paramètres du site web sous la forme d'un objet JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3230,11 +3242,11 @@ msgstr "" "Gère les opérations de cache telles que la lecture et la définition des " "données de cache avec une clé et un délai spécifiés." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Gère les soumissions du formulaire `contact us`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3242,79 +3254,70 @@ msgstr "" "Gère les demandes de traitement et de validation des URL à partir des " "requêtes POST entrantes." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Traite les demandes de recherche globales." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Gère la logique de l'achat en tant qu'entreprise sans enregistrement." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gère le téléchargement d'un bien numérique associé à une commande.\n" -"Cette fonction tente de servir le fichier de ressource numérique situé dans " -"le répertoire de stockage du projet. Si le fichier n'est pas trouvé, une " -"erreur HTTP 404 est générée pour indiquer que la ressource n'est pas " -"disponible." +"Cette fonction tente de servir le fichier de ressource numérique situé dans le répertoire de stockage du projet. Si le fichier n'est pas trouvé, une erreur HTTP 404 est générée pour indiquer que la ressource n'est pas disponible." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid est obligatoire" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "le produit de la commande n'existe pas" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Vous ne pouvez télécharger le bien numérique qu'une seule fois" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "la commande doit être payée avant le téléchargement du bien numérique" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Le produit de la commande n'a pas de produit" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon introuvable" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gère les demandes de favicon d'un site web.\n" -"Cette fonction tente de servir le fichier favicon situé dans le répertoire " -"statique du projet. Si le fichier favicon n'est pas trouvé, une erreur HTTP " -"404 est générée pour indiquer que la ressource n'est pas disponible." +"Cette fonction tente de servir le fichier favicon situé dans le répertoire statique du projet. Si le fichier favicon n'est pas trouvé, une erreur HTTP 404 est générée pour indiquer que la ressource n'est pas disponible." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Redirige la requête vers la page d'index de l'interface d'administration. " -"Cette fonction gère les requêtes HTTP entrantes et les redirige vers la page " -"d'index de l'interface d'administration de Django. Elle utilise la fonction " -"`redirect` de Django pour gérer la redirection HTTP." +"Cette fonction gère les requêtes HTTP entrantes et les redirige vers la page" +" d'index de l'interface d'administration de Django. Elle utilise la fonction" +" `redirect` de Django pour gérer la redirection HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Renvoie la version actuelle d'eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Renvoie les variables personnalisées pour le tableau de bord." @@ -3335,10 +3338,11 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Représente un jeu de vues pour la gestion des objets AttributeGroup. Gère " "les opérations liées à l'AttributeGroup, notamment le filtrage, la " @@ -3368,14 +3372,15 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Un viewset pour la gestion des objets AttributeValue. Ce viewset fournit des " -"fonctionnalités pour lister, récupérer, créer, mettre à jour et supprimer " +"Un viewset pour la gestion des objets AttributeValue. Ce viewset fournit des" +" fonctionnalités pour lister, récupérer, créer, mettre à jour et supprimer " "des objets AttributeValue. Il s'intègre aux mécanismes de viewset du cadre " "REST de Django et utilise les sérialiseurs appropriés pour les différentes " -"actions. Les capacités de filtrage sont fournies par le backend DjangoFilter." +"actions. Les capacités de filtrage sont fournies par le backend " +"DjangoFilter." #: engine/core/viewsets.py:213 msgid "" @@ -3386,8 +3391,8 @@ msgid "" "can access specific data." msgstr "" "Gère les vues pour les opérations liées à la catégorie. La classe " -"CategoryViewSet est responsable de la gestion des opérations liées au modèle " -"Category dans le système. Elle permet d'extraire, de filtrer et de " +"CategoryViewSet est responsable de la gestion des opérations liées au modèle" +" Category dans le système. Elle permet d'extraire, de filtrer et de " "sérialiser les données relatives aux catégories. Le jeu de vues applique " "également des permissions pour s'assurer que seuls les utilisateurs " "autorisés peuvent accéder à des données spécifiques." @@ -3401,9 +3406,9 @@ msgid "" msgstr "" "Représente un jeu de vues pour la gestion des instances de marque. Cette " "classe fournit des fonctionnalités d'interrogation, de filtrage et de " -"sérialisation des objets Brand. Elle utilise le cadre ViewSet de Django pour " -"simplifier la mise en œuvre des points d'extrémité de l'API pour les objets " -"Brand." +"sérialisation des objets Brand. Elle utilise le cadre ViewSet de Django pour" +" simplifier la mise en œuvre des points d'extrémité de l'API pour les objets" +" Brand." #: engine/core/viewsets.py:438 msgid "" @@ -3420,8 +3425,8 @@ msgstr "" "sérialisation et les opérations sur des instances spécifiques. Elle s'étend " "à partir de `EvibesViewSet` pour utiliser des fonctionnalités communes et " "s'intègre au framework REST de Django pour les opérations API RESTful. Il " -"comprend des méthodes pour récupérer les détails d'un produit, appliquer des " -"permissions et accéder aux commentaires connexes d'un produit." +"comprend des méthodes pour récupérer les détails d'un produit, appliquer des" +" permissions et accéder aux commentaires connexes d'un produit." #: engine/core/viewsets.py:574 msgid "" @@ -3431,8 +3436,8 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Représente un jeu de vues pour la gestion des objets Vendeur. Ce jeu de vues " -"permet d'extraire, de filtrer et de sérialiser les données relatives aux " +"Représente un jeu de vues pour la gestion des objets Vendeur. Ce jeu de vues" +" permet d'extraire, de filtrer et de sérialiser les données relatives aux " "vendeurs. Il définit l'ensemble de requêtes, les configurations de filtrage " "et les classes de sérialisation utilisées pour gérer les différentes " "actions. L'objectif de cette classe est de fournir un accès simplifié aux " @@ -3444,8 +3449,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Représentation d'un ensemble de vues gérant des objets de retour " @@ -3462,9 +3467,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet pour la gestion des commandes et des opérations connexes. Cette " @@ -3481,15 +3486,15 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Fournit un jeu de vues pour la gestion des entités OrderProduct. Ce jeu de " "vues permet d'effectuer des opérations CRUD et des actions personnalisées " "spécifiques au modèle OrderProduct. Il inclut le filtrage, les contrôles de " -"permission et le changement de sérialiseur en fonction de l'action demandée. " -"En outre, il fournit une action détaillée pour gérer le retour " +"permission et le changement de sérialiseur en fonction de l'action demandée." +" En outre, il fournit une action détaillée pour gérer le retour " "d'informations sur les instances OrderProduct." #: engine/core/viewsets.py:879 @@ -3516,8 +3521,8 @@ msgstr "Gère les opérations liées aux données de stock dans le système." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3525,9 +3530,9 @@ msgstr "" "Jeu de vues pour la gestion des opérations de la liste de souhaits. Le jeu " "de vues WishlistViewSet fournit des points d'extrémité pour interagir avec " "la liste de souhaits d'un utilisateur, permettant la récupération, la " -"modification et la personnalisation des produits de la liste de souhaits. Ce " -"jeu de vues facilite les fonctionnalités telles que l'ajout, la suppression " -"et les actions en bloc pour les produits de la liste de souhaits. Des " +"modification et la personnalisation des produits de la liste de souhaits. Ce" +" jeu de vues facilite les fonctionnalités telles que l'ajout, la suppression" +" et les actions en bloc pour les produits de la liste de souhaits. Des " "contrôles de permissions sont intégrés pour s'assurer que les utilisateurs " "ne peuvent gérer que leur propre liste de souhaits, sauf si des permissions " "explicites sont accordées." @@ -3541,11 +3546,11 @@ msgid "" "on the request context." msgstr "" "Cette classe fournit une fonctionnalité de viewset pour la gestion des " -"objets `Address`. La classe AddressViewSet permet d'effectuer des opérations " -"CRUD, des filtrages et des actions personnalisées liées aux entités adresse. " -"Elle inclut des comportements spécialisés pour différentes méthodes HTTP, " -"des dérogations au sérialiseur et une gestion des autorisations basée sur le " -"contexte de la demande." +"objets `Address`. La classe AddressViewSet permet d'effectuer des opérations" +" CRUD, des filtrages et des actions personnalisées liées aux entités " +"adresse. Elle inclut des comportements spécialisés pour différentes méthodes" +" HTTP, des dérogations au sérialiseur et une gestion des autorisations basée" +" sur le contexte de la demande." #: engine/core/viewsets.py:1123 #, python-brace-format diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.mo b/engine/core/locale/he_IL/LC_MESSAGES/django.mo index e0b98482120627ab517a4ac42bf6e19eb495327f..57c05b486c89370608b14a6fd2e526eda73e9767 100644 GIT binary patch delta 11663 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 QT~3cc)4o3kd+8Pb3*w2HTmS$7 delta 11685 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 Pc1rd%*&Cni=~?0b7dNEb diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.po b/engine/core/locale/he_IL/LC_MESSAGES/django.po index fb49f17b..da0c490a 100644 --- a/engine/core/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/core/locale/he_IL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "פעיל" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "אם מוגדר כ-false, אובייקט זה לא יהיה גלוי למשתמשים ללא ההרשאה הנדרשת." #: engine/core/abstract.py:23 engine/core/choices.py:18 @@ -152,7 +153,8 @@ msgstr "נמסר" msgid "canceled" msgstr "בוטל" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "נכשל" @@ -265,7 +267,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "שכתוב קבוצת תכונות קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "שכתוב שדות מסוימים בקבוצת תכונות קיימת תוך שמירת תכונות שאינן ניתנות לעריכה" @@ -314,7 +317,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "שכתוב ערך תכונה קיים תוך שמירת תכונות שאינן ניתנות לעריכה" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "שכתוב שדות מסוימים של ערך תכונה קיים תוך שמירת שדות שאינם ניתנים לעריכה" @@ -368,8 +372,8 @@ msgstr "למשתמשים שאינם אנשי צוות, מוצגות רק ההז #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "חיפוש תת-מחרוזת ללא הבחנה בין אותיות גדולות וקטנות ב-human_readable_id, " "order_products.product.name ו-order_products.product.partnumber" @@ -407,9 +411,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "מיין לפי אחד מהפרמטרים הבאים: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. הוסף קידומת '-' עבור מיון יורד " @@ -453,8 +457,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"מסיים את רכישת ההזמנה. אם נעשה שימוש ב-`force_balance`, הרכישה תושלם באמצעות " -"היתרה של המשתמש; אם נעשה שימוש ב-`force_payment`, תתבצע עסקה." +"מסיים את רכישת ההזמנה. אם נעשה שימוש ב-`force_balance`, הרכישה תושלם באמצעות" +" היתרה של המשתמש; אם נעשה שימוש ב-`force_payment`, תתבצע עסקה." #: engine/core/docs/drf/viewsets.py:397 msgid "retrieve current pending order of a user" @@ -511,7 +515,8 @@ msgstr "הסר מוצר מההזמנה, הכמויות לא ייספרו" msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "מסיר רשימת מוצרים מהזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." +msgstr "" +"מסיר רשימת מוצרים מהזמנה באמצעות `product_uuid` ו-`attributes` שסופקו." #: engine/core/docs/drf/viewsets.py:459 msgid "list all wishlists (simple view)" @@ -590,28 +595,15 @@ msgstr "מסיר מוצרים רבים מרשימת המשאלות באמצעו msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -"סינון לפי זוגות שם/ערך של תכונה אחת או יותר. • **תחביר**: `attr_name=method-" -"value[;attr2=method2-value2]…` • **שיטות** (ברירת המחדל היא `icontains` אם " -"לא צוין): `iexact`, `exact`, `icontains`, `contains`, `isnull`, " -"`startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, " -"`lt`, `lte`, `gt`, `gte`, `in` • **הקלדת ערכים**: תחילה מתבצע ניסיון JSON " -"(כך שניתן להעביר רשימות/מילונים), `true`/`false` עבור ערכי בוליאניים, מספרים " -"שלמים, מספרים צפים; אחרת מטופל כמחרוזת. • **Base64**: קידומת עם `b64-` כדי " -"לקודד את הערך הגולמי ב-base64 בטוח ל-URL. \n" -"דוגמאות: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" +"סינון לפי זוגות שם/ערך של תכונה אחת או יותר. • **תחביר**: `attr_name=method-value[;attr2=method2-value2]…` • **שיטות** (ברירת המחדל היא `icontains` אם לא צוין): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` • **הקלדת ערכים**: תחילה מתבצע ניסיון JSON (כך שניתן להעביר רשימות/מילונים), `true`/`false` עבור ערכי בוליאניים, מספרים שלמים, מספרים צפים; אחרת מטופל כמחרוזת. • **Base64**: קידומת עם `b64-` כדי לקודד את הערך הגולמי ב-base64 בטוח ל-URL. \n" +"דוגמאות: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:568 engine/core/docs/drf/viewsets.py:569 msgid "list all products (simple view)" @@ -623,12 +615,11 @@ msgstr "(מדויק) UUID של המוצר" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"רשימה של שדות למיון, מופרדים בפסיקים. קידומת `-` למיון יורד. **מותר:** uuid, " -"rating, name, slug, created, modified, price, random" +"רשימה של שדות למיון, מופרדים בפסיקים. קידומת `-` למיון יורד. **מותר:** uuid," +" rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -930,7 +921,8 @@ msgstr "שכתוב תגית מוצר קיימת תוך שמירת תוכן שא #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" -msgstr "שכתוב שדות מסוימים בתגית מוצר קיימת תוך שמירת שדות שאינם ניתנים לעריכה" +msgstr "" +"שכתוב שדות מסוימים בתגית מוצר קיימת תוך שמירת שדות שאינם ניתנים לעריכה" #: engine/core/elasticsearch/__init__.py:122 #: engine/core/elasticsearch/__init__.py:570 @@ -1080,7 +1072,7 @@ msgstr "נתונים במטמון" msgid "camelized JSON data from the requested URL" msgstr "נתוני JSON שעברו קמלאיזציה מה-URL המבוקש" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "רק כתובות URL המתחילות ב-http(s):// מותרות" @@ -1164,8 +1156,8 @@ msgstr "קנה הזמנה" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "אנא שלחו את התכונות כמחרוזת מעוצבת כך: attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:549 @@ -1240,7 +1232,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "אילו תכונות וערכים ניתן להשתמש בהם לסינון קטגוריה זו." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "מחירים מינימליים ומקסימליים עבור מוצרים בקטגוריה זו, אם זמינים." #: engine/core/graphene/object_types.py:205 @@ -1594,8 +1587,8 @@ msgid "" msgstr "" "מייצג תגית מוצר המשמשת לסיווג או זיהוי מוצרים. מחלקת ProductTag נועדה לזהות " "ולסווג מוצרים באופן ייחודי באמצעות שילוב של מזהה תגית פנימי ושם תצוגה " -"ידידותי למשתמש. היא תומכת בפעולות המיוצאות באמצעות mixins ומספקת התאמה אישית " -"של מטא-נתונים למטרות ניהוליות." +"ידידותי למשתמש. היא תומכת בפעולות המיוצאות באמצעות mixins ומספקת התאמה אישית" +" של מטא-נתונים למטרות ניהוליות." #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1624,8 +1617,8 @@ msgid "" "attributes for an internal tag identifier and a user-friendly display name." msgstr "" "מייצג תווית קטגוריה המשמשת למוצרים. מחלקה זו מדגמת תווית קטגוריה שניתן " -"להשתמש בה כדי לקשר ולסווג מוצרים. היא כוללת תכונות עבור מזהה תווית פנימי ושם " -"תצוגה ידידותי למשתמש." +"להשתמש בה כדי לקשר ולסווג מוצרים. היא כוללת תכונות עבור מזהה תווית פנימי ושם" +" תצוגה ידידותי למשתמש." #: engine/core/models.py:254 msgid "category tag" @@ -1703,10 +1696,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"מייצג אובייקט מותג במערכת. מחלקה זו מטפלת במידע ובתכונות הקשורים למותג, כולל " -"שמו, לוגואים, תיאור, קטגוריות קשורות, סלוגן ייחודי וסדר עדיפות. היא מאפשרת " +"מייצג אובייקט מותג במערכת. מחלקה זו מטפלת במידע ובתכונות הקשורים למותג, כולל" +" שמו, לוגואים, תיאור, קטגוריות קשורות, סלוגן ייחודי וסדר עדיפות. היא מאפשרת " "ארגון וייצוג של נתונים הקשורים למותג בתוך היישום." #: engine/core/models.py:448 @@ -1751,8 +1745,8 @@ msgstr "קטגוריות" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1840,11 +1834,11 @@ msgid "" "product data and its associated information within an application." msgstr "" "מייצג מוצר עם תכונות כגון קטגוריה, מותג, תגיות, סטטוס דיגיטלי, שם, תיאור, " -"מספר חלק ו-slug. מספק תכונות שירות נלוות לאחזור דירוגים, ספירת משובים, מחיר, " -"כמות והזמנות סה\"כ. מיועד לשימוש במערכת המטפלת במסחר אלקטרוני או בניהול " +"מספר חלק ו-slug. מספק תכונות שירות נלוות לאחזור דירוגים, ספירת משובים, מחיר," +" כמות והזמנות סה\"כ. מיועד לשימוש במערכת המטפלת במסחר אלקטרוני או בניהול " "מלאי. מחלקה זו מתקשרת עם מודלים נלווים (כגון קטגוריה, מותג ותגית מוצר) " -"ומנהלת את המטמון עבור תכונות הנגישות בתדירות גבוהה כדי לשפר את הביצועים. הוא " -"משמש להגדרה ולעיבוד נתוני מוצר והמידע הקשור אליו בתוך יישום." +"ומנהלת את המטמון עבור תכונות הנגישות בתדירות גבוהה כדי לשפר את הביצועים. הוא" +" משמש להגדרה ולעיבוד נתוני מוצר והמידע הקשור אליו בתוך יישום." #: engine/core/models.py:585 msgid "category this product belongs to" @@ -1899,14 +1893,15 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "מייצג תכונה במערכת. מחלקה זו משמשת להגדרת תכונות ולניהולן. תכונות הן נתונים " -"הניתנים להתאמה אישית, שניתן לקשר לישויות אחרות. לתכונות יש קטגוריות, קבוצות, " -"סוגי ערכים ושמות משויכים. המודל תומך בסוגים רבים של ערכים, כולל מחרוזת, מספר " -"שלם, מספר צף, בוליאני, מערך ואובייקט. הדבר מאפשר בניית נתונים דינמית וגמישה." +"הניתנים להתאמה אישית, שניתן לקשר לישויות אחרות. לתכונות יש קטגוריות, קבוצות," +" סוגי ערכים ושמות משויכים. המודל תומך בסוגים רבים של ערכים, כולל מחרוזת, " +"מספר שלם, מספר צף, בוליאני, מערך ואובייקט. הדבר מאפשר בניית נתונים דינמית " +"וגמישה." #: engine/core/models.py:733 msgid "group of this attribute" @@ -1967,9 +1962,9 @@ msgstr "תכונה" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "מייצג ערך ספציפי עבור תכונה המקושרת למוצר. הוא מקשר את ה\"תכונה\" ל\"ערך\" " "ייחודי, ומאפשר ארגון טוב יותר וייצוג דינמי של מאפייני המוצר." @@ -1989,8 +1984,8 @@ msgstr "הערך הספציפי עבור תכונה זו" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2036,8 +2031,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "מייצג קמפיין קידום מכירות למוצרים בהנחה. מחלקה זו משמשת להגדרת וניהול " "קמפיינים לקידום מכירות המציעים הנחה באחוזים על מוצרים. המחלקה כוללת תכונות " @@ -2109,8 +2104,8 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "מייצג תיעוד הקשור למוצר. מחלקה זו משמשת לאחסון מידע על תיעוד הקשור למוצרים " "ספציפיים, כולל העלאת קבצים ומטא-נתונים שלהם. היא מכילה שיטות ותכונות לטיפול " @@ -2131,21 +2126,22 @@ msgstr "לא פתור" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "מייצג ישות כתובת הכוללת פרטים על מיקום וקשרים עם משתמש. מספק פונקציונליות " "לאחסון נתונים גיאוגרפיים וכתובות, וכן אינטגרציה עם שירותי קידוד גיאוגרפי. " -"מחלקה זו נועדה לאחסן מידע מפורט על כתובות, כולל רכיבים כגון רחוב, עיר, אזור, " -"מדינה ומיקום גיאוגרפי (קו אורך וקו רוחב). היא תומכת באינטגרציה עם ממשקי API " -"לקידוד גיאוגרפי, ומאפשרת אחסון של תגובות API גולמיות לעיבוד או בדיקה נוספים. " -"הסוג גם מאפשר לקשר כתובת למשתמש, מה שמקל על טיפול בנתונים מותאמים אישית." +"מחלקה זו נועדה לאחסן מידע מפורט על כתובות, כולל רכיבים כגון רחוב, עיר, אזור," +" מדינה ומיקום גיאוגרפי (קו אורך וקו רוחב). היא תומכת באינטגרציה עם ממשקי API" +" לקידוד גיאוגרפי, ומאפשרת אחסון של תגובות API גולמיות לעיבוד או בדיקה " +"נוספים. הסוג גם מאפשר לקשר כתובת למשתמש, מה שמקל על טיפול בנתונים מותאמים " +"אישית." #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2211,8 +2207,8 @@ msgstr "" "מייצג קוד קידום מכירות שניתן להשתמש בו לקבלת הנחות, לניהול תוקפו, סוג ההנחה " "והשימוש בו. מחלקת PromoCode מאחסנת פרטים אודות קוד קידום מכירות, כולל המזהה " "הייחודי שלו, מאפייני ההנחה (סכום או אחוז), תקופת התוקף, המשתמש המשויך (אם " -"יש) ומצב השימוש בו. היא כוללת פונקציונליות לאימות והחלת קוד הקידום על הזמנה, " -"תוך הקפדה על עמידה באילוצים." +"יש) ומצב השימוש בו. היא כוללת פונקציונליות לאימות והחלת קוד הקידום על הזמנה," +" תוך הקפדה על עמידה באילוצים." #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" @@ -2298,16 +2294,16 @@ msgstr "סוג הנחה לא חוקי עבור קוד קידום מכירות {s msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "מייצג הזמנה שבוצעה על ידי משתמש. מחלקה זו מדמה הזמנה בתוך היישום, כולל " "תכונותיה השונות כגון פרטי חיוב ומשלוח, סטטוס, משתמש קשור, התראות ופעולות " "נלוות. להזמנות יכולות להיות מוצרים נלווים, ניתן להחיל עליהן מבצעים, להגדיר " -"כתובות ולעדכן פרטי משלוח או חיוב. כמו כן, הפונקציונליות תומכת בניהול המוצרים " -"במחזור החיים של ההזמנה." +"כתובות ולעדכן פרטי משלוח או חיוב. כמו כן, הפונקציונליות תומכת בניהול המוצרים" +" במחזור החיים של ההזמנה." #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2461,8 +2457,8 @@ msgid "" msgstr "" "מנהל משוב משתמשים על מוצרים. מחלקה זו נועדה לאסוף ולאחסן משוב משתמשים על " "מוצרים ספציפיים שרכשו. היא מכילה תכונות לאחסון הערות משתמשים, הפניה למוצר " -"הקשור בהזמנה ודירוג שהוקצה על ידי המשתמש. המחלקה משתמשת בשדות מסד נתונים כדי " -"למדל ולנהל ביעילות נתוני משוב." +"הקשור בהזמנה ודירוג שהוקצה על ידי המשתמש. המחלקה משתמשת בשדות מסד נתונים כדי" +" למדל ולנהל ביעילות נתוני משוב." #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2473,7 +2469,8 @@ msgid "feedback comments" msgstr "הערות משוב" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "מתייחס למוצר הספציפי בהזמנה שעליה מתייחס משוב זה." #: engine/core/models.py:1720 @@ -2500,8 +2497,8 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"מייצג מוצרים הקשורים להזמנות ותכונותיהם. מודל OrderProduct שומר מידע על מוצר " -"שהוא חלק מהזמנה, כולל פרטים כגון מחיר הרכישה, כמות, תכונות המוצר ומצב. הוא " +"מייצג מוצרים הקשורים להזמנות ותכונותיהם. מודל OrderProduct שומר מידע על מוצר" +" שהוא חלק מהזמנה, כולל פרטים כגון מחיר הרכישה, כמות, תכונות המוצר ומצב. הוא " "מנהל התראות למשתמש ולמנהלים ומטפל בפעולות כגון החזרת יתרת המוצר או הוספת " "משוב. מודל זה מספק גם שיטות ותכונות התומכות בלוגיקה עסקית, כגון חישוב המחיר " "הכולל או יצירת כתובת URL להורדה עבור מוצרים דיגיטליים. המודל משתלב עם מודלי " @@ -2613,14 +2610,14 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "מייצג את פונקציונליות ההורדה של נכסים דיגיטליים הקשורים להזמנות. מחלקת " "DigitalAssetDownload מספקת את היכולת לנהל ולהיכנס להורדות הקשורות למוצרים " -"שהוזמנו. היא שומרת מידע על המוצר שהוזמן, מספר ההורדות והאם הנכס גלוי לציבור. " -"היא כוללת שיטה ליצירת כתובת URL להורדת הנכס כאשר ההזמנה הקשורה נמצאת במצב " +"שהוזמנו. היא שומרת מידע על המוצר שהוזמן, מספר ההורדות והאם הנכס גלוי לציבור." +" היא כוללת שיטה ליצירת כתובת URL להורדת הנכס כאשר ההזמנה הקשורה נמצאת במצב " "'הושלמה'." #: engine/core/models.py:1961 @@ -2665,8 +2662,8 @@ msgid "No customer activity in the last 30 days." msgstr "אין פעילות של לקוחות ב-30 הימים האחרונים." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "מכירות יומיות (30 יום)" +msgid "Daily sales" +msgstr "מכירות יומיות" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2677,6 +2674,7 @@ msgid "Gross revenue" msgstr "הכנסות ברוטו" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "הזמנות" @@ -2684,6 +2682,10 @@ msgstr "הזמנות" msgid "Gross" msgstr "גרוס" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "לוח מחוונים" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "סקירת הכנסות" @@ -2712,20 +2714,32 @@ msgid "No data" msgstr "בנתונים" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "הכנסה (ברוטו, 30 יום)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "הכנסות (נטו, 30 יום)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "החזרות (30 יום)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "הכנסות נטו" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "הזמנות מעובדות (30 יום)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "שיעור ההחזר" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "הוחזר" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "מלאי נמוך" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "אין פריטים במלאי נמוך." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2740,11 +2754,11 @@ msgid "Most wished product" msgstr "המוצר המבוקש ביותר" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "אין עדיין נתונים." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "המוצר הפופולרי ביותר" @@ -2780,10 +2794,6 @@ msgstr "אין מכירות בקטגוריה זו ב-30 הימים האחרונ msgid "Django site admin" msgstr "מנהל אתר Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "לוח מחוונים" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2813,12 +2823,11 @@ msgstr "שלום %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"תודה על הזמנתך #%(order.pk)s! אנו שמחים להודיע לך שהזמנתך נכנסה לעיבוד. להלן " -"פרטי הזמנתך:" +"תודה על הזמנתך #%(order.pk)s! אנו שמחים להודיע לך שהזמנתך נכנסה לעיבוד. להלן" +" פרטי הזמנתך:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2919,8 +2928,7 @@ msgstr "תודה על שהייתכם איתנו! הענקנו לכם קוד קי #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "תודה על הזמנתך! אנו שמחים לאשר את רכישתך. להלן פרטי הזמנתך:" @@ -2988,15 +2996,15 @@ msgstr "יש להגדיר את הפרמטר NOMINATIM_URL!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "מידות התמונה לא יעלו על w{max_width} x h{max_height} פיקסלים!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"מטפל בבקשה לאינדקס מפת האתר ומחזיר תגובה בפורמט XML. הוא מבטיח שהתגובה תכלול " -"את כותרת סוג התוכן המתאימה ל-XML." +"מטפל בבקשה לאינדקס מפת האתר ומחזיר תגובה בפורמט XML. הוא מבטיח שהתגובה תכלול" +" את כותרת סוג התוכן המתאימה ל-XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3005,101 +3013,97 @@ msgstr "" "מטפל בתגובה לתצוגה מפורטת של מפת אתר. פונקציה זו מעבדת את הבקשה, משיגה את " "התגובה המתאימה לפרטי מפת האתר, וקובעת את כותרת Content-Type עבור XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "מחזיר רשימה של שפות נתמכות והמידע המתאים להן." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "מחזיר את הפרמטרים של האתר כאובייקט JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" "מטפל בפעולות מטמון כגון קריאה והגדרת נתוני מטמון עם מפתח וזמן המתנה מוגדרים." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "מטפל בהגשת טפסי \"צור קשר\"." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "מטפל בבקשות לעיבוד ואימות כתובות URL מבקשות POST נכנסות." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "מטפל בשאילתות חיפוש גלובליות." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "מטפל בהיגיון הרכישה כעסק ללא רישום." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "מטפל בהורדת נכס דיגיטלי הקשור להזמנה. פונקציה זו מנסה להציג את קובץ הנכס " "הדיגיטלי הנמצא בספריית האחסון של הפרויקט. אם הקובץ לא נמצא, מתקבלת שגיאת " "HTTP 404 המציינת שהמשאב אינו זמין." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid נדרש" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "המוצר שהוזמן אינו קיים" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "ניתן להוריד את הנכס הדיגיטלי פעם אחת בלבד" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "יש לשלם את ההזמנה לפני הורדת הנכס הדיגיטלי" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "למוצר ההזמנה אין מוצר" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "לא נמצא סמל מועדף" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "מטפל בבקשות לסמל המועדף של אתר אינטרנט. פונקציה זו מנסה להציג את קובץ הסמל " "המועדף הנמצא בספרייה הסטטית של הפרויקט. אם קובץ הסמל המועדף לא נמצא, מתקבלת " "שגיאת HTTP 404 המציינת שהמשאב אינו זמין." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"מנתב את הבקשה לדף האינדקס של המנהל. הפונקציה מטפלת בבקשות HTTP נכנסות ומנתבת " -"אותן לדף האינדקס של ממשק המנהל של Django. היא משתמשת בפונקציית `redirect` של " -"Django לטיפול בהפניה HTTP." +"מנתב את הבקשה לדף האינדקס של המנהל. הפונקציה מטפלת בבקשות HTTP נכנסות ומנתבת" +" אותן לדף האינדקס של ממשק המנהל של Django. היא משתמשת בפונקציית `redirect` " +"של Django לטיפול בהפניה HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "מחזיר את הגרסה הנוכחית של eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "מחזיר משתנים מותאמים אישית עבור לוח המחוונים." @@ -3111,17 +3115,18 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"מגדיר קבוצת תצוגות לניהול פעולות הקשורות ל-Evibes. מחלקת EvibesViewSet יורשת " -"מ-ModelViewSet ומספקת פונקציונליות לטיפול בפעולות ובפעולות על ישויות Evibes. " -"היא כוללת תמיכה במחלוקות סריאליזציה דינמיות המבוססות על הפעולה הנוכחית, " -"הרשאות הניתנות להתאמה אישית ופורמטים של עיבוד." +"מגדיר קבוצת תצוגות לניהול פעולות הקשורות ל-Evibes. מחלקת EvibesViewSet יורשת" +" מ-ModelViewSet ומספקת פונקציונליות לטיפול בפעולות ובפעולות על ישויות " +"Evibes. היא כוללת תמיכה במחלוקות סריאליזציה דינמיות המבוססות על הפעולה " +"הנוכחית, הרשאות הניתנות להתאמה אישית ופורמטים של עיבוד." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "מייצג קבוצת תצוגות לניהול אובייקטי AttributeGroup. מטפל בפעולות הקשורות " "ל-AttributeGroup, כולל סינון, סידור סדרתי ואחזור נתונים. מחלקה זו היא חלק " @@ -3147,8 +3152,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "סט תצוגה לניהול אובייקטי AttributeValue. סט תצוגה זה מספק פונקציונליות " "לרישום, אחזור, יצירה, עדכון ומחיקה של אובייקטי AttributeValue. הוא משתלב " @@ -3189,10 +3194,10 @@ msgid "" "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" -"מנהל פעולות הקשורות למודל `Product` במערכת. מחלקה זו מספקת מערך תצוגה לניהול " -"מוצרים, כולל סינון, סידור סדרתי ופעולות על מופעים ספציפיים. היא מרחיבה את " -"`EvibesViewSet` כדי להשתמש בפונקציונליות משותפת ומשתלבת עם מסגרת Django REST " -"עבור פעולות RESTful API. כוללת שיטות לאחזור פרטי מוצר, החלת הרשאות וגישה " +"מנהל פעולות הקשורות למודל `Product` במערכת. מחלקה זו מספקת מערך תצוגה לניהול" +" מוצרים, כולל סינון, סידור סדרתי ופעולות על מופעים ספציפיים. היא מרחיבה את " +"`EvibesViewSet` כדי להשתמש בפונקציונליות משותפת ומשתלבת עם מסגרת Django REST" +" עבור פעולות RESTful API. כוללת שיטות לאחזור פרטי מוצר, החלת הרשאות וגישה " "למשוב הקשור למוצר." #: engine/core/viewsets.py:574 @@ -3204,8 +3209,8 @@ msgid "" "Vendor-related resources through the Django REST framework." msgstr "" "מייצג קבוצת תצוגות לניהול אובייקטי ספק. קבוצת תצוגות זו מאפשרת לאחזר, לסנן " -"ולסדר נתוני ספק. היא מגדירה את קבוצת השאילתות, תצורות המסננים ומחלקות הסידור " -"המשמשות לטיפול בפעולות שונות. מטרת מחלקה זו היא לספק גישה יעילה למשאבים " +"ולסדר נתוני ספק. היא מגדירה את קבוצת השאילתות, תצורות המסננים ומחלקות הסידור" +" המשמשות לטיפול בפעולות שונות. מטרת מחלקה זו היא לספק גישה יעילה למשאבים " "הקשורים לספק באמצעות מסגרת Django REST." #: engine/core/viewsets.py:594 @@ -3213,29 +3218,29 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "ייצוג של קבוצת תצוגה המטפלת באובייקטי משוב. מחלקה זו מנהלת פעולות הקשורות " -"לאובייקטי משוב, כולל רישום, סינון ואחזור פרטים. מטרת קבוצת תצוגה זו היא לספק " -"סדרנים שונים לפעולות שונות וליישם טיפול מבוסס הרשאות באובייקטי משוב נגישים. " -"היא מרחיבה את `EvibesViewSet` הבסיסי ומשתמשת במערכת הסינון של Django לשאילתת " -"נתונים." +"לאובייקטי משוב, כולל רישום, סינון ואחזור פרטים. מטרת קבוצת תצוגה זו היא לספק" +" סדרנים שונים לפעולות שונות וליישם טיפול מבוסס הרשאות באובייקטי משוב נגישים." +" היא מרחיבה את `EvibesViewSet` הבסיסי ומשתמשת במערכת הסינון של Django " +"לשאילתת נתונים." #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet לניהול הזמנות ופעולות נלוות. מחלקה זו מספקת פונקציונליות לאחזור, " -"שינוי וניהול אובייקטי הזמנה. היא כוללת נקודות קצה שונות לטיפול בפעולות הזמנה " -"כגון הוספה או הסרה של מוצרים, ביצוע רכישות עבור משתמשים רשומים ולא רשומים, " +"שינוי וניהול אובייקטי הזמנה. היא כוללת נקודות קצה שונות לטיפול בפעולות הזמנה" +" כגון הוספה או הסרה של מוצרים, ביצוע רכישות עבור משתמשים רשומים ולא רשומים, " "ואחזור הזמנות ממתנות של המשתמש המאושר הנוכחי. ViewSet משתמש במספר סדרנים " "בהתאם לפעולה הספציפית המתבצעת ומאכוף הרשאות בהתאם בעת אינטראקציה עם נתוני " "הזמנה." @@ -3244,8 +3249,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "מספק סט תצוגה לניהול ישויות OrderProduct. סט תצוגה זה מאפשר פעולות CRUD " @@ -3275,8 +3280,8 @@ msgstr "מטפל בפעולות הקשורות לנתוני המלאי במער msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." diff --git a/engine/core/locale/hi_IN/LC_MESSAGES/django.po b/engine/core/locale/hi_IN/LC_MESSAGES/django.po index b5e84ca1..95d721d3 100644 --- a/engine/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/core/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2543,7 +2543,7 @@ msgid "No customer activity in the last 30 days." msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" +msgid "Daily sales" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 @@ -2555,6 +2555,7 @@ msgid "Gross revenue" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "" @@ -2562,6 +2563,10 @@ msgstr "" msgid "Gross" msgstr "" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "" @@ -2590,19 +2595,31 @@ msgid "No data" msgstr "" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" +msgid "GMV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." msgstr "" #: engine/core/templates/admin/dashboard/_most_returned.html:5 @@ -2618,11 +2635,11 @@ msgid "Most wished product" msgstr "" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "" -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "" @@ -2658,10 +2675,6 @@ msgstr "" msgid "Django site admin" msgstr "" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2863,53 +2876,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2917,31 +2930,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2949,18 +2962,18 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "" -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "" diff --git a/engine/core/locale/hr_HR/LC_MESSAGES/django.po b/engine/core/locale/hr_HR/LC_MESSAGES/django.po index d4d9aab1..690a1825 100644 --- a/engine/core/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/core/locale/hr_HR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2543,7 +2543,7 @@ msgid "No customer activity in the last 30 days." msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" +msgid "Daily sales" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 @@ -2555,6 +2555,7 @@ msgid "Gross revenue" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "" @@ -2562,6 +2563,10 @@ msgstr "" msgid "Gross" msgstr "" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "" @@ -2590,19 +2595,31 @@ msgid "No data" msgstr "" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" +msgid "GMV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." msgstr "" #: engine/core/templates/admin/dashboard/_most_returned.html:5 @@ -2618,11 +2635,11 @@ msgid "Most wished product" msgstr "" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "" -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "" @@ -2658,10 +2675,6 @@ msgstr "" msgid "Django site admin" msgstr "" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2863,53 +2876,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2917,31 +2930,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2949,18 +2962,18 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "" -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "" diff --git a/engine/core/locale/id_ID/LC_MESSAGES/django.mo b/engine/core/locale/id_ID/LC_MESSAGES/django.mo index e2d54b5720b2109b6ff05f98b694953084c2c7c3..842197affa4aa54e913e615e44f8dd4fae385a6c 100644 GIT binary patch delta 14883 zcmZA72YgT0|HtwB4I!~2cFb5ogh+^zh!K0nh?yEetRP10@ug;!+MBkhy&Gy3MJcJG zTB}rzrYLQ-YW-^bU+?cZ`tbPQ$K&LAKIfc!&b{ZHd%xd^`^UT&eC6%Fo-5-*hhx2$ z;}piYypHoh2FIBhtWw9>Tg`Fu;6Ci?a-1_rwNo+DaeOcwGh-BH!Ma!gTVMe8MsJ*m zxo{fl{AHNYaoo;FWX4ml2Gv1{D96c(6_9IjYT^Qn!%TP&)$SqY#(yy@`qgk8Uo3>R zxzN(63+ol_IQ}>gi{k_=gR8M1<2z|&c60aXSe=UHwavg6FoO8LwRjy9w@2NJ08LyJdFwX2#aFd7{?jsa-0-w?k4khUB`KcirV!ZrzMWWCwK~X;+GA$ zL)r~#=s2~A$2T%FatN71r%husa0k@X_rrWR3H@*x`r;!@PF1EOjj}D63D)EVoft!w&_PThQ%Ibn z7j;;^x8sCTUaT(?$Kv0_?tYHbiFino<20tjZ~HR?#QBrW1#TVWID;r}Kg4nNP<}GS zai-ve;btb?nMRr^E{H6%Qv&sP48XFu5VbiEp{DK$YVCYRnJLYNYL^=;Vhz-iC1C*^ zidyrTs3n+d<0Z)6b2}@^^rT`9>bdn9?KpwNjmMZ>+z-{kMD)d}m<8wHG1@Q34BTPY zalA7q@4=F4@61K*r2`m-x3CiCnP8T-K928_LX`(hbR6DM zPF*aB)|uZh0&AQC)g78l#In3I0se#F)~@sXIL65PO;B_92q@+oiH!< zL7gxjwdQkC7qSLDSB|>igP0S4K)q1XZT(AIo_(sRFN#{SP}IytqAsxQROUaBOkWCu zaR!FtZq%CHwdDn;nStx0Hdk9Lft}GCC!j8DD(Zq4p$6Pw<5bKnP7r%~tsIF0$& zl)t3F2eV8!cbXgZVk&~VuyW{waj1?vqXz6_%SWQtdLnAd7olcwEo#8MsBuo%_kpff+Ci z6*t0adj3<$RHtAo>JILp?%;{lXQsL0f~YGlkGi86)Fx_=8aN4c!Q)XEya3hDr>J(H zqb@wn`V0E$`F}-5n<2+6(@_}u64%2l*aBm)BZlJ&%!X$%0*i#u^gtMUgiJbS`3-P{Og4CWHfbGu?qf$daQ!xnvc~Gj3Q3NFkFRNmHJ_6(Hx9=H9DtWm7t~;Znc`;H zfH)p?hpSODu?5vnDr!cLqb~4Y)CHGXXqF}f)h>D=^RFw7rJy`c!%$4c+;|%s<5R4O zbrzWcC!p4J2I|h1U{&0V74Q~T#+-}Ir)53Vg)~B)Hy8_{+ieS$qrMzƮa)$vO# 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 delta 14872 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -19,7 +19,8 @@ msgstr "ID unik" #: engine/core/abstract.py:13 msgid "unique id is used to surely identify any database object" -msgstr "ID unik digunakan untuk mengidentifikasi objek basis data secara pasti" +msgstr "" +"ID unik digunakan untuk mengidentifikasi objek basis data secara pasti" #: engine/core/abstract.py:20 msgid "is active" @@ -27,7 +28,8 @@ msgstr "Aktif" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Jika diset ke false, objek ini tidak dapat dilihat oleh pengguna tanpa izin " "yang diperlukan" @@ -154,7 +156,8 @@ msgstr "Disampaikan." msgid "canceled" msgstr "Dibatalkan" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Gagal" @@ -192,8 +195,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"Skema OpenApi3 untuk API ini. Format dapat dipilih melalui negosiasi konten. " -"Bahasa dapat dipilih dengan parameter Accept-Language dan parameter kueri." +"Skema OpenApi3 untuk API ini. Format dapat dipilih melalui negosiasi konten." +" Bahasa dapat dipilih dengan parameter Accept-Language dan parameter kueri." #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 msgid "cache I/O" @@ -205,8 +208,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Terapkan hanya kunci untuk membaca data yang diizinkan dari cache.\n" -"Menerapkan kunci, data, dan batas waktu dengan autentikasi untuk menulis " -"data ke cache." +"Menerapkan kunci, data, dan batas waktu dengan autentikasi untuk menulis data ke cache." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -272,7 +274,8 @@ msgstr "" "dapat diedit" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Menulis ulang beberapa bidang dari grup atribut yang sudah ada sehingga " "tidak dapat diedit" @@ -328,7 +331,8 @@ msgstr "" "dapat diedit" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Menulis ulang beberapa bidang dari nilai atribut yang sudah ada sehingga " "tidak dapat diedit" @@ -388,8 +392,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Pencarian substring yang tidak peka huruf besar/kecil di human_readable_id, " "order_produk.product.name, dan order_produk.product.partnumber" @@ -413,7 +417,8 @@ msgstr "Filter berdasarkan ID pesanan yang dapat dibaca manusia" #: engine/core/docs/drf/viewsets.py:308 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filter berdasarkan email pengguna (pencocokan persis tanpa huruf besar-kecil)" +"Filter berdasarkan email pengguna (pencocokan persis tanpa huruf besar-" +"kecil)" #: engine/core/docs/drf/viewsets.py:313 msgid "Filter by user's UUID" @@ -427,9 +432,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Urutkan berdasarkan salah satu dari: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Awalan dengan '-' untuk " @@ -638,31 +643,20 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Memfilter berdasarkan satu atau beberapa pasangan nama/nilai atribut. \n" "- **Sintaks**: `attr_name = metode-nilai[;attr2 = metode2-nilai2]...`\n" -"- **Metode** (default ke `icontains` jika dihilangkan): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Pengetikan nilai**: JSON dicoba terlebih dahulu (sehingga Anda dapat " -"mengoper daftar/diktat), `true`/`false` untuk boolean, bilangan bulat, " -"float; jika tidak, maka akan diperlakukan sebagai string. \n" -"- **Base64**: awalan dengan `b64-` untuk menyandikan base64 yang aman bagi " -"URL untuk menyandikan nilai mentah. \n" +"- **Metode** (default ke `icontains` jika dihilangkan): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Pengetikan nilai**: JSON dicoba terlebih dahulu (sehingga Anda dapat mengoper daftar/diktat), `true`/`false` untuk boolean, bilangan bulat, float; jika tidak, maka akan diperlakukan sebagai string. \n" +"- **Base64**: awalan dengan `b64-` untuk menyandikan base64 yang aman bagi URL untuk menyandikan nilai mentah. \n" "Contoh: \n" -"`warna=merah-pasti`, `ukuran=gt-10`, `fitur=dalam-[\"wifi\", " -"\"bluetooth\"]`,\n" +"`warna=merah-pasti`, `ukuran=gt-10`, `fitur=dalam-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description = berisi-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:568 engine/core/docs/drf/viewsets.py:569 @@ -675,14 +669,11 @@ msgstr "UUID Produk (persis)" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Daftar bidang yang dipisahkan koma untuk mengurutkan. Awalan dengan `-` " -"untuk mengurutkan. \n" -"**Diizinkan:** uuid, peringkat, nama, siput, dibuat, dimodifikasi, harga, " -"acak" +"Daftar bidang yang dipisahkan koma untuk mengurutkan. Awalan dengan `-` untuk mengurutkan. \n" +"**Diizinkan:** uuid, peringkat, nama, siput, dibuat, dimodifikasi, harga, acak" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -757,7 +748,8 @@ msgstr "Masukan alamat pelengkapan otomatis" #: engine/core/docs/drf/viewsets.py:794 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"String kueri data mentah, harap tambahkan dengan data dari titik akhir geo-IP" +"String kueri data mentah, harap tambahkan dengan data dari titik akhir geo-" +"IP" #: engine/core/docs/drf/viewsets.py:800 msgid "limit the results amount, 1 < limit < 10, default: 5" @@ -1165,7 +1157,7 @@ msgstr "Data yang di-cache" msgid "camelized JSON data from the requested URL" msgstr "Data JSON yang di-camel dari URL yang diminta" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Hanya URL yang dimulai dengan http(s):// yang diperbolehkan" @@ -1250,8 +1242,8 @@ msgstr "Beli pesanan" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Kirimkan atribut dalam bentuk string seperti attr1 = nilai1, attr2 = nilai2" @@ -1328,7 +1320,8 @@ msgstr "" "Atribut dan nilai mana yang dapat digunakan untuk memfilter kategori ini." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Harga minimum dan maksimum untuk produk dalam kategori ini, jika tersedia." @@ -1541,7 +1534,8 @@ msgstr "Nomor Telepon Perusahaan" #: engine/core/graphene/object_types.py:680 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -"'email from', terkadang harus digunakan sebagai pengganti nilai pengguna host" +"'email from', terkadang harus digunakan sebagai pengganti nilai pengguna " +"host" #: engine/core/graphene/object_types.py:681 msgid "email host user" @@ -1602,9 +1596,9 @@ msgid "" msgstr "" "Mewakili sekelompok atribut, yang dapat berupa hirarki. Kelas ini digunakan " "untuk mengelola dan mengatur grup atribut. Sebuah grup atribut dapat " -"memiliki grup induk, membentuk struktur hirarki. Hal ini dapat berguna untuk " -"mengkategorikan dan mengelola atribut secara lebih efektif dalam sistem yang " -"kompleks." +"memiliki grup induk, membentuk struktur hirarki. Hal ini dapat berguna untuk" +" mengkategorikan dan mengelola atribut secara lebih efektif dalam sistem " +"yang kompleks." #: engine/core/models.py:91 msgid "parent of this group" @@ -1634,8 +1628,8 @@ msgid "" msgstr "" "Mewakili entitas vendor yang mampu menyimpan informasi tentang vendor " "eksternal dan persyaratan interaksinya. Kelas Vendor digunakan untuk " -"mendefinisikan dan mengelola informasi yang terkait dengan vendor eksternal. " -"Kelas ini menyimpan nama vendor, detail otentikasi yang diperlukan untuk " +"mendefinisikan dan mengelola informasi yang terkait dengan vendor eksternal." +" Kelas ini menyimpan nama vendor, detail otentikasi yang diperlukan untuk " "komunikasi, dan persentase markup yang diterapkan pada produk yang diambil " "dari vendor. Model ini juga menyimpan metadata dan batasan tambahan, " "sehingga cocok untuk digunakan dalam sistem yang berinteraksi dengan vendor " @@ -1694,8 +1688,8 @@ msgstr "" "Merupakan tag produk yang digunakan untuk mengklasifikasikan atau " "mengidentifikasi produk. Kelas ProductTag dirancang untuk mengidentifikasi " "dan mengklasifikasikan produk secara unik melalui kombinasi pengenal tag " -"internal dan nama tampilan yang mudah digunakan. Kelas ini mendukung operasi " -"yang diekspor melalui mixin dan menyediakan penyesuaian metadata untuk " +"internal dan nama tampilan yang mudah digunakan. Kelas ini mendukung operasi" +" yang diekspor melalui mixin dan menyediakan penyesuaian metadata untuk " "tujuan administratif." #: engine/core/models.py:209 engine/core/models.py:240 @@ -1724,8 +1718,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"Merupakan tag kategori yang digunakan untuk produk. Kelas ini memodelkan tag " -"kategori yang dapat digunakan untuk mengaitkan dan mengklasifikasikan " +"Merupakan tag kategori yang digunakan untuk produk. Kelas ini memodelkan tag" +" kategori yang dapat digunakan untuk mengaitkan dan mengklasifikasikan " "produk. Kelas ini mencakup atribut untuk pengenal tag internal dan nama " "tampilan yang mudah digunakan." @@ -1751,9 +1745,9 @@ msgid "" msgstr "" "Merupakan entitas kategori untuk mengatur dan mengelompokkan item terkait " "dalam struktur hierarki. Kategori dapat memiliki hubungan hierarkis dengan " -"kategori lain, yang mendukung hubungan induk-anak. Kelas ini mencakup bidang " -"untuk metadata dan representasi visual, yang berfungsi sebagai fondasi untuk " -"fitur-fitur terkait kategori. Kelas ini biasanya digunakan untuk " +"kategori lain, yang mendukung hubungan induk-anak. Kelas ini mencakup bidang" +" untuk metadata dan representasi visual, yang berfungsi sebagai fondasi " +"untuk fitur-fitur terkait kategori. Kelas ini biasanya digunakan untuk " "mendefinisikan dan mengelola kategori produk atau pengelompokan serupa " "lainnya dalam aplikasi, yang memungkinkan pengguna atau administrator " "menentukan nama, deskripsi, dan hierarki kategori, serta menetapkan atribut " @@ -1808,12 +1802,13 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Mewakili objek Merek dalam sistem. Kelas ini menangani informasi dan atribut " -"yang terkait dengan merek, termasuk nama, logo, deskripsi, kategori terkait, " -"siput unik, dan urutan prioritas. Kelas ini memungkinkan pengaturan dan " -"representasi data yang terkait dengan merek di dalam aplikasi." +"Mewakili objek Merek dalam sistem. Kelas ini menangani informasi dan atribut" +" yang terkait dengan merek, termasuk nama, logo, deskripsi, kategori " +"terkait, siput unik, dan urutan prioritas. Kelas ini memungkinkan pengaturan" +" dan representasi data yang terkait dengan merek di dalam aplikasi." #: engine/core/models.py:448 msgid "name of this brand" @@ -1857,8 +1852,8 @@ msgstr "Kategori" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1866,10 +1861,10 @@ msgid "" msgstr "" "Mewakili stok produk yang dikelola dalam sistem. Kelas ini memberikan " "rincian tentang hubungan antara vendor, produk, dan informasi stok mereka, " -"serta properti terkait inventaris seperti harga, harga pembelian, kuantitas, " -"SKU, dan aset digital. Ini adalah bagian dari sistem manajemen inventaris " -"untuk memungkinkan pelacakan dan evaluasi produk yang tersedia dari berbagai " -"vendor." +"serta properti terkait inventaris seperti harga, harga pembelian, kuantitas," +" SKU, dan aset digital. Ini adalah bagian dari sistem manajemen inventaris " +"untuk memungkinkan pelacakan dan evaluasi produk yang tersedia dari berbagai" +" vendor." #: engine/core/models.py:520 msgid "the vendor supplying this product stock" @@ -1947,13 +1942,13 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"Merepresentasikan produk dengan atribut seperti kategori, merek, tag, status " -"digital, nama, deskripsi, nomor komponen, dan siput. Menyediakan properti " +"Merepresentasikan produk dengan atribut seperti kategori, merek, tag, status" +" digital, nama, deskripsi, nomor komponen, dan siput. Menyediakan properti " "utilitas terkait untuk mengambil peringkat, jumlah umpan balik, harga, " "kuantitas, dan total pesanan. Dirancang untuk digunakan dalam sistem yang " "menangani e-commerce atau manajemen inventaris. Kelas ini berinteraksi " -"dengan model terkait (seperti Kategori, Merek, dan ProductTag) dan mengelola " -"cache untuk properti yang sering diakses untuk meningkatkan kinerja. Kelas " +"dengan model terkait (seperti Kategori, Merek, dan ProductTag) dan mengelola" +" cache untuk properti yang sering diakses untuk meningkatkan kinerja. Kelas " "ini digunakan untuk mendefinisikan dan memanipulasi data produk dan " "informasi terkait di dalam aplikasi." @@ -2010,12 +2005,12 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Merupakan atribut dalam sistem. Kelas ini digunakan untuk mendefinisikan dan " -"mengelola atribut, yang merupakan bagian data yang dapat disesuaikan yang " +"Merupakan atribut dalam sistem. Kelas ini digunakan untuk mendefinisikan dan" +" mengelola atribut, yang merupakan bagian data yang dapat disesuaikan yang " "dapat dikaitkan dengan entitas lain. Atribut memiliki kategori, grup, tipe " "nilai, dan nama yang terkait. Model ini mendukung berbagai jenis nilai, " "termasuk string, integer, float, boolean, array, dan objek. Hal ini " @@ -2081,9 +2076,9 @@ msgstr "Atribut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Mewakili nilai spesifik untuk atribut yang terkait dengan produk. Ini " "menghubungkan 'atribut' dengan 'nilai' yang unik, memungkinkan pengaturan " @@ -2104,14 +2099,14 @@ msgstr "Nilai spesifik untuk atribut ini" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Mewakili gambar produk yang terkait dengan produk dalam sistem. Kelas ini " -"dirancang untuk mengelola gambar untuk produk, termasuk fungsionalitas untuk " -"mengunggah file gambar, mengasosiasikannya dengan produk tertentu, dan " +"dirancang untuk mengelola gambar untuk produk, termasuk fungsionalitas untuk" +" mengunggah file gambar, mengasosiasikannya dengan produk tertentu, dan " "menentukan urutan tampilannya. Kelas ini juga mencakup fitur aksesibilitas " "dengan teks alternatif untuk gambar." @@ -2153,8 +2148,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Merupakan kampanye promosi untuk produk dengan diskon. Kelas ini digunakan " "untuk mendefinisikan dan mengelola kampanye promosi yang menawarkan diskon " @@ -2230,8 +2225,8 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Merupakan catatan dokumenter yang terkait dengan suatu produk. Kelas ini " "digunakan untuk menyimpan informasi tentang film dokumenter yang terkait " @@ -2254,14 +2249,14 @@ msgstr "Belum terselesaikan" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Mewakili entitas alamat yang mencakup detail lokasi dan asosiasi dengan " "pengguna. Menyediakan fungsionalitas untuk penyimpanan data geografis dan " @@ -2335,8 +2330,8 @@ msgid "" "apply the promo code to an order while ensuring constraints are met." msgstr "" "Mewakili kode promosi yang dapat digunakan untuk diskon, mengelola " -"validitas, jenis diskon, dan penerapannya. Kelas PromoCode menyimpan rincian " -"tentang kode promosi, termasuk pengenal unik, properti diskon (jumlah atau " +"validitas, jenis diskon, dan penerapannya. Kelas PromoCode menyimpan rincian" +" tentang kode promosi, termasuk pengenal unik, properti diskon (jumlah atau " "persentase), masa berlaku, pengguna terkait (jika ada), dan status " "penggunaannya. Ini termasuk fungsionalitas untuk memvalidasi dan menerapkan " "kode promo ke pesanan sambil memastikan batasan terpenuhi." @@ -2427,8 +2422,8 @@ msgstr "Jenis diskon tidak valid untuk kode promo {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2471,8 +2466,8 @@ msgstr "Status pesanan" #: engine/core/models.py:1243 engine/core/models.py:1769 msgid "json structure of notifications to display to users" msgstr "" -"Struktur JSON dari notifikasi untuk ditampilkan kepada pengguna, di UI admin " -"digunakan table-view" +"Struktur JSON dari notifikasi untuk ditampilkan kepada pengguna, di UI admin" +" digunakan table-view" #: engine/core/models.py:1249 msgid "json representation of order attributes for this order" @@ -2619,7 +2614,8 @@ msgid "feedback comments" msgstr "Komentar umpan balik" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "Merujuk ke produk tertentu sesuai dengan urutan umpan balik ini" #: engine/core/models.py:1720 @@ -2651,8 +2647,8 @@ msgstr "" "pesanan, termasuk rincian seperti harga pembelian, kuantitas, atribut " "produk, dan status. Model ini mengelola notifikasi untuk pengguna dan " "administrator dan menangani operasi seperti mengembalikan saldo produk atau " -"menambahkan umpan balik. Model ini juga menyediakan metode dan properti yang " -"mendukung logika bisnis, seperti menghitung harga total atau menghasilkan " +"menambahkan umpan balik. Model ini juga menyediakan metode dan properti yang" +" mendukung logika bisnis, seperti menghitung harga total atau menghasilkan " "URL unduhan untuk produk digital. Model ini terintegrasi dengan model " "Pesanan dan Produk dan menyimpan referensi ke keduanya." @@ -2764,9 +2760,9 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Mewakili fungsionalitas pengunduhan untuk aset digital yang terkait dengan " "pesanan. Kelas DigitalAssetDownload menyediakan kemampuan untuk mengelola " @@ -2820,8 +2816,8 @@ msgid "No customer activity in the last 30 days." msgstr "Tidak ada aktivitas nasabah dalam 30 hari terakhir." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Penjualan harian (30d)" +msgid "Daily sales" +msgstr "Penjualan harian" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2832,6 +2828,7 @@ msgid "Gross revenue" msgstr "Pendapatan kotor" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Pesanan" @@ -2839,6 +2836,10 @@ msgstr "Pesanan" msgid "Gross" msgstr "Kotor" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Dasbor" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Ikhtisar pendapatan" @@ -2867,20 +2868,32 @@ msgid "No data" msgstr "Tidak ada tanggal" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Pendapatan (kotor, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Pendapatan (bersih, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Pengembalian (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Pendapatan bersih" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Pesanan yang diproses (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Tingkat pengembalian dana" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Kembali" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Stok rendah" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Tidak ada stok barang yang rendah." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2895,11 +2908,11 @@ msgid "Most wished product" msgstr "Produk yang paling diharapkan" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Belum ada data." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Produk paling populer" @@ -2935,10 +2948,6 @@ msgstr "Tidak ada penjualan kategori dalam 30 hari terakhir." msgid "Django site admin" msgstr "Admin situs Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Dasbor" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2968,8 +2977,7 @@ msgstr "Halo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Terima kasih atas pesanan Anda #%(order.pk)s! Dengan senang hati kami " @@ -3078,15 +3086,13 @@ msgid "" "Thank you for staying with us! We have granted you with a promocode\n" " for " msgstr "" -"Terima kasih telah tinggal bersama kami! Kami telah memberikan Anda kode " -"promo\n" +"Terima kasih telah tinggal bersama kami! Kami telah memberikan Anda kode promo\n" " untuk" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Terima kasih atas pesanan Anda! Dengan senang hati kami mengkonfirmasi " @@ -3159,7 +3165,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Dimensi gambar tidak boleh melebihi w{max_width} x h{max_height} piksel!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3167,7 +3173,7 @@ msgstr "" "Menangani permintaan indeks peta situs dan mengembalikan respons XML. " "Memastikan respons menyertakan header jenis konten yang sesuai untuk XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3177,28 +3183,28 @@ msgstr "" "permintaan, mengambil respons detail peta situs yang sesuai, dan menetapkan " "header Jenis Konten untuk XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Mengembalikan daftar bahasa yang didukung dan informasi terkait." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Mengembalikan parameter situs web sebagai objek JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Menangani operasi cache seperti membaca dan mengatur data cache dengan kunci " -"dan batas waktu tertentu." +"Menangani operasi cache seperti membaca dan mengatur data cache dengan kunci" +" dan batas waktu tertentu." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Menangani pengiriman formulir `hubungi kami`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3206,66 +3212,58 @@ msgstr "" "Menangani permintaan untuk memproses dan memvalidasi URL dari permintaan " "POST yang masuk." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Menangani kueri penelusuran global." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Menangani logika pembelian sebagai bisnis tanpa registrasi." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Menangani pengunduhan aset digital yang terkait dengan pesanan.\n" -"Fungsi ini mencoba untuk menyajikan file aset digital yang terletak di " -"direktori penyimpanan proyek. Jika file tidak ditemukan, kesalahan HTTP 404 " -"akan muncul untuk mengindikasikan bahwa sumber daya tidak tersedia." +"Fungsi ini mencoba untuk menyajikan file aset digital yang terletak di direktori penyimpanan proyek. Jika file tidak ditemukan, kesalahan HTTP 404 akan muncul untuk mengindikasikan bahwa sumber daya tidak tersedia." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid diperlukan" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "produk pesanan tidak ada" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Anda hanya dapat mengunduh aset digital sekali saja" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "pesanan harus dibayar sebelum mengunduh aset digital" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Produk pesanan tidak memiliki produk" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon tidak ditemukan" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Menangani permintaan favicon dari sebuah situs web.\n" -"Fungsi ini mencoba menyajikan file favicon yang terletak di direktori statis " -"proyek. Jika file favicon tidak ditemukan, kesalahan HTTP 404 akan " -"dimunculkan untuk mengindikasikan bahwa sumber daya tidak tersedia." +"Fungsi ini mencoba menyajikan file favicon yang terletak di direktori statis proyek. Jika file favicon tidak ditemukan, kesalahan HTTP 404 akan dimunculkan untuk mengindikasikan bahwa sumber daya tidak tersedia." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Mengalihkan permintaan ke halaman indeks admin. Fungsi ini menangani " @@ -3273,11 +3271,11 @@ msgstr "" "admin Django. Fungsi ini menggunakan fungsi `redirect` Django untuk " "menangani pengalihan HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Mengembalikan versi eVibes saat ini." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Mengembalikan variabel khusus untuk Dasbor." @@ -3297,10 +3295,11 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Mewakili sebuah viewset untuk mengelola objek AttributeGroup. Menangani " "operasi yang terkait dengan AttributeGroup, termasuk pemfilteran, " @@ -3329,11 +3328,11 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Sebuah viewset untuk mengelola objek AttributeValue. Viewset ini menyediakan " -"fungsionalitas untuk mendaftarkan, mengambil, membuat, memperbarui, dan " +"Sebuah viewset untuk mengelola objek AttributeValue. Viewset ini menyediakan" +" fungsionalitas untuk mendaftarkan, mengambil, membuat, memperbarui, dan " "menghapus objek AttributeValue. Ini terintegrasi dengan mekanisme viewset " "Django REST Framework dan menggunakan serializer yang sesuai untuk tindakan " "yang berbeda. Kemampuan pemfilteran disediakan melalui DjangoFilterBackend." @@ -3347,10 +3346,10 @@ msgid "" "can access specific data." msgstr "" "Mengelola tampilan untuk operasi terkait Kategori. Kelas CategoryViewSet " -"bertanggung jawab untuk menangani operasi yang terkait dengan model Kategori " -"dalam sistem. Kelas ini mendukung pengambilan, pemfilteran, dan serialisasi " -"data kategori. ViewSet juga memberlakukan izin untuk memastikan bahwa hanya " -"pengguna yang memiliki izin yang dapat mengakses data tertentu." +"bertanggung jawab untuk menangani operasi yang terkait dengan model Kategori" +" dalam sistem. Kelas ini mendukung pengambilan, pemfilteran, dan serialisasi" +" data kategori. ViewSet juga memberlakukan izin untuk memastikan bahwa hanya" +" pengguna yang memiliki izin yang dapat mengakses data tertentu." #: engine/core/viewsets.py:326 msgid "" @@ -3361,8 +3360,8 @@ msgid "" msgstr "" "Mewakili sebuah viewset untuk mengelola instance Brand. Kelas ini " "menyediakan fungsionalitas untuk melakukan kueri, penyaringan, dan " -"serialisasi objek Brand. Kelas ini menggunakan kerangka kerja ViewSet Django " -"untuk menyederhanakan implementasi titik akhir API untuk objek Brand." +"serialisasi objek Brand. Kelas ini menggunakan kerangka kerja ViewSet Django" +" untuk menyederhanakan implementasi titik akhir API untuk objek Brand." #: engine/core/viewsets.py:438 msgid "" @@ -3375,11 +3374,11 @@ msgid "" "product." msgstr "" "Mengelola operasi yang terkait dengan model `Product` dalam sistem. Kelas " -"ini menyediakan sebuah viewset untuk mengelola produk, termasuk pemfilteran, " -"serialisasi, dan operasi pada instance tertentu. Kelas ini diperluas dari " +"ini menyediakan sebuah viewset untuk mengelola produk, termasuk pemfilteran," +" serialisasi, dan operasi pada instance tertentu. Kelas ini diperluas dari " "`EvibesViewSet` untuk menggunakan fungsionalitas umum dan terintegrasi " -"dengan kerangka kerja Django REST untuk operasi RESTful API. Termasuk metode " -"untuk mengambil detail produk, menerapkan izin, dan mengakses umpan balik " +"dengan kerangka kerja Django REST untuk operasi RESTful API. Termasuk metode" +" untuk mengambil detail produk, menerapkan izin, dan mengakses umpan balik " "terkait produk." #: engine/core/viewsets.py:574 @@ -3402,15 +3401,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representasi set tampilan yang menangani objek Umpan Balik. Kelas ini " "mengelola operasi yang terkait dengan objek Umpan Balik, termasuk " "mendaftarkan, memfilter, dan mengambil detail. Tujuan dari set tampilan ini " -"adalah untuk menyediakan serializer yang berbeda untuk tindakan yang berbeda " -"dan mengimplementasikan penanganan berbasis izin untuk objek Umpan Balik " +"adalah untuk menyediakan serializer yang berbeda untuk tindakan yang berbeda" +" dan mengimplementasikan penanganan berbasis izin untuk objek Umpan Balik " "yang dapat diakses. Kelas ini memperluas `EvibesViewSet` dasar dan " "menggunakan sistem penyaringan Django untuk meminta data." @@ -3419,9 +3418,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet untuk mengelola pesanan dan operasi terkait. Kelas ini menyediakan " @@ -3437,8 +3436,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Menyediakan viewset untuk mengelola entitas OrderProduct. Viewset ini " @@ -3471,17 +3470,17 @@ msgstr "Menangani operasi yang terkait dengan data Stok di dalam sistem." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" "ViewSet untuk mengelola operasi Wishlist. WishlistViewSet menyediakan titik " -"akhir untuk berinteraksi dengan daftar keinginan pengguna, yang memungkinkan " -"pengambilan, modifikasi, dan penyesuaian produk dalam daftar keinginan. " -"ViewSet ini memfasilitasi fungsionalitas seperti menambahkan, menghapus, dan " -"tindakan massal untuk produk daftar keinginan. Pemeriksaan izin " +"akhir untuk berinteraksi dengan daftar keinginan pengguna, yang memungkinkan" +" pengambilan, modifikasi, dan penyesuaian produk dalam daftar keinginan. " +"ViewSet ini memfasilitasi fungsionalitas seperti menambahkan, menghapus, dan" +" tindakan massal untuk produk daftar keinginan. Pemeriksaan izin " "diintegrasikan untuk memastikan bahwa pengguna hanya dapat mengelola daftar " "keinginan mereka sendiri kecuali jika izin eksplisit diberikan." @@ -3493,8 +3492,8 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Kelas ini menyediakan fungsionalitas viewset untuk mengelola objek `Alamat`. " -"Kelas AddressViewSet memungkinkan operasi CRUD, pemfilteran, dan tindakan " +"Kelas ini menyediakan fungsionalitas viewset untuk mengelola objek `Alamat`." +" Kelas AddressViewSet memungkinkan operasi CRUD, pemfilteran, dan tindakan " "khusus yang terkait dengan entitas alamat. Kelas ini mencakup perilaku " "khusus untuk metode HTTP yang berbeda, penggantian serializer, dan " "penanganan izin berdasarkan konteks permintaan." diff --git a/engine/core/locale/it_IT/LC_MESSAGES/django.mo b/engine/core/locale/it_IT/LC_MESSAGES/django.mo index 356a26fd175d1af1802868efb02644242550c6ee..694e98fc5647be4f0f5ecb4455d94904e686ce06 100644 GIT binary patch delta 14874 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 MWA+_r=_woff6e>3ApigX diff --git a/engine/core/locale/it_IT/LC_MESSAGES/django.po b/engine/core/locale/it_IT/LC_MESSAGES/django.po index becef461..1e281539 100644 --- a/engine/core/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/core/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,10 +29,11 @@ msgstr "È attivo" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"Se impostato a false, questo oggetto non può essere visto dagli utenti senza " -"i necessari permessi." +"Se impostato a false, questo oggetto non può essere visto dagli utenti senza" +" i necessari permessi." #: engine/core/abstract.py:23 engine/core/choices.py:18 msgid "created" @@ -156,7 +157,8 @@ msgstr "Consegnato" msgid "canceled" msgstr "Annullato" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Fallito" @@ -194,9 +196,9 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"Schema OpenApi3 per questa API. Il formato può essere selezionato tramite la " -"negoziazione dei contenuti. La lingua può essere selezionata sia con Accept-" -"Language che con il parametro query." +"Schema OpenApi3 per questa API. Il formato può essere selezionato tramite la" +" negoziazione dei contenuti. La lingua può essere selezionata sia con " +"Accept-Language che con il parametro query." #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 msgid "cache I/O" @@ -208,8 +210,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Applicare solo una chiave per leggere i dati consentiti dalla cache.\n" -"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella " -"cache." +"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella cache." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -274,7 +275,8 @@ msgstr "" "Riscrivere un gruppo di attributi esistente salvando i non modificabili" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Riscrivere alcuni campi di un gruppo di attributi esistente salvando quelli " "non modificabili" @@ -329,7 +331,8 @@ msgstr "" "modificabili" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Riscrivere alcuni campi di un valore di attributo esistente salvando i " "valori non modificabili" @@ -362,8 +365,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:244 engine/core/docs/drf/viewsets.py:245 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:252 engine/core/docs/drf/viewsets.py:704 #: engine/core/docs/drf/viewsets.py:988 @@ -389,12 +392,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Ricerca di sottostringhe senza distinzione di maiuscole e minuscole tra " -"human_readable_id, order_products.product.name e order_products.product." -"partnumber" +"human_readable_id, order_products.product.name e " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -430,9 +433,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordinare per uno dei seguenti criteri: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefisso con '-' per la " @@ -466,8 +469,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:373 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:380 msgid "purchase an order" @@ -480,8 +483,8 @@ msgid "" "transaction is initiated." msgstr "" "Finalizza l'acquisto dell'ordine. Se si utilizza `forza_bilancio`, " -"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza " -"`forza_pagamento`, viene avviata una transazione." +"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza" +" `forza_pagamento`, viene avviata una transazione." #: engine/core/docs/drf/viewsets.py:397 msgid "retrieve current pending order of a user" @@ -557,8 +560,8 @@ msgstr "Elenco di tutti gli attributi (vista semplice)" #: engine/core/docs/drf/viewsets.py:460 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -"Per gli utenti che non fanno parte del personale, vengono restituite solo le " -"loro liste dei desideri." +"Per gli utenti che non fanno parte del personale, vengono restituite solo le" +" loro liste dei desideri." #: engine/core/docs/drf/viewsets.py:467 msgid "retrieve a single wishlist (detailed view)" @@ -639,28 +642,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrare in base a una o più coppie nome/valore dell'attributo. \n" "- **Sintassi**: `nome_attraverso=metodo-valore[;attr2=metodo2-valore2]...`\n" -"- **Metodi** (predefiniti a `icontains` se omessi): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- **Tipo di valore**: JSON viene tentato per primo (in modo da poter passare " -"liste/dict), `true`/`false` per booleani, interi, float; altrimenti viene " -"trattato come stringa. \n" -"- **Base64**: prefisso con `b64-` per codificare in base64 il valore " -"grezzo. \n" +"- **Metodi** (predefiniti a `icontains` se omessi): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Tipo di valore**: JSON viene tentato per primo (in modo da poter passare liste/dict), `true`/`false` per booleani, interi, float; altrimenti viene trattato come stringa. \n" +"- **Base64**: prefisso con `b64-` per codificare in base64 il valore grezzo. \n" "Esempi: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -675,12 +668,10 @@ msgstr "(esatto) UUID del prodotto" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per " -"l'ordinamento discendente. \n" +"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per l'ordinamento discendente. \n" "**Consentito:** uuid, rating, nome, slug, creato, modificato, prezzo, casuale" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -702,7 +693,8 @@ msgstr "Creare un prodotto" #: engine/core/docs/drf/viewsets.py:628 engine/core/docs/drf/viewsets.py:629 msgid "rewrite an existing product, preserving non-editable fields" -msgstr "Riscrivere un prodotto esistente, preservando i campi non modificabili" +msgstr "" +"Riscrivere un prodotto esistente, preservando i campi non modificabili" #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "" @@ -784,8 +776,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:851 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:861 msgid "list all order–product relations (simple view)" @@ -843,8 +835,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:981 msgid "rewrite some fields of an existing brand saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1006 msgid "list all vendors (simple view)" @@ -870,8 +862,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1041 msgid "rewrite some fields of an existing vendor saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1051 msgid "list all product images (simple view)" @@ -897,8 +889,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1086 msgid "rewrite some fields of an existing product image saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1096 msgid "list all promo codes (simple view)" @@ -924,8 +916,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1131 msgid "rewrite some fields of an existing promo code saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1141 msgid "list all promotions (simple view)" @@ -951,8 +943,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1186 msgid "list all stocks (simple view)" @@ -978,8 +970,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1221 msgid "rewrite some fields of an existing stock record saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/docs/drf/viewsets.py:1231 msgid "list all product tags (simple view)" @@ -1005,8 +997,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " -"modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" +" modificabili" #: engine/core/elasticsearch/__init__.py:122 #: engine/core/elasticsearch/__init__.py:570 @@ -1157,7 +1149,7 @@ msgstr "Dati in cache" msgid "camelized JSON data from the requested URL" msgstr "Dati JSON camelizzati dall'URL richiesto" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Sono consentiti solo gli URL che iniziano con http(s)://" @@ -1191,7 +1183,8 @@ msgstr "" #: engine/core/graphene/mutations.py:236 engine/core/graphene/mutations.py:501 #: engine/core/graphene/mutations.py:543 engine/core/viewsets.py:712 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" +msgstr "" +"Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" #: engine/core/graphene/mutations.py:245 msgid "perform an action on a list of products in the order" @@ -1242,11 +1235,11 @@ msgstr "Acquistare un ordine" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" -"Inviare gli attributi come stringa formattata come attr1=valore1," -"attr2=valore2" +"Inviare gli attributi come stringa formattata come " +"attr1=valore1,attr2=valore2" #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1322,7 +1315,8 @@ msgstr "" "categoria." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Prezzi minimi e massimi per i prodotti di questa categoria, se disponibili." @@ -1593,9 +1587,9 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"Rappresenta un gruppo di attributi, che può essere gerarchico. Questa classe " -"viene utilizzata per gestire e organizzare i gruppi di attributi. Un gruppo " -"di attributi può avere un gruppo padre, formando una struttura gerarchica. " +"Rappresenta un gruppo di attributi, che può essere gerarchico. Questa classe" +" viene utilizzata per gestire e organizzare i gruppi di attributi. Un gruppo" +" di attributi può avere un gruppo padre, formando una struttura gerarchica. " "Questo può essere utile per categorizzare e gestire meglio gli attributi in " "un sistema complesso." @@ -1719,8 +1713,8 @@ msgid "" msgstr "" "Rappresenta un tag di categoria utilizzato per i prodotti. Questa classe " "modella un tag di categoria che può essere usato per associare e " -"classificare i prodotti. Include gli attributi per un identificatore interno " -"del tag e un nome di visualizzazione facile da usare." +"classificare i prodotti. Include gli attributi per un identificatore interno" +" del tag e un nome di visualizzazione facile da usare." #: engine/core/models.py:254 msgid "category tag" @@ -1744,12 +1738,12 @@ msgid "" msgstr "" "Rappresenta un'entità di categoria per organizzare e raggruppare gli " "elementi correlati in una struttura gerarchica. Le categorie possono avere " -"relazioni gerarchiche con altre categorie, supportando le relazioni genitore-" -"figlio. La classe include campi per i metadati e per la rappresentazione " -"visiva, che servono come base per le funzionalità legate alle categorie. " -"Questa classe viene tipicamente utilizzata per definire e gestire le " -"categorie di prodotti o altri raggruppamenti simili all'interno di " -"un'applicazione, consentendo agli utenti o agli amministratori di " +"relazioni gerarchiche con altre categorie, supportando le relazioni " +"genitore-figlio. La classe include campi per i metadati e per la " +"rappresentazione visiva, che servono come base per le funzionalità legate " +"alle categorie. Questa classe viene tipicamente utilizzata per definire e " +"gestire le categorie di prodotti o altri raggruppamenti simili all'interno " +"di un'applicazione, consentendo agli utenti o agli amministratori di " "specificare il nome, la descrizione e la gerarchia delle categorie, nonché " "di assegnare attributi come immagini, tag o priorità." @@ -1803,13 +1797,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Rappresenta un oggetto Marchio nel sistema. Questa classe gestisce le " "informazioni e gli attributi relativi a un marchio, tra cui il nome, il " "logo, la descrizione, le categorie associate, uno slug unico e l'ordine di " -"priorità. Permette di organizzare e rappresentare i dati relativi al marchio " -"all'interno dell'applicazione." +"priorità. Permette di organizzare e rappresentare i dati relativi al marchio" +" all'interno dell'applicazione." #: engine/core/models.py:448 msgid "name of this brand" @@ -1853,8 +1848,8 @@ msgstr "Categorie" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1862,10 +1857,10 @@ msgid "" msgstr "" "Rappresenta lo stock di un prodotto gestito nel sistema. Questa classe " "fornisce dettagli sulla relazione tra fornitori, prodotti e informazioni " -"sulle scorte, oltre a proprietà legate all'inventario come prezzo, prezzo di " -"acquisto, quantità, SKU e asset digitali. Fa parte del sistema di gestione " -"dell'inventario per consentire il monitoraggio e la valutazione dei prodotti " -"disponibili presso i vari fornitori." +"sulle scorte, oltre a proprietà legate all'inventario come prezzo, prezzo di" +" acquisto, quantità, SKU e asset digitali. Fa parte del sistema di gestione " +"dell'inventario per consentire il monitoraggio e la valutazione dei prodotti" +" disponibili presso i vari fornitori." #: engine/core/models.py:520 msgid "the vendor supplying this product stock" @@ -1950,8 +1945,8 @@ msgstr "" "sistema che gestisce il commercio elettronico o l'inventario. Questa classe " "interagisce con i modelli correlati (come Category, Brand e ProductTag) e " "gestisce la cache per le proprietà a cui si accede di frequente, per " -"migliorare le prestazioni. Viene utilizzata per definire e manipolare i dati " -"dei prodotti e le informazioni ad essi associate all'interno di " +"migliorare le prestazioni. Viene utilizzata per definire e manipolare i dati" +" dei prodotti e le informazioni ad essi associate all'interno di " "un'applicazione." #: engine/core/models.py:585 @@ -2007,16 +2002,16 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Rappresenta un attributo nel sistema. Questa classe viene utilizzata per " -"definire e gestire gli attributi, che sono dati personalizzabili che possono " -"essere associati ad altre entità. Gli attributi hanno categorie, gruppi, " -"tipi di valori e nomi associati. Il modello supporta diversi tipi di valori, " -"tra cui stringa, intero, float, booleano, array e oggetto. Ciò consente una " -"strutturazione dinamica e flessibile dei dati." +"definire e gestire gli attributi, che sono dati personalizzabili che possono" +" essere associati ad altre entità. Gli attributi hanno categorie, gruppi, " +"tipi di valori e nomi associati. Il modello supporta diversi tipi di valori," +" tra cui stringa, intero, float, booleano, array e oggetto. Ciò consente una" +" strutturazione dinamica e flessibile dei dati." #: engine/core/models.py:733 msgid "group of this attribute" @@ -2079,9 +2074,9 @@ msgstr "Attributo" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Rappresenta un valore specifico per un attributo collegato a un prodotto. " "Collega l'\"attributo\" a un \"valore\" unico, consentendo una migliore " @@ -2103,14 +2098,14 @@ msgstr "Il valore specifico per questo attributo" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Rappresenta l'immagine di un prodotto associata a un prodotto del sistema. " -"Questa classe è progettata per gestire le immagini dei prodotti, comprese le " -"funzionalità di caricamento dei file immagine, di associazione a prodotti " +"Questa classe è progettata per gestire le immagini dei prodotti, comprese le" +" funzionalità di caricamento dei file immagine, di associazione a prodotti " "specifici e di determinazione dell'ordine di visualizzazione. Include anche " "una funzione di accessibilità con testo alternativo per le immagini." @@ -2153,11 +2148,11 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Rappresenta una campagna promozionale per prodotti con sconto. Questa classe " -"viene utilizzata per definire e gestire campagne promozionali che offrono " +"Rappresenta una campagna promozionale per prodotti con sconto. Questa classe" +" viene utilizzata per definire e gestire campagne promozionali che offrono " "uno sconto in percentuale sui prodotti. La classe include attributi per " "impostare la percentuale di sconto, fornire dettagli sulla promozione e " "collegarla ai prodotti applicabili. Si integra con il catalogo dei prodotti " @@ -2230,13 +2225,13 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Rappresenta un record documentario legato a un prodotto. Questa classe viene " -"utilizzata per memorizzare informazioni sui documentari relativi a prodotti " -"specifici, compresi i file caricati e i relativi metadati. Contiene metodi e " -"proprietà per gestire il tipo di file e il percorso di archiviazione dei " +"Rappresenta un record documentario legato a un prodotto. Questa classe viene" +" utilizzata per memorizzare informazioni sui documentari relativi a prodotti" +" specifici, compresi i file caricati e i relativi metadati. Contiene metodi " +"e proprietà per gestire il tipo di file e il percorso di archiviazione dei " "file documentari. Estende le funzionalità di mixin specifici e fornisce " "ulteriori caratteristiche personalizzate." @@ -2254,14 +2249,14 @@ msgstr "Non risolto" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Rappresenta un'entità indirizzo che include dettagli sulla posizione e " "associazioni con un utente. Fornisce funzionalità per la memorizzazione di " @@ -2335,8 +2330,8 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"Rappresenta un codice promozionale che può essere utilizzato per gli sconti, " -"gestendone la validità, il tipo di sconto e l'applicazione. La classe " +"Rappresenta un codice promozionale che può essere utilizzato per gli sconti," +" gestendone la validità, il tipo di sconto e l'applicazione. La classe " "PromoCode memorizza i dettagli di un codice promozionale, tra cui il suo " "identificatore univoco, le proprietà dello sconto (importo o percentuale), " "il periodo di validità, l'utente associato (se presente) e lo stato di " @@ -2353,7 +2348,8 @@ msgstr "Identificatore del codice promozionale" #: engine/core/models.py:1095 msgid "fixed discount amount applied if percent is not used" -msgstr "Importo fisso dello sconto applicato se non si utilizza la percentuale" +msgstr "" +"Importo fisso dello sconto applicato se non si utilizza la percentuale" #: engine/core/models.py:1096 msgid "fixed discount amount" @@ -2414,8 +2410,8 @@ msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"È necessario definire un solo tipo di sconto (importo o percentuale), ma non " -"entrambi o nessuno." +"È necessario definire un solo tipo di sconto (importo o percentuale), ma non" +" entrambi o nessuno." #: engine/core/models.py:1171 msgid "promocode already used" @@ -2430,18 +2426,19 @@ msgstr "Tipo di sconto non valido per il codice promozionale {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Rappresenta un ordine effettuato da un utente. Questa classe modella un " -"ordine all'interno dell'applicazione, includendo i suoi vari attributi, come " -"le informazioni di fatturazione e spedizione, lo stato, l'utente associato, " -"le notifiche e le operazioni correlate. Gli ordini possono avere prodotti " +"ordine all'interno dell'applicazione, includendo i suoi vari attributi, come" +" le informazioni di fatturazione e spedizione, lo stato, l'utente associato," +" le notifiche e le operazioni correlate. Gli ordini possono avere prodotti " "associati, possono essere applicate promozioni, impostati indirizzi e " "aggiornati i dettagli di spedizione o fatturazione. Allo stesso modo, la " -"funzionalità supporta la gestione dei prodotti nel ciclo di vita dell'ordine." +"funzionalità supporta la gestione dei prodotti nel ciclo di vita " +"dell'ordine." #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2605,8 +2602,8 @@ msgstr "" "per catturare e memorizzare i commenti degli utenti su prodotti specifici " "che hanno acquistato. Contiene attributi per memorizzare i commenti degli " "utenti, un riferimento al prodotto correlato nell'ordine e una valutazione " -"assegnata dall'utente. La classe utilizza campi del database per modellare e " -"gestire efficacemente i dati di feedback." +"assegnata dall'utente. La classe utilizza campi del database per modellare e" +" gestire efficacemente i dati di feedback." #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2617,7 +2614,8 @@ msgid "feedback comments" msgstr "Commenti di feedback" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Riferisce il prodotto specifico in un ordine di cui si tratta il feedback." @@ -2763,9 +2761,9 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Rappresenta la funzionalità di download degli asset digitali associati agli " "ordini. La classe DigitalAssetDownload offre la possibilità di gestire e " @@ -2787,8 +2785,8 @@ msgstr "Scaricamento" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"per aggiungere un feedback è necessario fornire un commento, una valutazione " -"e l'uuid del prodotto dell'ordine." +"per aggiungere un feedback è necessario fornire un commento, una valutazione" +" e l'uuid del prodotto dell'ordine." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2819,8 +2817,8 @@ msgid "No customer activity in the last 30 days." msgstr "Nessuna attività del cliente negli ultimi 30 giorni." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Vendite giornaliere (30d)" +msgid "Daily sales" +msgstr "Vendite giornaliere" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2831,6 +2829,7 @@ msgid "Gross revenue" msgstr "Ricavo lordo" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Ordini" @@ -2838,6 +2837,10 @@ msgstr "Ordini" msgid "Gross" msgstr "Gross" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Cruscotto" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Panoramica delle entrate" @@ -2866,20 +2869,32 @@ msgid "No data" msgstr "Nessuna data" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Ricavi (lordi, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Ricavi (netti, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Restituzioni (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Ricavi netti" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Ordini evasi (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Tasso di rimborso" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Restituito" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Stock ridotto" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Nessun articolo a basso stock." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2894,11 +2909,11 @@ msgid "Most wished product" msgstr "Il prodotto più desiderato" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Non ci sono ancora dati." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Il prodotto più popolare" @@ -2934,10 +2949,6 @@ msgstr "Nessuna vendita di categoria negli ultimi 30 giorni." msgid "Django site admin" msgstr "Amministratore del sito Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Cruscotto" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2967,8 +2978,7 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Grazie per il vostro ordine #%(order.pk)s! Siamo lieti di informarla che " @@ -2997,8 +3007,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." msgstr "" -"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero " -"%(config.EMAIL_HOST_USER)s." +"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero" +" %(config.EMAIL_HOST_USER)s." #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -3050,8 +3060,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero " -"%(contact_email)s." +"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero" +" %(contact_email)s." #: engine/core/templates/digital_order_delivered_email.html:165 #: engine/core/templates/promocode_granted_email.html:108 @@ -3083,8 +3093,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Grazie per il vostro ordine! Siamo lieti di confermare il suo acquisto. Di " @@ -3156,10 +3165,10 @@ msgstr "Il parametro NOMINATIM_URL deve essere configurato!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height} " -"pixel" +"Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height}" +" pixel" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3168,7 +3177,7 @@ msgstr "" "XML. Assicura che la risposta includa l'intestazione del tipo di contenuto " "appropriato per XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3178,17 +3187,17 @@ msgstr "" "funzione elabora la richiesta, recupera la risposta dettagliata della " "sitemap e imposta l'intestazione Content-Type per XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Restituisce un elenco di lingue supportate e le informazioni corrispondenti." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Restituisce i parametri del sito web come oggetto JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3196,11 +3205,11 @@ msgstr "" "Gestisce le operazioni di cache, come la lettura e l'impostazione dei dati " "della cache con una chiave e un timeout specificati." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Gestisce l'invio del modulo `contatti`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3208,67 +3217,58 @@ msgstr "" "Gestisce le richieste di elaborazione e validazione degli URL dalle " "richieste POST in arrivo." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Gestisce le query di ricerca globali." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Gestisce la logica dell'acquisto come azienda senza registrazione." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestisce il download di una risorsa digitale associata a un ordine.\n" -"Questa funzione tenta di servire il file della risorsa digitale che si trova " -"nella directory di archiviazione del progetto. Se il file non viene trovato, " -"viene generato un errore HTTP 404 per indicare che la risorsa non è " -"disponibile." +"Questa funzione tenta di servire il file della risorsa digitale che si trova nella directory di archiviazione del progetto. Se il file non viene trovato, viene generato un errore HTTP 404 per indicare che la risorsa non è disponibile." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid è obbligatorio" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "ordine prodotto non esistente" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "È possibile scaricare l'asset digitale una sola volta" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "l'ordine deve essere pagato prima di scaricare il bene digitale" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Il prodotto dell'ordine non ha un prodotto" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon non trovata" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestisce le richieste per la favicon di un sito web.\n" -"Questa funzione tenta di servire il file favicon situato nella cartella " -"statica del progetto. Se il file favicon non viene trovato, viene generato " -"un errore HTTP 404 per indicare che la risorsa non è disponibile." +"Questa funzione tenta di servire il file favicon situato nella cartella statica del progetto. Se il file favicon non viene trovato, viene generato un errore HTTP 404 per indicare che la risorsa non è disponibile." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Reindirizza la richiesta alla pagina indice dell'amministrazione. La " @@ -3276,11 +3276,11 @@ msgstr "" "indice dell'interfaccia di amministrazione di Django. Utilizza la funzione " "`redirect` di Django per gestire il reindirizzamento HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Restituisce la versione corrente di eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Restituisce le variabili personalizzate per Dashboard." @@ -3295,19 +3295,20 @@ msgstr "" "Definisce un insieme di viste per la gestione delle operazioni relative a " "Evibes. La classe EvibesViewSet eredita da ModelViewSet e fornisce " "funzionalità per la gestione di azioni e operazioni sulle entità Evibes. " -"Include il supporto per classi di serializzatori dinamici in base all'azione " -"corrente, permessi personalizzabili e formati di rendering." +"Include il supporto per classi di serializzatori dinamici in base all'azione" +" corrente, permessi personalizzabili e formati di rendering." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Rappresenta un insieme di viste per la gestione degli oggetti " -"AttributeGroup. Gestisce le operazioni relative agli AttributeGroup, tra cui " -"il filtraggio, la serializzazione e il recupero dei dati. Questa classe fa " +"AttributeGroup. Gestisce le operazioni relative agli AttributeGroup, tra cui" +" il filtraggio, la serializzazione e il recupero dei dati. Questa classe fa " "parte del livello API dell'applicazione e fornisce un modo standardizzato " "per elaborare le richieste e le risposte per i dati di AttributeGroup." @@ -3324,16 +3325,16 @@ msgstr "" "dell'applicazione. Fornisce un insieme di endpoint API per interagire con i " "dati Attribute. Questa classe gestisce l'interrogazione, il filtraggio e la " "serializzazione degli oggetti Attribute, consentendo un controllo dinamico " -"sui dati restituiti, come il filtraggio per campi specifici o il recupero di " -"informazioni dettagliate o semplificate, a seconda della richiesta." +"sui dati restituiti, come il filtraggio per campi specifici o il recupero di" +" informazioni dettagliate o semplificate, a seconda della richiesta." #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Un insieme di viste per la gestione degli oggetti AttributeValue. Questo " "insieme di viste fornisce funzionalità per elencare, recuperare, creare, " @@ -3365,9 +3366,9 @@ msgid "" "endpoints for Brand objects." msgstr "" "Rappresenta un insieme di viste per la gestione delle istanze del marchio. " -"Questa classe fornisce funzionalità per interrogare, filtrare e serializzare " -"gli oggetti Brand. Utilizza il framework ViewSet di Django per semplificare " -"l'implementazione di endpoint API per gli oggetti Brand." +"Questa classe fornisce funzionalità per interrogare, filtrare e serializzare" +" gli oggetti Brand. Utilizza il framework ViewSet di Django per semplificare" +" l'implementazione di endpoint API per gli oggetti Brand." #: engine/core/viewsets.py:438 msgid "" @@ -3382,8 +3383,8 @@ msgstr "" "Gestisce le operazioni relative al modello `Product` nel sistema. Questa " "classe fornisce un insieme di viste per la gestione dei prodotti, compreso " "il loro filtraggio, la serializzazione e le operazioni su istanze " -"specifiche. Si estende da `EvibesViewSet` per utilizzare funzionalità comuni " -"e si integra con il framework Django REST per le operazioni API RESTful. " +"specifiche. Si estende da `EvibesViewSet` per utilizzare funzionalità comuni" +" e si integra con il framework Django REST per le operazioni API RESTful. " "Include metodi per recuperare i dettagli del prodotto, applicare i permessi " "e accedere ai feedback correlati di un prodotto." @@ -3395,9 +3396,9 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Rappresenta un insieme di viste per la gestione degli oggetti Vendor. Questo " -"insieme di viste consente di recuperare, filtrare e serializzare i dati del " -"fornitore. Definisce il queryset, le configurazioni dei filtri e le classi " +"Rappresenta un insieme di viste per la gestione degli oggetti Vendor. Questo" +" insieme di viste consente di recuperare, filtrare e serializzare i dati del" +" fornitore. Definisce il queryset, le configurazioni dei filtri e le classi " "di serializzazione utilizzate per gestire le diverse azioni. Lo scopo di " "questa classe è fornire un accesso semplificato alle risorse relative a " "Vendor attraverso il framework REST di Django." @@ -3407,14 +3408,14 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Rappresentazione di un insieme di viste che gestisce gli oggetti Feedback. " -"Questa classe gestisce le operazioni relative agli oggetti Feedback, tra cui " -"l'elencazione, il filtraggio e il recupero dei dettagli. Lo scopo di questo " -"insieme di viste è fornire serializzatori diversi per azioni diverse e " +"Questa classe gestisce le operazioni relative agli oggetti Feedback, tra cui" +" l'elencazione, il filtraggio e il recupero dei dettagli. Lo scopo di questo" +" insieme di viste è fornire serializzatori diversi per azioni diverse e " "implementare una gestione basata sui permessi degli oggetti Feedback " "accessibili. Estende l'insieme di base `EvibesViewSet` e fa uso del sistema " "di filtraggio di Django per interrogare i dati." @@ -3424,9 +3425,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet per la gestione degli ordini e delle operazioni correlate. Questa " @@ -3442,8 +3443,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Fornisce un insieme di viste per la gestione delle entità OrderProduct. " @@ -3456,7 +3457,8 @@ msgstr "" #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " msgstr "" -"Gestisce le operazioni relative alle immagini dei prodotti nell'applicazione." +"Gestisce le operazioni relative alle immagini dei prodotti " +"nell'applicazione." #: engine/core/viewsets.py:892 msgid "" @@ -3478,8 +3480,8 @@ msgstr "Gestisce le operazioni relative ai dati delle scorte nel sistema." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3491,8 +3493,8 @@ msgstr "" "ViewSet facilita funzionalità quali l'aggiunta, la rimozione e le azioni di " "massa per i prodotti della lista dei desideri. I controlli delle " "autorizzazioni sono integrati per garantire che gli utenti possano gestire " -"solo la propria lista dei desideri, a meno che non vengano concessi permessi " -"espliciti." +"solo la propria lista dei desideri, a meno che non vengano concessi permessi" +" espliciti." #: engine/core/viewsets.py:1056 msgid "" @@ -3502,8 +3504,8 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Questa classe fornisce la funzionalità viewset per la gestione degli oggetti " -"`Address`. La classe AddressViewSet consente operazioni CRUD, filtri e " +"Questa classe fornisce la funzionalità viewset per la gestione degli oggetti" +" `Address`. La classe AddressViewSet consente operazioni CRUD, filtri e " "azioni personalizzate relative alle entità indirizzo. Include comportamenti " "specializzati per diversi metodi HTTP, override del serializzatore e " "gestione dei permessi in base al contesto della richiesta." diff --git a/engine/core/locale/ja_JP/LC_MESSAGES/django.mo b/engine/core/locale/ja_JP/LC_MESSAGES/django.mo index 3737757ce3cac4aa6d82cfb6aac27ab80d005a99..f1fa7cbcdb3a0add77bb2f6c64a3095f6910f28d 100644 GIT binary patch delta 14917 zcmZA72Xqz1|M&5^p@alNLNB3&&|5+aEz|&^hR{12N@$@I5NVfyROz8fQF=$kNYPLf zL;*nsL{tR+7(-D}K?OmO=l!`e{0`^Yb0)9(&dkov&dlz;3EZ5WeZidU-fMZYt}q2RGWzU#^k^n=#SADh|RDtw#Onk7_(st z=EXUv^VeWjW4z`~GSev7jOrjf+L#cmij2iH!sXZnv*R69yFV}={);&=xPdVN7>Z38 zXj#<21~oJ$501oAI33I5CM?SJ%^5QLx%*74N5$GE_QIDiiuf02sirpWj=F<|sF_)c zy2EX#3+=%mJc{M;EcU}cu>^LFF=ndAm}HFelDXf^m^xH6X<*Qh zY)mBOC5Iw$Jl-ev4l||~@z^9|TGQdV;miPWp;2~#dq*2Hn)2>rjX6m9sbphj;q(c1 zCcW7w+9@uIEVBtmJsu;l0i8p8!~E0j(zd|zdj8v!DNV%$)QM}b3Vwo`iF>H>A}Pl3jxx=#C{DxT z_=fW!s@)~jd*c~uPeskJk6Rnm4EM)i+>8EP-y9*M=k+9NGyZ_;_zni3|4h~o^B_-{ z8H$bZ5H`nuFfTTIjeUY0P*2Ge%#BM>^=~1QW!}TG7%|H||6R!F@#}>Ja0u#zX{a?{ ziWr0@PED|+y^-%-tI-B_qBQunON;n^D;C|Ga z-FD?g=hzFkKy9wB7><208%{?JY&L4ZD^VBR;o>yRPJ9w|qi0d)e?N!$*OWh{AO{A{ zwRf5i^cS&XGcd)u2-SWAmc{+3CA)%JLhrAx zL6-S;O$wt%UIlgG#;AdGb@ho@g!olws;l3NI`0T-Kwn`M{1&w-v%PLFSREC&!n%6? zlgZShU@z(pZlUhrfiuSfJL00K5m!dtQ4DGmbw^z|2{qtpr~xlW^|J-l?f`1wXPiG_ zu%7?_$Y?Xtxi?a;%PLPy={^8d&zlycw|~>duCt?raijS1)jJD(Zq;UHmqxpO3I2 zoW;E5v#;E8 zs0+oR-V3uZFRn)|-MbiuCzmn*dLi7TAP;&{ISKRO1nh?+@LSY?Vwc+~ZilhNy-|0# z2{jXYQ2nH#X7nU#fd8TfTxNw`nkuMv4OcM#8fiQQm2nP6VjAYd3~Y@Lu@N?1X)ib( zwWjk?ceWa9<8G{qKVnS`S!F*ho1+HO3U%HX3`MWk6|6;lIoyf0@D!@!r&u0CR$J?$ zraA%j88O4f8!(LcxGT@VYQ&y5>~miOOB46Nk~jsmx4i4fsKaBZ4sW0a@(jbU#2Py@ zjZrV0B-GT6#-ca_wTITbcpJ7P{@9fVthM!dF*oI*sD3J8K|TMGWOS#os44G>g>eLG zs%E?L<)}5@ff4u)>JF}9PxP#_OVAs&+n1r*9Y*b)Ur+QTz)vz~DFSCM$?KzdUlMrV9pR64u4Zm|xHT`()Jd zY19ki8`K4U#87;OQ5gD`-NhZ9JyA2(59{D~)aKiZ+Cx`ddB_I)J)sq9#uj2nd>6gC zpx;LOT;@hiRcX|kRzy8EHBc9-kD96Ws2So9w0wM|IpD^(yX-1#l3m<0+`Aor~HtZ=p8lAyoS_sQ1Gq)OpuY z1OMCAXWi_zk4f-myXH->0uB11)@VMe!xLB%FX2G^8!KV2Eq1A9q3&oCs{L+^z#~{2 zf5m24daLbsFzPAU;3cC?a~n0n-%%sZw#{BJ7{iGpot>~O@pu=nMa|$*)S7>b+B-qp z?F>}H-o#PZ8JA*n%tXD|yp?v?U7Czx6l}!&cpSCXmr)nU#LD;#t7GMz*1lMtcrj{5 z4my8y;AE8!*=pTo+;53oLl z@8La;eK7~F#TvK;HPFkbr3~0>%VSXSc#Pos=4~=+c-0yFwq3iXsI?o7n%eCcjXz*b zEc}k`upLGbdr^0`AJtzbw!}j3+TW&MM#URZ1HOYzxV|aB&wjoSK~?O;7I+J_X{x?w zzkrOvro``~*6;x~!ss-6{v^~u)3G%Ef!Zti-?vLyAGMcSVF)Inw-1>qWOCzom=AAb zHhh9X=(pc?7=qb}YoYEm8e=fYmA~!WkAajQM)mg@=D{nd3*SX8)qne$e^vM&u&>4< zSdh3PMqm@HilguhuE&`;@6I{pdEV4ie-^TpbzJ0FLd!D*NiU&A7} z1hq7~FciP=lF3EpXVe8BqNcXMVf!9vfpv-FQ6104!kCJ!aS!UTdVsotup{;cVo`TI z27_@mX2l(-nc0hZ(R+oAM)Di#P6ChG6C+WZs~hT0R-gv37PSYqp$4)Sb%&o~0la`} zcN9?f>&Lr&N=TZ=Ko z$57>dpYUrKMqzDCL0#Yw7RLxGz@5IXF;%|4SoNl!C&a@r{+ZCT1ai zbjt3Hr_R9BcIpeE_Dl&ZkCk2A8OstUpw6G|oR5o%7oqk-i8J;yA_Bb?C}>OOEGDBG zH2vIej*iZOsI`6twZ=>E69&2sHISrpwtgaNCYEALJcZRUz(&dchKUZy~EZRKs?4d**OdAQN9=#;%Tgg-M{9w>&MfApEJ-6-`F?m z@NXF`_3z2so&E%1^ut^dL;h(2R`eu_*Hx1KQTY?Q`FOv_nO_^5vUo6 zL(N<-7Z1aH#IK+R{<@1-xcZ&gk@5pxG6NZDj_bVTC>U{r6N#^){pkXOzz94~_*O+6 z@Qgd={71%P*j}bw77ypK{*TBEp`u$hk8e$m`FqTAPRNtPV-j#%fXCFJ-k-n0=c2>< zK^_xL+%m*tis8(>9`hb<$nP-~v2!7hd6)C17V-FQBqEgaxL_mHnzzMTxE>pDeRF|K zR}AJ4zGW~GHFfimDKd*N5?5eNJc;V?5o*b@7q@XZYUUzQ=QVc5;$q@Byvo3?VkzSE zk{;t#M_0+Hqn}Zq&)LH~zK`KTIF>t#z`?jN++*5NA5hlgd+fSlVd5p&33p<9e1aN4 z+j1V?uV$UFGw~j5g!+@X9@EC;MpK|WUyIsQAE7qkZKr<)d%<$33nXAKdks^HP4MBJW={xJtn&{0S4VOC^ta3HRd=%wO3~?NqEo zybv|eldk+O>IR-7PqGQ;9|iO#^s8$7uZOx|6VwuQMh$R)*Hw&04P>T^=cAtM^)60x zeu@E4hNw& z%{bJZtU$Hf;mQx8+I{c5<;wqZalvY~eQDJBHIY5%HL+x3Dd_JS>~wyBg(yGm;v1+L zxrf@U{?%QF=;2DD3}&Ft&sLLI&wm**Y7pz}gF106Y9NbT`9|kK z)Sa9|ZL+UXn=xlCYfWrU+#6$X1M0<-fx1pqlznX5qE}Nikc=wkp)UNEi_=jfK93sl zpDxZ@+qSReY~xHooj(CJ@MW%iD{6r0F3v#Rz@yqc|H_y;9@7QY-*X-o?qNr)54i#&o=i|Dw+SG1?CJ4(f&;p>8C`+rVS`l8MJb zxEEtFe?xm>Z;T@Dj}34&s)I|IfF&B)DfglVz7{pW53w?Sg=O&x>I+PGV~_94Z5@1t z*qcsfB$=8`>;*TWrhX?5$K$A}k8En|>!D_*3F=Neqjr6&t3Qgmvy-TH7f|goQ8QLH z#^d{?wheL}uUSN9AQjtDnEep9_JmQ`mhzo0{u}in6xq_= z;e6*A)LsZ|W&4XpEm;ay#WSeQ`47f$eG}Q*?t!tWJNXK=hL=%ya@YCP8N|ONYrw@( z?T4eV)pN9LJ$%CPzDa zhiy@7I|a4ohfxdG8B`^rx`HFF;1lP0=QY$F z{DRuWSv%Pdb2~$w6`WDd7-u}{2K%^pB5EMBP@B}dnv8GFT*Y^n%}!keY9^vkk5gle#SvJ@!(Ycx7d+eDK2;AP@&7wMQPHUge?v?Espg zKHevx?}l8QWdP5=HbajAc2n#^eHuP-_8MqUID{(y71h2?qP@^MoJjmJ>a(E!AnSJ2 zlH?!kF+=e+oQA)-c*GEo8Bct9h}SlZ8)^%V;AARl4)d5f_zvpCI!U(U1E?7)J>1&Y zxeE1SI**#kYp6G0@CZ9|B~dds9re`Aaq${289g=|QJ+>vT*YIY-&2Boy`Zlyx>jU9UT8CcWdx_%;Wwr@(Kt$E4r})ZPdmWAC5? z>bc*C+Eibm&hsB@WG|E-)p0e{W7Z6{cal&ST8QfB946xTs5@>l*|wjD zx}kmO)l@xo6$Pi*UmO~tE<6)ezXSW@#~6oYrrM<#i&~m9*bIZFd3+z|9Z@r|7&V|9 zsOP^FPn(u{0v^J>UY>td44Q5?M>=YazejDJ8Yvz#9|xeO`ZtWm$}?;{7`qa0!CLqj zD`MnK`!U=T`AF~`J@{F{kMA0!737kpNLb*>-r{?f`t?mRlsrG zHCBF=>qz+uq(U#$ReGUL%X9gKx;N4%PS$6kJJ zcKL3UXCwcAw#w{u)~5WRYg2;!LdpY4Y;;q>mG38RLH-Qs5&8bKiy%K2b#%w-x_|vG zk8jq#Lz_rP1Z5pv**fxVT)qKbrv53uqx_>`wsQj zwBDpLB)tuN^PgK8jsX;&!+&U~Uqtu}@g4OkkF;46N7;|$ue&%1OS*O{`iit#8IJyx zHzR#W{$t6 z;pF*PJb)0l6Kc0MX+)kT5 zBpvUPO1U;yumowldnuSC8f_#McMbYrJD1nVRme|t9UXDy|A!xvqDVPN*JyX2G?4T< zv5qmEvzeq@uSR-_@;k2XFXFefC<|$zuOs?cDdjFg)^v6al@B9jqb?csZzei2sW0jB zOUNhLV)G_t(_DFZ%Jql(S=1FI1(0uz?~&G0H=U0s-*F1{LHY*1Vv9^m8kZsdm3S|{ ziGPsVlCObz)G>Me8;6d+$m`%E(02^tXMXbc@C#BoQUdAu(U&@JFHVjo<8htne{lCB zEq3vI9HBDT={(Nn`+gaKppUqcF z|K$0yX|mIH1L+&B|6L07y>}b7pfH%UiMT9rd8|)*Nb0H+No~mM7)-kuQV+^*k{XfM zalm4JbBa==!nCPQ`kDMj^c`H^cNFI2ZshXgFe+=h&Wa;n{(MJQ@>!psNXahJ1zY9& zH8!1m2N$=*6|~)g$K5#v$iGGkQA}T>NZuj@k*+~G3PP#lTc|mO&yQ8aV+g*)1EiJY zlkg2}MaoMGCf3mf3zFU@eL`A5S#Lanb+8yI52+g0O4Reeh#&{S^COh_FhN~h<_g>5 zP*MzO2yMTo?sf80$*&~!BG&OTHnmxk=E~kDEiwAHbOG==hsq>o6!zEZyGkU!}1lkq>&e9F3$Mr-{$ zy2_*Y8HEo?6-oC=I{I>foHpzG*};_;rF??B_)^L~b!`Sx)`rxQvM{Vl`S+y8mo8+#N!qw1KOy$Iel+7T`qHHU^cr+&XnAFL&SKUU^2F`0wYD#*3oFLzX;1g0k z(!Yvb{Rn+1KR=$o2`9ONS~RN81qKs0cNc1pYl-{1Hk(|z!f4VA;!NDix%J&eo?oFG z@ki9@7)SnP-?`LIv}L9tg+GyBPV!PY0BgEVvXcLu{8iEqq4PUMOF`Ke+)E^@Bp616r*GScON$sfo_=Pf+_ar@|EC;4zF+4)* zNZY?rM*!&(sS{~2ZE{hkV-cw|=?G?nGPTb0guac?~e@laPq%)-D z#2qMKjd`&PX#(X{NIJ%o5~#aKYD6kP{VmFJVo&1d$Is*^liE{|os_1Ev{`j0dHmwL zr9G{8$CLJJbaFPoxNd1LH64^AxZS8%!p0?!8jxh-`i<;2IJM!>BB|G!E* z$zfv?CnSy>pP1S(enIf?=S{rUjVA$Ax$%$#fUCxwF zz4gl3v?~*L*YryqnC9Kntyq?(T>9%%ll=;3%$$=kV@t-&T^TbEXUs^~&zZY3W_*yA z@c9A%tS#fZnN_2MJVn#0U5w2cl(}w4=7+m8XU@uecd1D&@n7+@)N5P)QzLF3D{QMW zQr@O2BV|`c%4?Y`W@o0Rq+Px_)-SF9oy}Q7Zq8dl@y)sE87Zr7Et+Fe`}|fct<>Ga jRaZ@F=qbG_G}QCpU~DnZs^-~mA6w3;2Y*QL%n$#6YQ+fp delta 14911 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -19,8 +19,7 @@ msgstr "ユニークID" #: engine/core/abstract.py:13 msgid "unique id is used to surely identify any database object" -msgstr "" -"ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" +msgstr "ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" #: engine/core/abstract.py:20 msgid "is active" @@ -28,10 +27,9 @@ msgstr "アクティブ" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" -msgstr "" -"falseに設定された場合、このオブジェクトは必要なパーミッションのないユーザーに" -"は見えない。" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "falseに設定された場合、このオブジェクトは必要なパーミッションのないユーザーには見えない。" #: engine/core/abstract.py:23 engine/core/choices.py:18 msgid "created" @@ -155,7 +153,8 @@ msgstr "配信" msgid "canceled" msgstr "キャンセル" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "失敗" @@ -193,8 +192,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"この API の OpenApi3 スキーマ。フォーマットはコンテントネゴシエーションで選択" -"できる。言語は Accept-Language とクエリパラメータで選択できる。" +"この API の OpenApi3 スキーマ。フォーマットはコンテントネゴシエーションで選択できる。言語は Accept-Language " +"とクエリパラメータで選択できる。" #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 msgid "cache I/O" @@ -206,8 +205,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "許可されたデータをキャッシュから読み出すには、キーのみを適用する。\n" -"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用" -"する。" +"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用する。" #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -241,9 +239,7 @@ msgstr "ビジネスとして注文を購入する" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "" -"提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスと" -"して注文を購入する。" +msgstr "提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスとして注文を購入する。" #: engine/core/docs/drf/views.py:164 msgid "download a digital asset from purchased digital order" @@ -270,10 +266,9 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "既存の属性グループを書き換えて、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" -msgstr "" -"既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存す" -"る。" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:106 msgid "list all attributes (simple view)" @@ -297,8 +292,7 @@ msgstr "既存の属性を書き換える。" #: engine/core/docs/drf/viewsets.py:141 msgid "rewrite some fields of an existing attribute saving non-editables" -msgstr "" -"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:151 msgid "list all attribute values (simple view)" @@ -321,9 +315,9 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "既存の属性値を書き換える。" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" -msgstr "" -"既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 msgid "list all categories (simple view)" @@ -375,11 +369,10 @@ msgstr "スタッフ以外のユーザーについては、自分の注文のみ #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"human_readable_id、order_products.product.name、order_products.product." -"partnumberの大文字小文字を区別しない部分文字列検索" +"human_readable_id、order_products.product.name、order_products.product.partnumberの大文字小文字を区別しない部分文字列検索" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -399,8 +392,7 @@ msgstr "人間が読み取れる正確な注文IDによるフィルタリング" #: engine/core/docs/drf/viewsets.py:308 msgid "Filter by user's email (case-insensitive exact match)" -msgstr "" -"ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" +msgstr "ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" #: engine/core/docs/drf/viewsets.py:313 msgid "Filter by user's UUID" @@ -408,19 +400,15 @@ msgstr "ユーザーのUUIDによるフィルタリング" #: engine/core/docs/drf/viewsets.py:318 msgid "Filter by order status (case-insensitive substring match)" -msgstr "" -"注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッ" -"チ)" +msgstr "注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッチ)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"uuid、human_readable_id、user_email、user、status、created、modified、" -"buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつ" -"ける(例:'-buy_time')。" +"uuid、human_readable_id、user_email、user、status、created、modified、buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつける(例:'-buy_time')。" #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -460,9 +448,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用し" -"て購入が完了します。 `force_payment` が使用された場合、トランザクションが開始" -"されます。" +"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用して購入が完了します。 `force_payment` " +"が使用された場合、トランザクションが開始されます。" #: engine/core/docs/drf/viewsets.py:397 msgid "retrieve current pending order of a user" @@ -488,8 +475,7 @@ msgstr "注文に商品を追加する" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" +msgstr "指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" #: engine/core/docs/drf/viewsets.py:429 msgid "add a list of products to order, quantities will not count" @@ -499,9 +485,7 @@ msgstr "数量はカウントされません。" msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定された `product_uuid` と `attributes` を使用して、注文に商品のリストを追" -"加する。" +msgstr "指定された `product_uuid` と `attributes` を使用して、注文に商品のリストを追加する。" #: engine/core/docs/drf/viewsets.py:438 msgid "remove product from order" @@ -511,9 +495,7 @@ msgstr "注文から商品を削除する" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"指定された `product_uuid` と `attributes` を使用して、注文から商品を削除す" -"る。" +msgstr "指定された `product_uuid` と `attributes` を使用して、注文から商品を削除する。" #: engine/core/docs/drf/viewsets.py:447 msgid "remove product from order, quantities will not count" @@ -523,9 +505,7 @@ msgstr "注文から商品を削除すると、数量はカウントされませ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "" -"指定された `product_uuid` と `attributes` を用いて、注文から商品のリストを削" -"除する。" +msgstr "指定された `product_uuid` と `attributes` を用いて、注文から商品のリストを削除する。" #: engine/core/docs/drf/viewsets.py:459 msgid "list all wishlists (simple view)" @@ -557,8 +537,7 @@ msgstr "既存の属性を書き換える。" #: engine/core/docs/drf/viewsets.py:496 msgid "rewrite some fields of an existing wishlist saving non-editables" -msgstr "" -"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:503 msgid "retrieve current pending wishlist of a user" @@ -582,8 +561,7 @@ msgstr "ウィッシュリストから商品を削除する" #: engine/core/docs/drf/viewsets.py:524 msgid "removes a product from an wishlist using the provided `product_uuid`" -msgstr "" -"指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" +msgstr "指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" #: engine/core/docs/drf/viewsets.py:532 msgid "add many products to wishlist" @@ -591,8 +569,7 @@ msgstr "ウィッシュリストに多くの商品を追加する" #: engine/core/docs/drf/viewsets.py:533 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "" -"指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" +msgstr "指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" #: engine/core/docs/drf/viewsets.py:541 msgid "remove many products from wishlist" @@ -601,34 +578,24 @@ msgstr "注文から商品を削除する" #: engine/core/docs/drf/viewsets.py:542 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "" -"指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" +msgstr "指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" #: engine/core/docs/drf/viewsets.py:549 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "1つまたは複数の属性名/値のペアでフィルタリングします。 \n" "- シンタックス**:attr_name=method-value[;attr2=method2-value2]...`。\n" -"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場" -"合は文字列として扱う。 \n" -"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとして" -"つけると、生の値を URL-safe base64-encode することができる。 \n" +"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場合は文字列として扱う。 \n" +"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとしてつけると、生の値を URL-safe base64-encode することができる。 \n" "例 \n" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\", \"bluetooth\"]`、\n" "b64-description=icontains-aGVhdC1jb2xk`。" @@ -643,12 +610,10 @@ msgstr "(正確には)製品UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスと" -"してつける。 \n" +"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスとしてつける。 \n" "**許可:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -675,9 +640,7 @@ msgstr "編集不可能なフィールドを保持したまま、既存の製品 #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "" "update some fields of an existing product, preserving non-editable fields" -msgstr "" -"編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新す" -"る。" +msgstr "編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新する。" #: engine/core/docs/drf/viewsets.py:666 engine/core/docs/drf/viewsets.py:667 msgid "delete a product" @@ -722,8 +685,8 @@ msgstr "オートコンプリート住所入力" #: engine/core/docs/drf/viewsets.py:794 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l n-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a payments -a vibes_auth -a blog" @@ -753,9 +716,7 @@ msgstr "既存のフィードバックを書き換える。" #: engine/core/docs/drf/viewsets.py:851 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "" -"既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保" -"存する。" +msgstr "既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保存する。" #: engine/core/docs/drf/viewsets.py:861 msgid "list all order–product relations (simple view)" @@ -811,8 +772,7 @@ msgstr "編集不可の既存ブランドをリライトする" #: engine/core/docs/drf/viewsets.py:981 msgid "rewrite some fields of an existing brand saving non-editables" -msgstr "" -"編集不可能なフィールドを保存している既存ブランドのフィールドを書き換える。" +msgstr "編集不可能なフィールドを保存している既存ブランドのフィールドを書き換える。" #: engine/core/docs/drf/viewsets.py:1006 msgid "list all vendors (simple view)" @@ -836,9 +796,7 @@ msgstr "既存のベンダーを書き換え、編集不可能な部分を保存 #: engine/core/docs/drf/viewsets.py:1041 msgid "rewrite some fields of an existing vendor saving non-editables" -msgstr "" -"既存のベンダーのいくつかのフィールドを書き換えて、編集不可能なフィールドを保" -"存する。" +msgstr "既存のベンダーのいくつかのフィールドを書き換えて、編集不可能なフィールドを保存する。" #: engine/core/docs/drf/viewsets.py:1051 msgid "list all product images (simple view)" @@ -862,9 +820,7 @@ msgstr "既存の商品画像を書き換え、編集不可能な部分を保存 #: engine/core/docs/drf/viewsets.py:1086 msgid "rewrite some fields of an existing product image saving non-editables" -msgstr "" -"既存の商品画像のいくつかのフィールドを書き換えて、編集不可能な部分を保存す" -"る。" +msgstr "既存の商品画像のいくつかのフィールドを書き換えて、編集不可能な部分を保存する。" #: engine/core/docs/drf/viewsets.py:1096 msgid "list all promo codes (simple view)" @@ -888,9 +844,7 @@ msgstr "既存のプロモコードを書き換え、編集不可のプロモコ #: engine/core/docs/drf/viewsets.py:1131 msgid "rewrite some fields of an existing promo code saving non-editables" -msgstr "" -"既存のプロモコードの一部のフィールドを書き換えて、編集不可能な部分を保存す" -"る。" +msgstr "既存のプロモコードの一部のフィールドを書き換えて、編集不可能な部分を保存する。" #: engine/core/docs/drf/viewsets.py:1141 msgid "list all promotions (simple view)" @@ -914,9 +868,7 @@ msgstr "既存のプロモーションを書き換える。" #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" -msgstr "" -"既存のプロモーションのいくつかのフィールドを書き換え、編集不可能な部分を保存" -"する。" +msgstr "既存のプロモーションのいくつかのフィールドを書き換え、編集不可能な部分を保存する。" #: engine/core/docs/drf/viewsets.py:1186 msgid "list all stocks (simple view)" @@ -940,9 +892,7 @@ msgstr "既存のストックレコードを書き換え、編集不可能なも #: engine/core/docs/drf/viewsets.py:1221 msgid "rewrite some fields of an existing stock record saving non-editables" -msgstr "" -"編集不可能なフィールドを保存している既存のストックレコードの一部のフィールド" -"を書き換える。" +msgstr "編集不可能なフィールドを保存している既存のストックレコードの一部のフィールドを書き換える。" #: engine/core/docs/drf/viewsets.py:1231 msgid "list all product tags (simple view)" @@ -966,8 +916,7 @@ msgstr "既存の商品タグを書き換え、編集不可能なものを保存 #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" -msgstr "" -"既存の商品タグの一部のフィールドを書き換えて、編集不可能な部分を保存する。" +msgstr "既存の商品タグの一部のフィールドを書き換えて、編集不可能な部分を保存する。" #: engine/core/elasticsearch/__init__.py:122 #: engine/core/elasticsearch/__init__.py:570 @@ -1049,8 +998,7 @@ msgstr "SKU" #: engine/core/filters.py:184 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "" -"include_subcategoriesフラグを使うには、category_uuidがなければならない。" +msgstr "include_subcategoriesフラグを使うには、category_uuidがなければならない。" #: engine/core/filters.py:353 msgid "Search (ID, product name or part number)" @@ -1118,7 +1066,7 @@ msgstr "キャッシュ・データ" msgid "camelized JSON data from the requested URL" msgstr "リクエストされたURLからキャメル化されたJSONデータ" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "http(s)://で始まるURLのみが許可されます。" @@ -1202,10 +1150,9 @@ msgstr "注文する" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" -msgstr "" -"属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1279,7 +1226,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "このカテゴリのフィルタリングに使用できる属性と値。" #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "このカテゴリーの商品の最低価格と最高価格がある場合。" #: engine/core/graphene/object_types.py:205 @@ -1546,10 +1494,7 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"属性グループを表し、階層化することができます。このクラスは、属性グループの管" -"理と整理に使用します。属性グループは親グループを持つことができ、階層構造を形" -"成します。これは、複雑なシステムで属性をより効果的に分類・管理するのに便利で" -"す。" +"属性グループを表し、階層化することができます。このクラスは、属性グループの管理と整理に使用します。属性グループは親グループを持つことができ、階層構造を形成します。これは、複雑なシステムで属性をより効果的に分類・管理するのに便利です。" #: engine/core/models.py:91 msgid "parent of this group" @@ -1577,12 +1522,8 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"外部ベンダーとその相互作用要件に関する情報を格納できるベンダー・エンティティ" -"を表します。Vendor クラスは、外部ベンダーに関連する情報を定義・管理するために" -"使用します。これは、ベンダーの名前、通信に必要な認証の詳細、ベンダーから取得" -"した商品に適用されるパーセンテージのマークアップを格納します。このモデルは、" -"追加のメタデータと制約も保持するため、サードパーティ・ベンダーとやり取りする" -"システムでの使用に適しています。" +"外部ベンダーとその相互作用要件に関する情報を格納できるベンダー・エンティティを表します。Vendor " +"クラスは、外部ベンダーに関連する情報を定義・管理するために使用します。これは、ベンダーの名前、通信に必要な認証の詳細、ベンダーから取得した商品に適用されるパーセンテージのマークアップを格納します。このモデルは、追加のメタデータと制約も保持するため、サードパーティ・ベンダーとやり取りするシステムでの使用に適しています。" #: engine/core/models.py:124 msgid "stores credentials and endpoints required for vendor communication" @@ -1632,11 +1573,8 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"製品を分類または識別するために使用される製品タグを表します。ProductTag クラス" -"は、内部タグ識別子とユーザーフレンドリーな表示名の組み合わせによって、製品を" -"一意に識別および分類するように設計されています。ミキシンを通じてエクスポート" -"される操作をサポートし、管理目的のためにメタデータのカスタマイズを提供しま" -"す。" +"製品を分類または識別するために使用される製品タグを表します。ProductTag " +"クラスは、内部タグ識別子とユーザーフレンドリーな表示名の組み合わせによって、製品を一意に識別および分類するように設計されています。ミキシンを通じてエクスポートされる操作をサポートし、管理目的のためにメタデータのカスタマイズを提供します。" #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1664,9 +1602,7 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"商品に使用されるカテゴリータグを表します。このクラスは、商品の関連付けと分類" -"に使用できるカテゴリタグをモデル化します。内部タグ識別子とユーザーフレンド" -"リーな表示名の属性が含まれます。" +"商品に使用されるカテゴリータグを表します。このクラスは、商品の関連付けと分類に使用できるカテゴリタグをモデル化します。内部タグ識別子とユーザーフレンドリーな表示名の属性が含まれます。" #: engine/core/models.py:254 msgid "category tag" @@ -1688,13 +1624,7 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"関連するアイテムを階層構造で整理し、グループ化するためのカテゴリ・エンティ" -"ティを表します。カテゴリは、親子関係をサポートする他のカテゴリとの階層関係を" -"持つことができます。このクラスには、カテゴリ関連機能の基盤となるメタデータお" -"よび視覚表現のためのフィールドが含まれます。このクラスは通常、アプリケーショ" -"ン内で商品カテゴリやその他の類似のグループ化を定義および管理するために使用さ" -"れ、ユーザや管理者がカテゴリの名前、説明、階層を指定したり、画像、タグ、優先" -"度などの属性を割り当てることができます。" +"関連するアイテムを階層構造で整理し、グループ化するためのカテゴリ・エンティティを表します。カテゴリは、親子関係をサポートする他のカテゴリとの階層関係を持つことができます。このクラスには、カテゴリ関連機能の基盤となるメタデータおよび視覚表現のためのフィールドが含まれます。このクラスは通常、アプリケーション内で商品カテゴリやその他の類似のグループ化を定義および管理するために使用され、ユーザや管理者がカテゴリの名前、説明、階層を指定したり、画像、タグ、優先度などの属性を割り当てることができます。" #: engine/core/models.py:274 msgid "upload an image representing this category" @@ -1745,12 +1675,10 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"システム内のブランド・オブジェクトを表します。このクラスは、名前、ロゴ、説" -"明、関連カテゴリ、一意のスラッグ、および優先順位など、ブランドに関連する情報" -"と属性を処理します。このクラスによって、アプリケーション内でブランド関連デー" -"タを整理し、表現することができます。" +"システム内のブランド・オブジェクトを表します。このクラスは、名前、ロゴ、説明、関連カテゴリ、一意のスラッグ、および優先順位など、ブランドに関連する情報と属性を処理します。このクラスによって、アプリケーション内でブランド関連データを整理し、表現することができます。" #: engine/core/models.py:448 msgid "name of this brand" @@ -1794,17 +1722,14 @@ msgstr "カテゴリー" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"システムで管理されている商品の在庫を表します。このクラスは、ベンダー、商品、" -"およびそれらの在庫情報間の関係の詳細や、価格、購入価格、数量、SKU、デジタル資" -"産などの在庫関連プロパティを提供します。これは在庫管理システムの一部で、さま" -"ざまなベンダーから入手可能な製品の追跡と評価を可能にします。" +"システムで管理されている商品の在庫を表します。このクラスは、ベンダー、商品、およびそれらの在庫情報間の関係の詳細や、価格、購入価格、数量、SKU、デジタル資産などの在庫関連プロパティを提供します。これは在庫管理システムの一部で、さまざまなベンダーから入手可能な製品の追跡と評価を可能にします。" #: engine/core/models.py:520 msgid "the vendor supplying this product stock" @@ -1882,13 +1807,9 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"カテゴリ、ブランド、タグ、デジタルステータス、名前、説明、品番、スラッグなど" -"の属性を持つ製品を表します。評価、フィードバック数、価格、数量、注文総数を取" -"得するための関連ユーティリティ・プロパティを提供します。電子商取引や在庫管理" -"を扱うシステムで使用するように設計されています。このクラスは、関連するモデル " -"(Category、Brand、ProductTag など) と相互作用し、パフォーマンスを向上させるた" -"めに、頻繁にアクセスされるプロパティのキャッシュを管理します。アプリケーショ" -"ン内で商品データとその関連情報を定義し、操作するために使用されます。" +"カテゴリ、ブランド、タグ、デジタルステータス、名前、説明、品番、スラッグなどの属性を持つ製品を表します。評価、フィードバック数、価格、数量、注文総数を取得するための関連ユーティリティ・プロパティを提供します。電子商取引や在庫管理を扱うシステムで使用するように設計されています。このクラスは、関連するモデル" +" (Category、Brand、ProductTag など) " +"と相互作用し、パフォーマンスを向上させるために、頻繁にアクセスされるプロパティのキャッシュを管理します。アプリケーション内で商品データとその関連情報を定義し、操作するために使用されます。" #: engine/core/models.py:585 msgid "category this product belongs to" @@ -1943,16 +1864,12 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"システム内の属性を表します。このクラスは、属性を定義および管理するために使用" -"されます。属性は、他のエンティティに関連付けることができる、カスタマイズ可能" -"なデータの部分です。属性には、関連するカテゴリ、グループ、値型、および名前が" -"あります。このモデルは、string、integer、float、boolean、array、object などの" -"複数の型の値をサポートしています。これにより、動的で柔軟なデータ構造化が可能" -"になります。" +"システム内の属性を表します。このクラスは、属性を定義および管理するために使用されます。属性は、他のエンティティに関連付けることができる、カスタマイズ可能なデータの部分です。属性には、関連するカテゴリ、グループ、値型、および名前があります。このモデルは、string、integer、float、boolean、array、object" +" などの複数の型の値をサポートしています。これにより、動的で柔軟なデータ構造化が可能になります。" #: engine/core/models.py:733 msgid "group of this attribute" @@ -2013,12 +1930,11 @@ msgstr "属性" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"製品にリンクされている属性の特定の値を表します。これは、「属性」を一意の" -"「値」にリンクし、製品特性のより良い編成と動的な表現を可能にします。" +"製品にリンクされている属性の特定の値を表します。これは、「属性」を一意の「値」にリンクし、製品特性のより良い編成と動的な表現を可能にします。" #: engine/core/models.py:788 msgid "attribute of this value" @@ -2035,15 +1951,12 @@ msgstr "この属性の具体的な値" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"システム内の商品に関連付けられた商品画像を表します。このクラスは商品の画像を" -"管理するために設計されており、画像ファイルのアップロード、特定の商品との関連" -"付け、表示順の決定などの機能を提供します。また、画像の代替テキストによるアク" -"セシビリティ機能も備えています。" +"システム内の商品に関連付けられた商品画像を表します。このクラスは商品の画像を管理するために設計されており、画像ファイルのアップロード、特定の商品との関連付け、表示順の決定などの機能を提供します。また、画像の代替テキストによるアクセシビリティ機能も備えています。" #: engine/core/models.py:826 msgid "provide alternative text for the image for accessibility" @@ -2083,14 +1996,10 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"割引を伴う商品の販促キャンペーンを表します。このクラスは、商品に対してパーセ" -"ンテージベースの割引を提供する販促キャンペーンを定義および管理するために使用" -"します。このクラスには、割引率を設定し、プロモーションの詳細を提供し、該当す" -"る商品にリンクするための属性が含まれます。商品カタログと統合して、キャンペー" -"ンの対象商品を決定します。" +"割引を伴う商品の販促キャンペーンを表します。このクラスは、商品に対してパーセンテージベースの割引を提供する販促キャンペーンを定義および管理するために使用します。このクラスには、割引率を設定し、プロモーションの詳細を提供し、該当する商品にリンクするための属性が含まれます。商品カタログと統合して、キャンペーンの対象商品を決定します。" #: engine/core/models.py:880 msgid "percentage discount for the selected products" @@ -2131,10 +2040,7 @@ msgid "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"希望する商品を保存・管理するためのユーザーのウィッシュリストを表します。この" -"クラスは、商品のコレクションを管理する機能を提供し、商品の追加や削除などの操" -"作をサポートし、複数の商品を一度に追加したり削除したりする操作をサポートしま" -"す。" +"希望する商品を保存・管理するためのユーザーのウィッシュリストを表します。このクラスは、商品のコレクションを管理する機能を提供し、商品の追加や削除などの操作をサポートし、複数の商品を一度に追加したり削除したりする操作をサポートします。" #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2158,14 +2064,10 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"商品に関連付けられたドキュメンタリーのレコードを表します。このクラスは、ファ" -"イルのアップロードとそのメタデータを含む、特定の商品に関連するドキュメンタ" -"リーに関する情報を格納するために使用されます。ドキュメントファイルのファイル" -"タイプと保存パスを処理するメソッドとプロパティが含まれています。特定のミック" -"スインから機能を拡張し、追加のカスタム機能を提供します。" +"商品に関連付けられたドキュメンタリーのレコードを表します。このクラスは、ファイルのアップロードとそのメタデータを含む、特定の商品に関連するドキュメンタリーに関する情報を格納するために使用されます。ドキュメントファイルのファイルタイプと保存パスを処理するメソッドとプロパティが含まれています。特定のミックスインから機能を拡張し、追加のカスタム機能を提供します。" #: engine/core/models.py:998 msgid "documentary" @@ -2181,23 +2083,20 @@ msgstr "未解決" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"場所の詳細とユーザーとの関連付けを含む住所エンティティを表します。地理データ" -"および住所データを保存する機能と、ジオコーディングサービスとの統合機能を提供" -"します。このクラスは、street、city、region、country、geolocation (longitude " -"and latitude) のようなコンポーネントを含む詳細な住所情報を格納するように設計" -"されています。ジオコーディング API との統合をサポートしており、 生の API レス" -"ポンスを保存してさらなる処理や検査を行うことができます。また、このクラスは住" -"所とユーザを関連付けることができ、 パーソナライズされたデータの取り扱いを容易" -"にします。" +"場所の詳細とユーザーとの関連付けを含む住所エンティティを表します。地理データおよび住所データを保存する機能と、ジオコーディングサービスとの統合機能を提供します。このクラスは、street、city、region、country、geolocation" +" (longitude and latitude) のようなコンポーネントを含む詳細な住所情報を格納するように設計されています。ジオコーディング API" +" との統合をサポートしており、 生の API " +"レスポンスを保存してさらなる処理や検査を行うことができます。また、このクラスは住所とユーザを関連付けることができ、 " +"パーソナライズされたデータの取り扱いを容易にします。" #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2260,11 +2159,9 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"割引に使用できるプロモーションコードを表し、その有効期間、割引の種類、適用を" -"管理します。PromoCode クラスは、一意の識別子、割引のプロパティ (金額または" -"パーセンテージ)、有効期間、関連するユーザ (もしあれば)、および使用状況など、" -"プロモーションコードに関する詳細を格納します。これは、制約が満たされているこ" -"とを保証しながら、プロモコードを検証し、注文に適用する機能を含んでいます。" +"割引に使用できるプロモーションコードを表し、その有効期間、割引の種類、適用を管理します。PromoCode クラスは、一意の識別子、割引のプロパティ " +"(金額またはパーセンテージ)、有効期間、関連するユーザ " +"(もしあれば)、および使用状況など、プロモーションコードに関する詳細を格納します。これは、制約が満たされていることを保証しながら、プロモコードを検証し、注文に適用する機能を含んでいます。" #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" @@ -2334,9 +2231,7 @@ msgstr "プロモコード" msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "" -"割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちら" -"も定義してはならない。" +msgstr "割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちらも定義してはならない。" #: engine/core/models.py:1171 msgid "promocode already used" @@ -2351,16 +2246,12 @@ msgstr "プロモコード {self.uuid} の割引タイプが無効です!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"ユーザーによる注文を表します。このクラスは、請求や配送情報、ステータス、関連" -"するユーザ、通知、関連する操作などのさまざまな属性を含む、アプリケーション内" -"の注文をモデル化します。注文は関連する商品を持つことができ、プロモーションを" -"適用し、住所を設定し、配送または請求の詳細を更新することができます。同様に、" -"注文のライフサイクルにおける商品の管理もサポートします。" +"ユーザーによる注文を表します。このクラスは、請求や配送情報、ステータス、関連するユーザ、通知、関連する操作などのさまざまな属性を含む、アプリケーション内の注文をモデル化します。注文は関連する商品を持つことができ、プロモーションを適用し、住所を設定し、配送または請求の詳細を更新することができます。同様に、注文のライフサイクルにおける商品の管理もサポートします。" #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2392,8 +2283,7 @@ msgstr "注文状況" #: engine/core/models.py:1243 engine/core/models.py:1769 msgid "json structure of notifications to display to users" -msgstr "" -"ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" +msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" #: engine/core/models.py:1249 msgid "json representation of order attributes for this order" @@ -2493,17 +2383,13 @@ msgstr "注文を完了するための資金不足" msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -msgstr "" -"ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お" -"客様のお名前、お客様のEメール、お客様の電話番号" +msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お客様のお名前、お客様のEメール、お客様の電話番号" #: engine/core/models.py:1584 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "" -"支払方法が無効です:{available_payment_methods}からの{payment_method}が無効で" -"す!" +msgstr "支払方法が無効です:{available_payment_methods}からの{payment_method}が無効です!" #: engine/core/models.py:1699 msgid "" @@ -2513,11 +2399,7 @@ msgid "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." msgstr "" -"製品に対するユーザのフィードバックを管理します。このクラスは、購入した特定の" -"商品に対するユーザのフィードバックを取得し、保存するために設計されています。" -"ユーザのコメント、注文の関連商品への参照、そしてユーザが割り当てた評価を保存" -"する属性を含みます。このクラスは、フィードバックデータを効果的にモデル化し、" -"管理するためにデータベースフィールドを使用します。" +"製品に対するユーザのフィードバックを管理します。このクラスは、購入した特定の商品に対するユーザのフィードバックを取得し、保存するために設計されています。ユーザのコメント、注文の関連商品への参照、そしてユーザが割り当てた評価を保存する属性を含みます。このクラスは、フィードバックデータを効果的にモデル化し、管理するためにデータベースフィールドを使用します。" #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2528,7 +2410,8 @@ msgid "feedback comments" msgstr "フィードバック・コメント" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "このフィードバックが対象としている注文の特定の製品を参照する。" #: engine/core/models.py:1720 @@ -2555,13 +2438,7 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"注文に関連する商品とその属性を表す。OrderProductモデルは、購入価格、数量、商" -"品属性、ステータスなどの詳細を含む、注文の一部である商品に関する情報を保持し" -"ます。ユーザーや管理者への通知を管理し、商品残高の返却やフィードバックの追加" -"などの操作を処理します。このモデルはまた、合計価格の計算やデジタル商品のダウ" -"ンロードURLの生成など、ビジネスロジックをサポートするメソッドやプロパティも提" -"供します。このモデルはOrderモデルとProductモデルと統合され、それらへの参照を" -"保存します。" +"注文に関連する商品とその属性を表す。OrderProductモデルは、購入価格、数量、商品属性、ステータスなどの詳細を含む、注文の一部である商品に関する情報を保持します。ユーザーや管理者への通知を管理し、商品残高の返却やフィードバックの追加などの操作を処理します。このモデルはまた、合計価格の計算やデジタル商品のダウンロードURLの生成など、ビジネスロジックをサポートするメソッドやプロパティも提供します。このモデルはOrderモデルとProductモデルと統合され、それらへの参照を保存します。" #: engine/core/models.py:1757 msgid "the price paid by the customer for this product at purchase time" @@ -2669,15 +2546,12 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"注文に関連するデジタル資産のダウンロード機能を表します。DigitalAssetDownload" -"クラスは、注文商品に関連するダウンロードを管理し、アクセスする機能を提供しま" -"す。このクラスは、関連する注文商品、ダウンロード数、およびアセットが公開され" -"ているかどうかの情報を保持します。関連する注文が完了したステータスのときに、" -"アセットをダウンロードするための URL を生成するメソッドも含まれています。" +"注文に関連するデジタル資産のダウンロード機能を表します。DigitalAssetDownloadクラスは、注文商品に関連するダウンロードを管理し、アクセスする機能を提供します。このクラスは、関連する注文商品、ダウンロード数、およびアセットが公開されているかどうかの情報を保持します。関連する注文が完了したステータスのときに、アセットをダウンロードするための" +" URL を生成するメソッドも含まれています。" #: engine/core/models.py:1961 msgid "download" @@ -2690,9 +2564,7 @@ msgstr "ダウンロード" #: engine/core/serializers/utility.py:89 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." -msgstr "" -"フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力す" -"る必要があります。" +msgstr "フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力する必要があります。" #: engine/core/sitemaps.py:25 msgid "Home" @@ -2723,8 +2595,8 @@ msgid "No customer activity in the last 30 days." msgstr "過去30日間に顧客の活動がない。" #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "日販(30日)" +msgid "Daily sales" +msgstr "デイリーセールス" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2735,6 +2607,7 @@ msgid "Gross revenue" msgstr "総収入" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "受注状況" @@ -2742,6 +2615,10 @@ msgstr "受注状況" msgid "Gross" msgstr "グロス" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "ダッシュボード" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "収入概要" @@ -2770,20 +2647,32 @@ msgid "No data" msgstr "日付なし" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "収入(グロス、30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "収入(純額、30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "リターンズ(30日)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "純収入" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "処理済み注文 (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "払い戻し率" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "返品" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "在庫僅少" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "在庫の少ない商品はありません。" #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2798,11 +2687,11 @@ msgid "Most wished product" msgstr "最も欲しい製品" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "まだデータはない。" -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "最も人気のある製品" @@ -2838,10 +2727,6 @@ msgstr "過去30日間にカテゴリー別売上なし。" msgid "Django site admin" msgstr "Djangoサイト管理者" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "ダッシュボード" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2871,12 +2756,9 @@ msgstr "こんにちは%(order.user.first_name)s、" #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" -msgstr "" -"ご注文ありがとうございます#%(order.pk)s!ご注文を承りましたことをお知らせいた" -"します。以下、ご注文の詳細です:" +msgstr "ご注文ありがとうございます#%(order.pk)s!ご注文を承りましたことをお知らせいたします。以下、ご注文の詳細です:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2899,9 +2781,7 @@ msgstr "合計価格" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "" -"ご不明な点がございましたら、%(config.EMAIL_HOST_USER)sまでお気軽にお問い合わ" -"せください。" +msgstr "ご不明な点がございましたら、%(config.EMAIL_HOST_USER)sまでお気軽にお問い合わせください。" #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -2929,8 +2809,7 @@ msgstr "こんにちは%(user_first_name)s、" msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" -msgstr "" -"ご注文の№%(order_uuid)sが正常に処理されました!以下はご注文の詳細です:" +msgstr "ご注文の№%(order_uuid)sが正常に処理されました!以下はご注文の詳細です:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -2951,9 +2830,7 @@ msgstr "価値" msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." -msgstr "" -"ご不明な点がございましたら、%(contact_email)sまでお気軽にお問い合わせくださ" -"い。" +msgstr "ご不明な点がございましたら、%(contact_email)sまでお気軽にお問い合わせください。" #: engine/core/templates/digital_order_delivered_email.html:165 #: engine/core/templates/promocode_granted_email.html:108 @@ -2985,12 +2862,9 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" -msgstr "" -"ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の" -"詳細です:" +msgstr "ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の詳細です:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3056,128 +2930,111 @@ msgstr "NOMINATIM_URLパラメータを設定する必要があります!" #: engine/core/validators.py:19 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" -msgstr "" -"画像のサイズは w{max_width} x h{max_height} ピクセルを超えないようにしてくだ" -"さい!" +msgstr "画像のサイズは w{max_width} x h{max_height} ピクセルを超えないようにしてください!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"サイトマップインデックスのリクエストを処理し、XMLレスポンスを返します。レスポ" -"ンスにXML用の適切なコンテントタイプヘッダーが含まれるようにします。" +"サイトマップインデックスのリクエストを処理し、XMLレスポンスを返します。レスポンスにXML用の適切なコンテントタイプヘッダーが含まれるようにします。" -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"サイトマップの詳細表示レスポンスを処理します。この関数はリクエストを処理し、" -"適切なサイトマップ詳細レスポンスを取得し、XML の Content-Type ヘッダを設定し" -"ます。" +"サイトマップの詳細表示レスポンスを処理します。この関数はリクエストを処理し、適切なサイトマップ詳細レスポンスを取得し、XML の Content-" +"Type ヘッダを設定します。" -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "サポートされている言語の一覧と対応する情報を返します。" -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "ウェブサイトのパラメータをJSONオブジェクトとして返します。" -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -msgstr "" -"指定されたキーとタイムアウトで、キャッシュ・データの読み取りや設定などの" -"キャッシュ操作を行う。" +msgstr "指定されたキーとタイムアウトで、キャッシュ・データの読み取りや設定などのキャッシュ操作を行う。" -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "お問い合わせフォームの送信を処理する。" -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." -msgstr "" -"入ってくる POST リクエストからの URL の処理と検証のリクエストを処理します。" +msgstr "入ってくる POST リクエストからの URL の処理と検証のリクエストを処理します。" -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "グローバル検索クエリを処理する。" -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "登録なしでビジネスとして購入するロジックを扱う。" -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "注文に関連付けられたデジタルアセットのダウンロードを処理します。\n" -"この関数は、プロジェクトのストレージディレクトリにあるデジタルアセットファイ" -"ルの提供を試みます。ファイルが見つからない場合、リソースが利用できないことを" -"示すHTTP 404エラーが発生します。" +"この関数は、プロジェクトのストレージディレクトリにあるデジタルアセットファイルの提供を試みます。ファイルが見つからない場合、リソースが利用できないことを示すHTTP 404エラーが発生します。" -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuidは必須です。" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "注文商品が存在しない" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "デジタルアセットのダウンロードは1回限りです。" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "デジタル資産をダウンロードする前に、注文を支払う必要があります。" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "注文商品に商品がない" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "ファビコンが見つかりません" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "ウェブサイトのファビコンへのリクエストを処理します。\n" -"この関数は、プロジェクトの静的ディレクトリにあるファビコンファイルの提供を試" -"みます。ファビコンファイルが見つからない場合、リソースが利用できないことを示" -"す HTTP 404 エラーが発生します。" +"この関数は、プロジェクトの静的ディレクトリにあるファビコンファイルの提供を試みます。ファビコンファイルが見つからない場合、リソースが利用できないことを示す HTTP 404 エラーが発生します。" -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"リクエストを admin インデックスページにリダイレクトします。この関数は、HTTP " -"リクエストを処理し、 Django の admin インタフェースインデッ クスページにリダ" -"イレクトします。HTTP リダイレクトの処理には Django の `redirect` 関数を使いま" -"す。" +"リクエストを admin インデックスページにリダイレクトします。この関数は、HTTP リクエストを処理し、 Django の admin " +"インタフェースインデッ クスページにリダイレクトします。HTTP リダイレクトの処理には Django の `redirect` 関数を使います。" -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "eVibes の現在のバージョンを返します。" -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "ダッシュボードのカスタム変数を返します。" @@ -3189,23 +3046,21 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Evibes 関連の操作を管理するためのビューセットを定義します。EvibesViewSet クラ" -"スは ModelViewSet を継承し、Evibes エンティティに対する アクションや操作を扱" -"うための機能を提供します。現在のアクションに基づいた動的なシリアライザークラ" -"スのサポート、 カスタマイズ可能なパーミッション、レンダリングフォーマットが含" -"まれます。" +"Evibes 関連の操作を管理するためのビューセットを定義します。EvibesViewSet クラスは ModelViewSet を継承し、Evibes" +" エンティティに対する アクションや操作を扱うための機能を提供します。現在のアクションに基づいた動的なシリアライザークラスのサポート、 " +"カスタマイズ可能なパーミッション、レンダリングフォーマットが含まれます。" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"AttributeGroup オブジェクトを管理するためのビューセットを表します。データの" -"フィルタリング、シリアライズ、取得など、AttributeGroup に関連する操作を処理し" -"ます。このクラスは、アプリケーションのAPIレイヤの一部であり、AttributeGroup" -"データの要求と応答を処理する標準化された方法を提供します。" +"AttributeGroup " +"オブジェクトを管理するためのビューセットを表します。データのフィルタリング、シリアライズ、取得など、AttributeGroup " +"に関連する操作を処理します。このクラスは、アプリケーションのAPIレイヤの一部であり、AttributeGroupデータの要求と応答を処理する標準化された方法を提供します。" #: engine/core/viewsets.py:175 msgid "" @@ -3216,25 +3071,22 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"アプリケーション内でAttributeオブジェクトに関連する操作を処理する。Attribute " -"データと対話するための API エンドポイントのセットを提供します。このクラスは、" -"Attribute オブジェクトのクエリ、フィルタリング、およびシリアライズを管理し、" -"特定のフィールドによるフィルタリングや、リクエストに応じた詳細情報と簡略化さ" -"れた情報の取得など、返されるデータの動的な制御を可能にします。" +"アプリケーション内でAttributeオブジェクトに関連する操作を処理する。Attribute データと対話するための API " +"エンドポイントのセットを提供します。このクラスは、Attribute " +"オブジェクトのクエリ、フィルタリング、およびシリアライズを管理し、特定のフィールドによるフィルタリングや、リクエストに応じた詳細情報と簡略化された情報の取得など、返されるデータの動的な制御を可能にします。" #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"AttributeValue オブジェクトを管理するためのビューセットです。このビューセット" -"は、 AttributeValue オブジェクトの一覧表示、取得、作成、更新、削除の機能を提" -"供し ます。Django REST Framework のビューセット機構と統合され、異なるアクショ" -"ンに適切なシリアライザを使います。フィルタリング機能は DjangoFilterBackend を" -"通して提供されます。" +"AttributeValue オブジェクトを管理するためのビューセットです。このビューセットは、 AttributeValue " +"オブジェクトの一覧表示、取得、作成、更新、削除の機能を提供し ます。Django REST Framework " +"のビューセット機構と統合され、異なるアクションに適切なシリアライザを使います。フィルタリング機能は DjangoFilterBackend " +"を通して提供されます。" #: engine/core/viewsets.py:213 msgid "" @@ -3244,11 +3096,7 @@ msgid "" "The viewset also enforces permissions to ensure that only authorized users " "can access specific data." msgstr "" -"Category関連の操作のためのビューを管理します。CategoryViewSetクラスは、システ" -"ム内のCategoryモデルに関連する操作を処理する責任があります。カテゴリデータの" -"取得、フィルタリング、シリアライズをサポートします。ビューセットはまた、許可" -"されたユーザーだけが特定のデータにアクセスできるようにパーミッションを強制し" -"ます。" +"Category関連の操作のためのビューを管理します。CategoryViewSetクラスは、システム内のCategoryモデルに関連する操作を処理する責任があります。カテゴリデータの取得、フィルタリング、シリアライズをサポートします。ビューセットはまた、許可されたユーザーだけが特定のデータにアクセスできるようにパーミッションを強制します。" #: engine/core/viewsets.py:326 msgid "" @@ -3258,9 +3106,8 @@ msgid "" "endpoints for Brand objects." msgstr "" "Brandインスタンスを管理するためのビューセットを表します。このクラスは Brand " -"オブジェクトのクエリ、フィルタリング、シリアライズの機能を提供します。Django " -"の ViewSet フレームワークを使い、 Brand オブジェクトの API エンドポイントの実" -"装を簡素化します。" +"オブジェクトのクエリ、フィルタリング、シリアライズの機能を提供します。Django の ViewSet フレームワークを使い、 Brand " +"オブジェクトの API エンドポイントの実装を簡素化します。" #: engine/core/viewsets.py:438 msgid "" @@ -3272,12 +3119,10 @@ msgid "" "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" -"システム内の `Product` モデルに関連する操作を管理する。このクラスは、商品の" -"フィルタリング、シリアライズ、特定のインスタンスに対する操作など、商品を管理" -"するためのビューセットを提供します。共通の機能を使うために `EvibesViewSet` を" -"継承し、 RESTful API 操作のために Django REST フレームワークと統合していま" -"す。商品の詳細を取得したり、パーミッションを適用したり、商品の関連するフィー" -"ドバックにアクセスするためのメソッドを含みます。" +"システム内の `Product` " +"モデルに関連する操作を管理する。このクラスは、商品のフィルタリング、シリアライズ、特定のインスタンスに対する操作など、商品を管理するためのビューセットを提供します。共通の機能を使うために" +" `EvibesViewSet` を継承し、 RESTful API 操作のために Django REST " +"フレームワークと統合しています。商品の詳細を取得したり、パーミッションを適用したり、商品の関連するフィードバックにアクセスするためのメソッドを含みます。" #: engine/core/viewsets.py:574 msgid "" @@ -3287,59 +3132,49 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Vendor オブジェクトを管理するためのビューセットを表します。このビューセットを" -"使用すると、 Vendor のデータを取得したりフィルタリングしたりシリアライズした" -"りすることができます。さまざまなアクションを処理するためのクエリセット、 フィ" -"ルタ設定、シリアライザクラスを定義します。このクラスの目的は、 Django REST フ" -"レームワークを通して Vendor 関連リソースへの合理的なアクセスを提供することで" -"す。" +"Vendor オブジェクトを管理するためのビューセットを表します。このビューセットを使用すると、 Vendor " +"のデータを取得したりフィルタリングしたりシリアライズしたりすることができます。さまざまなアクションを処理するためのクエリセット、 " +"フィルタ設定、シリアライザクラスを定義します。このクラスの目的は、 Django REST フレームワークを通して Vendor " +"関連リソースへの合理的なアクセスを提供することです。" #: engine/core/viewsets.py:594 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"Feedback オブジェクトを扱うビューセットの表現。このクラスは、一覧表示、フィル" -"タリング、詳細の取得など、Feedback オブジェクトに関する操作を管理します。この" -"ビューセットの目的は、アクションごとに異なるシリアライザを提供し、アクセス可" -"能な Feedback オブジェクトのパーミッションベースの処理を実装することです。" -"ベースとなる `EvibesViewSet` を拡張し、Django のフィルタリングシステムを利用" -"してデータを取得します。" +"Feedback オブジェクトを扱うビューセットの表現。このクラスは、一覧表示、フィルタリング、詳細の取得など、Feedback " +"オブジェクトに関する操作を管理します。このビューセットの目的は、アクションごとに異なるシリアライザを提供し、アクセス可能な Feedback " +"オブジェクトのパーミッションベースの処理を実装することです。ベースとなる `EvibesViewSet` を拡張し、Django " +"のフィルタリングシステムを利用してデータを取得します。" #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"注文と関連する操作を管理するための ViewSet。このクラスは、注文オブジェクトを" -"取得、変更、管理する機能を提供します。商品の追加や削除、登録ユーザや未登録" -"ユーザの購入の実行、現在の認証ユーザの保留中の注文の取得など、注文操作を処理" -"するためのさまざまなエンドポイントを含みます。ViewSetは、実行される特定のアク" -"ションに基づいて複数のシリアライザを使用し、注文データを操作している間、それ" -"に応じてパーミッションを強制します。" +"注文と関連する操作を管理するための " +"ViewSet。このクラスは、注文オブジェクトを取得、変更、管理する機能を提供します。商品の追加や削除、登録ユーザや未登録ユーザの購入の実行、現在の認証ユーザの保留中の注文の取得など、注文操作を処理するためのさまざまなエンドポイントを含みます。ViewSetは、実行される特定のアクションに基づいて複数のシリアライザを使用し、注文データを操作している間、それに応じてパーミッションを強制します。" #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"OrderProduct エンティティを管理するためのビューセットを提供します。このビュー" -"セットは、OrderProduct モデルに固有の CRUD 操作とカスタムアクションを可能にし" -"ます。これは、要求されたアクションに基づくフィルタリング、パーミッション" -"チェック、シリアライザーの切り替えを含みます。さらに、OrderProduct インスタン" -"スに関するフィードバックを処理するための詳細なアクションを提供します。" +"OrderProduct エンティティを管理するためのビューセットを提供します。このビューセットは、OrderProduct モデルに固有の CRUD " +"操作とカスタムアクションを可能にします。これは、要求されたアクションに基づくフィルタリング、パーミッションチェック、シリアライザーの切り替えを含みます。さらに、OrderProduct" +" インスタンスに関するフィードバックを処理するための詳細なアクションを提供します。" #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " @@ -3349,8 +3184,7 @@ msgstr "アプリケーション内の商品画像に関する操作を管理し msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." -msgstr "" -"様々なAPIアクションによるプロモコードインスタンスの取得と処理を管理します。" +msgstr "様々なAPIアクションによるプロモコードインスタンスの取得と処理を管理します。" #: engine/core/viewsets.py:914 msgid "Represents a view set for managing promotions. " @@ -3364,18 +3198,13 @@ msgstr "システム内のストックデータに関する操作を行う。" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"ウィッシュリスト操作を管理するためのViewSet。WishlistViewSetは、ユーザーの" -"ウィッシュリストと対話するためのエンドポイントを提供し、ウィッシュリスト内の" -"商品の検索、変更、カスタマイズを可能にします。このViewSetは、ウィッシュリスト" -"商品の追加、削除、一括アクションなどの機能を容易にします。明示的なパーミッ" -"ションが付与されていない限り、ユーザーが自分のウィッシュリストのみを管理でき" -"るよう、パーミッションチェックが統合されています。" +"ウィッシュリスト操作を管理するためのViewSet。WishlistViewSetは、ユーザーのウィッシュリストと対話するためのエンドポイントを提供し、ウィッシュリスト内の商品の検索、変更、カスタマイズを可能にします。このViewSetは、ウィッシュリスト商品の追加、削除、一括アクションなどの機能を容易にします。明示的なパーミッションが付与されていない限り、ユーザーが自分のウィッシュリストのみを管理できるよう、パーミッションチェックが統合されています。" #: engine/core/viewsets.py:1056 msgid "" @@ -3385,11 +3214,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"このクラスは `Address` オブジェクトを管理するためのビューセット機能を提供す" -"る。AddressViewSet クラスは、住所エンティティに関連する CRUD 操作、フィルタリ" -"ング、カスタムアクションを可能にします。異なる HTTP メソッドに特化した振る舞" -"いや、シリアライザのオーバーライド、 リクエストコンテキストに基づいたパーミッ" -"ション処理などを含みます。" +"このクラスは `Address` オブジェクトを管理するためのビューセット機能を提供する。AddressViewSet " +"クラスは、住所エンティティに関連する CRUD 操作、フィルタリング、カスタムアクションを可能にします。異なる HTTP " +"メソッドに特化した振る舞いや、シリアライザのオーバーライド、 リクエストコンテキストに基づいたパーミッション処理などを含みます。" #: engine/core/viewsets.py:1123 #, python-brace-format @@ -3404,8 +3231,4 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"アプリケーション内で商品タグに関連する操作を処理します。このクラスは、商品タ" -"グオブジェクトの取得、フィルタリング、シリアライズの機能を提供します。指定さ" -"れたフィルタバックエンドを使用して特定の属性に対する柔軟なフィルタリングをサ" -"ポートし、実行されるアクションに基づいて動的に異なるシリアライザを使用しま" -"す。" +"アプリケーション内で商品タグに関連する操作を処理します。このクラスは、商品タグオブジェクトの取得、フィルタリング、シリアライズの機能を提供します。指定されたフィルタバックエンドを使用して特定の属性に対する柔軟なフィルタリングをサポートし、実行されるアクションに基づいて動的に異なるシリアライザを使用します。" diff --git a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po b/engine/core/locale/kk_KZ/LC_MESSAGES/django.po index b5e84ca1..95d721d3 100644 --- a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/core/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2543,7 +2543,7 @@ msgid "No customer activity in the last 30 days." msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" +msgid "Daily sales" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 @@ -2555,6 +2555,7 @@ msgid "Gross revenue" msgstr "" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "" @@ -2562,6 +2563,10 @@ msgstr "" msgid "Gross" msgstr "" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "" @@ -2590,19 +2595,31 @@ msgid "No data" msgstr "" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" +msgid "GMV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" msgstr "" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." msgstr "" #: engine/core/templates/admin/dashboard/_most_returned.html:5 @@ -2618,11 +2635,11 @@ msgid "Most wished product" msgstr "" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "" -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "" @@ -2658,10 +2675,6 @@ msgstr "" msgid "Django site admin" msgstr "" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2863,53 +2876,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2917,31 +2930,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2949,18 +2962,18 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "" -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "" diff --git a/engine/core/locale/ko_KR/LC_MESSAGES/django.mo b/engine/core/locale/ko_KR/LC_MESSAGES/django.mo index 4a54b2b58b25b14ff1256b91d4bc1b2c0f64ce47..f993f5bc90bdb0773dc4f0e2cccabfe93bc1b48e 100644 GIT binary patch delta 14875 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 delta 14856 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 j;i5G\n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "활성 상태" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "false로 설정하면 필요한 권한이 없는 사용자는 이 개체를 볼 수 없습니다." #: engine/core/abstract.py:23 engine/core/choices.py:18 @@ -152,7 +153,8 @@ msgstr "배달됨" msgid "canceled" msgstr "취소됨" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "실패" @@ -190,8 +192,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"OpenApi3 스키마를 사용합니다. 형식은 콘텐츠 협상을 통해 선택할 수 있습니다. " -"언어는 Accept-Language와 쿼리 매개변수를 모두 사용하여 선택할 수 있습니다." +"OpenApi3 스키마를 사용합니다. 형식은 콘텐츠 협상을 통해 선택할 수 있습니다. 언어는 Accept-Language와 쿼리 " +"매개변수를 모두 사용하여 선택할 수 있습니다." #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 msgid "cache I/O" @@ -237,9 +239,7 @@ msgstr "비즈니스로 주문 구매" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "" -"제공된 '제품'과 '제품_uuid' 및 '속성'을 사용하여 비즈니스로서 주문을 구매합니" -"다." +msgstr "제공된 '제품'과 '제품_uuid' 및 '속성'을 사용하여 비즈니스로서 주문을 구매합니다." #: engine/core/docs/drf/views.py:164 msgid "download a digital asset from purchased digital order" @@ -266,9 +266,9 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "편집할 수 없는 항목을 저장하는 기존 속성 그룹 다시 작성하기" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" -msgstr "" -"기존 속성 그룹의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "기존 속성 그룹의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." #: engine/core/docs/drf/viewsets.py:106 msgid "list all attributes (simple view)" @@ -315,9 +315,9 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "편집할 수 없는 기존 속성 값을 저장하여 다시 작성하기" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" -msgstr "" -"기존 속성 값의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "기존 속성 값의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 msgid "list all categories (simple view)" @@ -369,11 +369,11 @@ msgstr "직원이 아닌 사용자의 경우 자신의 주문만 반환됩니다 #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"대소문자를 구분하지 않는 하위 문자열 검색(human_readable_id, order_products." -"product.name 및 order_products.product.partnerumber)" +"대소문자를 구분하지 않는 하위 문자열 검색(human_readable_id, order_products.product.name 및 " +"order_products.product.partnerumber)" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -405,13 +405,12 @@ msgstr "주문 상태별 필터링(대소문자를 구분하지 않는 하위 #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"uuid, human_readable_id, user_email, 사용자, 상태, 생성됨, 수정됨, 구매 시" -"간, 무작위 중 하나로 정렬합니다. 접두사 앞에 '-'를 붙여 내림차순으로 정렬합니" -"다(예: '-buy_time')." +"uuid, human_readable_id, user_email, 사용자, 상태, 생성됨, 수정됨, 구매 시간, 무작위 중 하나로 " +"정렬합니다. 접두사 앞에 '-'를 붙여 내림차순으로 정렬합니다(예: '-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -451,8 +450,7 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"주문 구매를 완료합니다. 강제 잔액`을 사용하면 사용자의 잔액을 사용하여 구매" -"가 완료되고, `강제 결제`를 사용하면 거래가 시작됩니다." +"주문 구매를 완료합니다. 강제 잔액`을 사용하면 사용자의 잔액을 사용하여 구매가 완료되고, `강제 결제`를 사용하면 거래가 시작됩니다." #: engine/core/docs/drf/viewsets.py:397 msgid "retrieve current pending order of a user" @@ -478,8 +476,7 @@ msgstr "주문에 제품 추가" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품을 추가합니다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품을 추가합니다." #: engine/core/docs/drf/viewsets.py:429 msgid "add a list of products to order, quantities will not count" @@ -489,9 +486,7 @@ msgstr "주문할 제품 목록을 추가하면 수량은 계산되지 않습니 msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품 목록을 추가합니" -"다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에 제품 목록을 추가합니다." #: engine/core/docs/drf/viewsets.py:438 msgid "remove product from order" @@ -501,8 +496,7 @@ msgstr "주문에서 제품 제거" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품을 제거합니다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품을 제거합니다." #: engine/core/docs/drf/viewsets.py:447 msgid "remove product from order, quantities will not count" @@ -512,9 +506,7 @@ msgstr "주문에서 제품을 제거하면 수량이 계산되지 않습니다. msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "" -"제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품 목록을 제거합" -"니다." +msgstr "제공된 `product_uuid` 및 `attributes`를 사용하여 주문에서 제품 목록을 제거합니다." #: engine/core/docs/drf/viewsets.py:459 msgid "list all wishlists (simple view)" @@ -587,34 +579,24 @@ msgstr "주문에서 제품 제거" #: engine/core/docs/drf/viewsets.py:542 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "" -"제공된 `product_uuids`를 사용하여 위시리스트에서 많은 제품을 제거합니다." +msgstr "제공된 `product_uuids`를 사용하여 위시리스트에서 많은 제품을 제거합니다." #: engine/core/docs/drf/viewsets.py:549 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "하나 이상의 속성 이름/값 쌍을 기준으로 필터링합니다. \n" "- 구문**: `attr_name=메소드-값[;attr2=메소드2-값2]...`\n" -"- **방법**(생략 시 기본값은 `icontains`): `iexact`, `exact`, `icontains`, " -"`contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, " -"`regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- **값 입력**: JSON이 먼저 시도되며(목록/딕을 전달할 수 있도록), 부울, 정수, " -"부동 소수점의 경우 `true`/`false`, 그렇지 않으면 문자열로 처리됩니다. \n" -"- Base64**: 접두사 앞에 `b64-`를 추가하여 URL에 안전한 base64로 원시 값을 인" -"코딩합니다. \n" +"- **방법**(생략 시 기본값은 `icontains`): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **값 입력**: JSON이 먼저 시도되며(목록/딕을 전달할 수 있도록), 부울, 정수, 부동 소수점의 경우 `true`/`false`, 그렇지 않으면 문자열로 처리됩니다. \n" +"- Base64**: 접두사 앞에 `b64-`를 추가하여 URL에 안전한 base64로 원시 값을 인코딩합니다. \n" "예시: \n" "색상=정확-빨간색`, `크기=gt-10`, `기능=in-[\"wifi\",\"블루투스\"]`,\n" "b64-description=icontains-aGVhdC1jb2xk`" @@ -629,12 +611,10 @@ msgstr "(정확한) 제품 UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"정렬할 필드의 쉼표로 구분된 목록입니다. 접두사 앞에 `-`를 붙여 내림차순으로 " -"정렬합니다. \n" +"정렬할 필드의 쉼표로 구분된 목록입니다. 접두사 앞에 `-`를 붙여 내림차순으로 정렬합니다. \n" "**허용됨:** uuid, 등급, 이름, 슬러그, 생성, 수정, 가격, 랜덤" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -733,8 +713,7 @@ msgstr "편집할 수 없는 기존 피드백을 다시 작성합니다." #: engine/core/docs/drf/viewsets.py:851 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "" -"기존 피드백의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." +msgstr "기존 피드백의 일부 필드를 다시 작성하여 편집할 수 없는 항목을 저장합니다." #: engine/core/docs/drf/viewsets.py:861 msgid "list all order–product relations (simple view)" @@ -1016,8 +995,7 @@ msgstr "SKU" #: engine/core/filters.py:184 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "" -"include_subcategories 플래그를 사용하려면 category_uuid가 있어야 합니다." +msgstr "include_subcategories 플래그를 사용하려면 category_uuid가 있어야 합니다." #: engine/core/filters.py:353 msgid "Search (ID, product name or part number)" @@ -1085,7 +1063,7 @@ msgstr "캐시된 데이터" msgid "camelized JSON data from the requested URL" msgstr "요청된 URL의 카멜라이즈된 JSON 데이터" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "http(s)://로 시작하는 URL만 허용됩니다." @@ -1169,8 +1147,8 @@ msgstr "주문 구매" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "속성을 attr1=value1,attr2=value2와 같은 형식의 문자열로 보내주세요." #: engine/core/graphene/mutations.py:549 @@ -1245,7 +1223,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "이 카테고리를 필터링하는 데 사용할 수 있는 속성 및 값입니다." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "이 카테고리의 제품에 대한 최소 및 최대 가격(가능한 경우)." #: engine/core/graphene/object_types.py:205 @@ -1306,9 +1285,7 @@ msgstr "청구서 수신 주소" msgid "" "shipping address for this order, leave blank if same as billing address or " "if not applicable" -msgstr "" -"이 주문의 배송 주소는 청구지 주소와 동일하거나 해당되지 않는 경우 비워 둡니" -"다." +msgstr "이 주문의 배송 주소는 청구지 주소와 동일하거나 해당되지 않는 경우 비워 둡니다." #: engine/core/graphene/object_types.py:414 msgid "total price of this order" @@ -1455,8 +1432,7 @@ msgstr "회사 전화번호" #: engine/core/graphene/object_types.py:680 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"'이메일 보낸 사람'을 호스트 사용자 값 대신 사용해야 하는 경우가 있습니다." +msgstr "'이메일 보낸 사람'을 호스트 사용자 값 대신 사용해야 하는 경우가 있습니다." #: engine/core/graphene/object_types.py:681 msgid "email host user" @@ -1515,10 +1491,8 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"계층적일 수 있는 속성 그룹을 나타냅니다. 이 클래스는 속성 그룹을 관리하고 구" -"성하는 데 사용됩니다. 속성 그룹은 상위 그룹을 가질 수 있으며 계층 구조를 형성" -"할 수 있습니다. 이는 복잡한 시스템에서 속성을 보다 효과적으로 분류하고 관리하" -"는 데 유용할 수 있습니다." +"계층적일 수 있는 속성 그룹을 나타냅니다. 이 클래스는 속성 그룹을 관리하고 구성하는 데 사용됩니다. 속성 그룹은 상위 그룹을 가질 수 " +"있으며 계층 구조를 형성할 수 있습니다. 이는 복잡한 시스템에서 속성을 보다 효과적으로 분류하고 관리하는 데 유용할 수 있습니다." #: engine/core/models.py:91 msgid "parent of this group" @@ -1546,12 +1520,10 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"외부 공급업체 및 해당 공급업체의 상호 작용 요구 사항에 대한 정보를 저장할 수 " -"있는 공급업체 엔티티를 나타냅니다. 공급업체 클래스는 외부 공급업체와 관련된 " -"정보를 정의하고 관리하는 데 사용됩니다. 공급업체의 이름, 통신에 필요한 인증 " -"세부 정보, 공급업체에서 검색한 제품에 적용된 마크업 비율을 저장합니다. 또한 " -"이 모델은 추가 메타데이터 및 제약 조건을 유지하므로 타사 공급업체와 상호 작용" -"하는 시스템에서 사용하기에 적합합니다." +"외부 공급업체 및 해당 공급업체의 상호 작용 요구 사항에 대한 정보를 저장할 수 있는 공급업체 엔티티를 나타냅니다. 공급업체 클래스는 " +"외부 공급업체와 관련된 정보를 정의하고 관리하는 데 사용됩니다. 공급업체의 이름, 통신에 필요한 인증 세부 정보, 공급업체에서 검색한 " +"제품에 적용된 마크업 비율을 저장합니다. 또한 이 모델은 추가 메타데이터 및 제약 조건을 유지하므로 타사 공급업체와 상호 작용하는 " +"시스템에서 사용하기에 적합합니다." #: engine/core/models.py:124 msgid "stores credentials and endpoints required for vendor communication" @@ -1601,10 +1573,9 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"제품을 분류하거나 식별하는 데 사용되는 제품 태그를 나타냅니다. ProductTag 클" -"래스는 내부 태그 식별자와 사용자 친화적인 표시 이름의 조합을 통해 제품을 고유" -"하게 식별하고 분류하도록 설계되었습니다. 믹스인을 통해 내보낸 작업을 지원하" -"며 관리 목적으로 메타데이터 사용자 지정을 제공합니다." +"제품을 분류하거나 식별하는 데 사용되는 제품 태그를 나타냅니다. ProductTag 클래스는 내부 태그 식별자와 사용자 친화적인 표시 " +"이름의 조합을 통해 제품을 고유하게 식별하고 분류하도록 설계되었습니다. 믹스인을 통해 내보낸 작업을 지원하며 관리 목적으로 메타데이터 " +"사용자 지정을 제공합니다." #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1632,9 +1603,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"제품에 사용되는 카테고리 태그를 나타냅니다. 이 클래스는 제품을 연결하고 분류" -"하는 데 사용할 수 있는 카테고리 태그를 모델링합니다. 내부 태그 식별자 및 사용" -"자 친화적인 표시 이름에 대한 속성을 포함합니다." +"제품에 사용되는 카테고리 태그를 나타냅니다. 이 클래스는 제품을 연결하고 분류하는 데 사용할 수 있는 카테고리 태그를 모델링합니다. 내부" +" 태그 식별자 및 사용자 친화적인 표시 이름에 대한 속성을 포함합니다." #: engine/core/models.py:254 msgid "category tag" @@ -1656,13 +1626,10 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"관련 항목을 계층 구조로 정리하고 그룹화할 카테고리 엔티티를 나타냅니다. 카테" -"고리는 다른 카테고리와 계층적 관계를 가질 수 있으며, 상위-하위 관계를 지원합" -"니다. 이 클래스에는 카테고리 관련 기능의 기반이 되는 메타데이터 및 시각적 표" -"현을 위한 필드가 포함되어 있습니다. 이 클래스는 일반적으로 애플리케이션 내에" -"서 제품 카테고리 또는 기타 유사한 그룹을 정의하고 관리하는 데 사용되며, 사용" -"자나 관리자가 카테고리의 이름, 설명 및 계층 구조를 지정하고 이미지, 태그 또" -"는 우선순위와 같은 속성을 할당할 수 있도록 합니다." +"관련 항목을 계층 구조로 정리하고 그룹화할 카테고리 엔티티를 나타냅니다. 카테고리는 다른 카테고리와 계층적 관계를 가질 수 있으며, " +"상위-하위 관계를 지원합니다. 이 클래스에는 카테고리 관련 기능의 기반이 되는 메타데이터 및 시각적 표현을 위한 필드가 포함되어 " +"있습니다. 이 클래스는 일반적으로 애플리케이션 내에서 제품 카테고리 또는 기타 유사한 그룹을 정의하고 관리하는 데 사용되며, 사용자나 " +"관리자가 카테고리의 이름, 설명 및 계층 구조를 지정하고 이미지, 태그 또는 우선순위와 같은 속성을 할당할 수 있도록 합니다." #: engine/core/models.py:274 msgid "upload an image representing this category" @@ -1713,11 +1680,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"시스템에서 브랜드 객체를 나타냅니다. 이 클래스는 이름, 로고, 설명, 관련 카테" -"고리, 고유 슬러그, 우선순위 등 브랜드와 관련된 정보 및 속성을 처리합니다. 이" -"를 통해 애플리케이션 내에서 브랜드 관련 데이터를 구성하고 표현할 수 있습니다." +"시스템에서 브랜드 객체를 나타냅니다. 이 클래스는 이름, 로고, 설명, 관련 카테고리, 고유 슬러그, 우선순위 등 브랜드와 관련된 정보 " +"및 속성을 처리합니다. 이를 통해 애플리케이션 내에서 브랜드 관련 데이터를 구성하고 표현할 수 있습니다." #: engine/core/models.py:448 msgid "name of this brand" @@ -1761,17 +1728,16 @@ msgstr "카테고리" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"시스템에서 관리되는 제품의 재고를 나타냅니다. 이 클래스는 공급업체, 제품, 재" -"고 정보 간의 관계와 가격, 구매 가격, 수량, SKU 및 디지털 자산과 같은 재고 관" -"련 속성에 대한 세부 정보를 제공합니다. 다양한 공급업체에서 제공하는 제품을 추" -"적하고 평가할 수 있도록 하는 재고 관리 시스템의 일부입니다." +"시스템에서 관리되는 제품의 재고를 나타냅니다. 이 클래스는 공급업체, 제품, 재고 정보 간의 관계와 가격, 구매 가격, 수량, SKU 및" +" 디지털 자산과 같은 재고 관련 속성에 대한 세부 정보를 제공합니다. 다양한 공급업체에서 제공하는 제품을 추적하고 평가할 수 있도록 하는" +" 재고 관리 시스템의 일부입니다." #: engine/core/models.py:520 msgid "the vendor supplying this product stock" @@ -1849,13 +1815,10 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"카테고리, 브랜드, 태그, 디지털 상태, 이름, 설명, 부품 번호, 슬러그 등의 속성" -"을 가진 제품을 나타냅니다. 평점, 피드백 수, 가격, 수량, 총 주문 수 등을 검색" -"할 수 있는 관련 유틸리티 속성을 제공합니다. 이커머스 또는 재고 관리를 처리하" -"는 시스템에서 사용하도록 설계되었습니다. 이 클래스는 관련 모델(예: 카테고리, " -"브랜드, 제품 태그)과 상호 작용하고 자주 액세스하는 속성에 대한 캐싱을 관리하" -"여 성능을 개선합니다. 애플리케이션 내에서 제품 데이터 및 관련 정보를 정의하" -"고 조작하는 데 사용됩니다." +"카테고리, 브랜드, 태그, 디지털 상태, 이름, 설명, 부품 번호, 슬러그 등의 속성을 가진 제품을 나타냅니다. 평점, 피드백 수, " +"가격, 수량, 총 주문 수 등을 검색할 수 있는 관련 유틸리티 속성을 제공합니다. 이커머스 또는 재고 관리를 처리하는 시스템에서 " +"사용하도록 설계되었습니다. 이 클래스는 관련 모델(예: 카테고리, 브랜드, 제품 태그)과 상호 작용하고 자주 액세스하는 속성에 대한 " +"캐싱을 관리하여 성능을 개선합니다. 애플리케이션 내에서 제품 데이터 및 관련 정보를 정의하고 조작하는 데 사용됩니다." #: engine/core/models.py:585 msgid "category this product belongs to" @@ -1910,15 +1873,13 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"시스템의 속성을 나타냅니다. 이 클래스는 다른 엔티티와 연결할 수 있는 사용자 " -"지정 가능한 데이터 조각인 속성을 정의하고 관리하는 데 사용됩니다. 속성에는 연" -"관된 카테고리, 그룹, 값 유형 및 이름이 있습니다. 이 모델은 문자열, 정수, 실" -"수, 부울, 배열, 객체 등 여러 유형의 값을 지원합니다. 이를 통해 동적이고 유연" -"한 데이터 구조화가 가능합니다." +"시스템의 속성을 나타냅니다. 이 클래스는 다른 엔티티와 연결할 수 있는 사용자 지정 가능한 데이터 조각인 속성을 정의하고 관리하는 데 " +"사용됩니다. 속성에는 연관된 카테고리, 그룹, 값 유형 및 이름이 있습니다. 이 모델은 문자열, 정수, 실수, 부울, 배열, 객체 등 " +"여러 유형의 값을 지원합니다. 이를 통해 동적이고 유연한 데이터 구조화가 가능합니다." #: engine/core/models.py:733 msgid "group of this attribute" @@ -1979,12 +1940,12 @@ msgstr "속성" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"상품에 연결된 속성의 특정 값을 나타냅니다. '속성'을 고유한 '값'에 연결하여 제" -"품 특성을 더 잘 구성하고 동적으로 표현할 수 있습니다." +"상품에 연결된 속성의 특정 값을 나타냅니다. '속성'을 고유한 '값'에 연결하여 제품 특성을 더 잘 구성하고 동적으로 표현할 수 " +"있습니다." #: engine/core/models.py:788 msgid "attribute of this value" @@ -2001,15 +1962,13 @@ msgstr "이 속성의 구체적인 값은 다음과 같습니다." #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"시스템에서 제품과 연관된 제품 이미지를 나타냅니다. 이 클래스는 이미지 파일 업" -"로드, 특정 제품과의 연결, 표시 순서 결정 등의 기능을 포함하여 제품의 이미지" -"를 관리하도록 설계되었습니다. 또한 이미지에 대한 대체 텍스트가 포함된 접근성 " -"기능도 포함되어 있습니다." +"시스템에서 제품과 연관된 제품 이미지를 나타냅니다. 이 클래스는 이미지 파일 업로드, 특정 제품과의 연결, 표시 순서 결정 등의 기능을 " +"포함하여 제품의 이미지를 관리하도록 설계되었습니다. 또한 이미지에 대한 대체 텍스트가 포함된 접근성 기능도 포함되어 있습니다." #: engine/core/models.py:826 msgid "provide alternative text for the image for accessibility" @@ -2049,14 +2008,12 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"할인이 적용되는 제품에 대한 프로모션 캠페인을 나타냅니다. 이 클래스는 제품에 " -"대해 백분율 기반 할인을 제공하는 프로모션 캠페인을 정의하고 관리하는 데 사용" -"됩니다. 이 클래스에는 할인율 설정, 프로모션에 대한 세부 정보 제공 및 해당 제" -"품에 대한 링크를 위한 속성이 포함되어 있습니다. 제품 카탈로그와 통합되어 캠페" -"인에서 영향을 받는 품목을 결정합니다." +"할인이 적용되는 제품에 대한 프로모션 캠페인을 나타냅니다. 이 클래스는 제품에 대해 백분율 기반 할인을 제공하는 프로모션 캠페인을 " +"정의하고 관리하는 데 사용됩니다. 이 클래스에는 할인율 설정, 프로모션에 대한 세부 정보 제공 및 해당 제품에 대한 링크를 위한 속성이 " +"포함되어 있습니다. 제품 카탈로그와 통합되어 캠페인에서 영향을 받는 품목을 결정합니다." #: engine/core/models.py:880 msgid "percentage discount for the selected products" @@ -2097,9 +2054,8 @@ msgid "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"원하는 상품을 저장하고 관리하기 위한 사용자의 위시리스트를 나타냅니다. 이 클" -"래스는 제품 컬렉션을 관리하는 기능을 제공하여 제품 추가 및 제거와 같은 작업" -"을 지원할 뿐만 아니라 여러 제품을 한 번에 추가 및 제거하는 작업도 지원합니다." +"원하는 상품을 저장하고 관리하기 위한 사용자의 위시리스트를 나타냅니다. 이 클래스는 제품 컬렉션을 관리하는 기능을 제공하여 제품 추가 및" +" 제거와 같은 작업을 지원할 뿐만 아니라 여러 제품을 한 번에 추가 및 제거하는 작업도 지원합니다." #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2123,14 +2079,12 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"상품에 연결된 다큐멘터리 레코드를 나타냅니다. 이 클래스는 파일 업로드 및 메타" -"데이터를 포함하여 특정 제품과 관련된 다큐멘터리에 대한 정보를 저장하는 데 사" -"용됩니다. 여기에는 다큐멘터리 파일의 파일 유형과 저장 경로를 처리하는 메서드" -"와 프로퍼티가 포함되어 있습니다. 특정 믹스인의 기능을 확장하고 추가 사용자 정" -"의 기능을 제공합니다." +"상품에 연결된 다큐멘터리 레코드를 나타냅니다. 이 클래스는 파일 업로드 및 메타데이터를 포함하여 특정 제품과 관련된 다큐멘터리에 대한 " +"정보를 저장하는 데 사용됩니다. 여기에는 다큐멘터리 파일의 파일 유형과 저장 경로를 처리하는 메서드와 프로퍼티가 포함되어 있습니다. 특정" +" 믹스인의 기능을 확장하고 추가 사용자 정의 기능을 제공합니다." #: engine/core/models.py:998 msgid "documentary" @@ -2146,22 +2100,19 @@ msgstr "해결되지 않음" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"위치 세부 정보 및 사용자와의 연결을 포함하는 주소 엔티티를 나타냅니다. 지리" -"적 및 주소 데이터 저장과 지오코딩 서비스와의 통합을 위한 기능을 제공합니다. " -"이 클래스는 거리, 도시, 지역, 국가, 지리적 위치(경도 및 위도)와 같은 구성 요" -"소를 포함한 상세한 주소 정보를 저장하도록 설계되었습니다. 지오코딩 API와의 통" -"합을 지원하여 추가 처리 또는 검사를 위해 원시 API 응답을 저장할 수 있습니다. " -"또한 이 클래스를 사용하면 주소를 사용자와 연결하여 개인화된 데이터 처리를 용" -"이하게 할 수 있습니다." +"위치 세부 정보 및 사용자와의 연결을 포함하는 주소 엔티티를 나타냅니다. 지리적 및 주소 데이터 저장과 지오코딩 서비스와의 통합을 위한 " +"기능을 제공합니다. 이 클래스는 거리, 도시, 지역, 국가, 지리적 위치(경도 및 위도)와 같은 구성 요소를 포함한 상세한 주소 정보를 " +"저장하도록 설계되었습니다. 지오코딩 API와의 통합을 지원하여 추가 처리 또는 검사를 위해 원시 API 응답을 저장할 수 있습니다. 또한" +" 이 클래스를 사용하면 주소를 사용자와 연결하여 개인화된 데이터 처리를 용이하게 할 수 있습니다." #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2224,11 +2175,9 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"할인에 사용할 수 있는 프로모션 코드를 나타내며, 유효 기간, 할인 유형 및 적용" -"을 관리합니다. 프로모션 코드 클래스는 고유 식별자, 할인 속성(금액 또는 백분" -"율), 유효 기간, 관련 사용자(있는 경우), 사용 상태 등 프로모션 코드에 대한 세" -"부 정보를 저장합니다. 여기에는 제약 조건이 충족되는지 확인하면서 프로모션 코" -"드의 유효성을 검사하고 주문에 적용하는 기능이 포함되어 있습니다." +"할인에 사용할 수 있는 프로모션 코드를 나타내며, 유효 기간, 할인 유형 및 적용을 관리합니다. 프로모션 코드 클래스는 고유 식별자, " +"할인 속성(금액 또는 백분율), 유효 기간, 관련 사용자(있는 경우), 사용 상태 등 프로모션 코드에 대한 세부 정보를 저장합니다. " +"여기에는 제약 조건이 충족되는지 확인하면서 프로모션 코드의 유효성을 검사하고 주문에 적용하는 기능이 포함되어 있습니다." #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" @@ -2298,9 +2247,7 @@ msgstr "프로모션 코드" msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "" -"할인 유형(금액 또는 백분율)은 한 가지 유형만 정의해야 하며, 두 가지 모두 또" -"는 둘 다 정의해서는 안 됩니다." +msgstr "할인 유형(금액 또는 백분율)은 한 가지 유형만 정의해야 하며, 두 가지 모두 또는 둘 다 정의해서는 안 됩니다." #: engine/core/models.py:1171 msgid "promocode already used" @@ -2315,16 +2262,14 @@ msgstr "프로모션 코드 {self.uuid}의 할인 유형이 잘못되었습니 msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"사용자가 진행한 주문을 나타냅니다. 이 클래스는 청구 및 배송 정보, 상태, 연결" -"된 사용자, 알림 및 관련 작업과 같은 다양한 속성을 포함하여 애플리케이션 내에" -"서 주문을 모델링합니다. 주문에는 연결된 제품, 프로모션 적용, 주소 설정, 배송 " -"또는 청구 세부 정보 업데이트가 가능합니다. 또한 주문 수명 주기에서 제품을 관" -"리하는 기능도 지원합니다." +"사용자가 진행한 주문을 나타냅니다. 이 클래스는 청구 및 배송 정보, 상태, 연결된 사용자, 알림 및 관련 작업과 같은 다양한 속성을 " +"포함하여 애플리케이션 내에서 주문을 모델링합니다. 주문에는 연결된 제품, 프로모션 적용, 주소 설정, 배송 또는 청구 세부 정보 " +"업데이트가 가능합니다. 또한 주문 수명 주기에서 제품을 관리하는 기능도 지원합니다." #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2356,8 +2301,7 @@ msgstr "주문 상태" #: engine/core/models.py:1243 engine/core/models.py:1769 msgid "json structure of notifications to display to users" -msgstr "" -"사용자에게 표시할 알림의 JSON 구조, 관리자 UI에서는 테이블 보기가 사용됩니다." +msgstr "사용자에게 표시할 알림의 JSON 구조, 관리자 UI에서는 테이블 보기가 사용됩니다." #: engine/core/models.py:1249 msgid "json representation of order attributes for this order" @@ -2457,17 +2401,13 @@ msgstr "주문을 완료하기에 자금이 부족합니다." msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -msgstr "" -"등록하지 않으면 구매할 수 없으므로 고객 이름, 고객 이메일, 고객 전화 번호 등" -"의 정보를 제공하세요." +msgstr "등록하지 않으면 구매할 수 없으므로 고객 이름, 고객 이메일, 고객 전화 번호 등의 정보를 제공하세요." #: engine/core/models.py:1584 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "" -"결제 방법이 잘못되었습니다: {payment_method}에서 {available_payment_methods}" -"로!" +msgstr "결제 방법이 잘못되었습니다: {payment_method}에서 {available_payment_methods}로!" #: engine/core/models.py:1699 msgid "" @@ -2477,11 +2417,9 @@ msgid "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." msgstr "" -"제품에 대한 사용자 피드백을 관리합니다. 이 클래스는 사용자가 구매한 특정 제품" -"에 대한 사용자 피드백을 캡처하고 저장하도록 설계되었습니다. 여기에는 사용자 " -"댓글, 주문에서 관련 제품에 대한 참조 및 사용자가 지정한 등급을 저장하는 속성" -"이 포함되어 있습니다. 이 클래스는 데이터베이스 필드를 사용하여 피드백 데이터" -"를 효과적으로 모델링하고 관리합니다." +"제품에 대한 사용자 피드백을 관리합니다. 이 클래스는 사용자가 구매한 특정 제품에 대한 사용자 피드백을 캡처하고 저장하도록 " +"설계되었습니다. 여기에는 사용자 댓글, 주문에서 관련 제품에 대한 참조 및 사용자가 지정한 등급을 저장하는 속성이 포함되어 있습니다. 이" +" 클래스는 데이터베이스 필드를 사용하여 피드백 데이터를 효과적으로 모델링하고 관리합니다." #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2492,7 +2430,8 @@ msgid "feedback comments" msgstr "피드백 댓글" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "이 피드백에 대한 순서대로 특정 제품을 참조합니다." #: engine/core/models.py:1720 @@ -2519,13 +2458,10 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"주문과 관련된 제품 및 해당 속성을 나타냅니다. 주문 제품 모델은 구매 가격, 수" -"량, 제품 속성 및 상태 등의 세부 정보를 포함하여 주문의 일부인 제품에 대한 정" -"보를 유지 관리합니다. 사용자 및 관리자에 대한 알림을 관리하고 제품 잔액 반환 " -"또는 피드백 추가와 같은 작업을 처리합니다. 또한 이 모델은 총 가격 계산이나 디" -"지털 제품의 다운로드 URL 생성 등 비즈니스 로직을 지원하는 메서드와 속성을 제" -"공합니다. 이 모델은 주문 및 제품 모델과 통합되며 해당 모델에 대한 참조를 저장" -"합니다." +"주문과 관련된 제품 및 해당 속성을 나타냅니다. 주문 제품 모델은 구매 가격, 수량, 제품 속성 및 상태 등의 세부 정보를 포함하여 " +"주문의 일부인 제품에 대한 정보를 유지 관리합니다. 사용자 및 관리자에 대한 알림을 관리하고 제품 잔액 반환 또는 피드백 추가와 같은 " +"작업을 처리합니다. 또한 이 모델은 총 가격 계산이나 디지털 제품의 다운로드 URL 생성 등 비즈니스 로직을 지원하는 메서드와 속성을 " +"제공합니다. 이 모델은 주문 및 제품 모델과 통합되며 해당 모델에 대한 참조를 저장합니다." #: engine/core/models.py:1757 msgid "the price paid by the customer for this product at purchase time" @@ -2633,15 +2569,13 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"주문과 관련된 디지털 자산의 다운로드 기능을 나타냅니다. 디지털 자산 다운로드 " -"클래스는 주문 상품과 관련된 다운로드를 관리하고 액세스할 수 있는 기능을 제공" -"합니다. 연결된 주문 상품, 다운로드 횟수, 자산이 공개적으로 표시되는지 여부에 " -"대한 정보를 유지 관리합니다. 여기에는 연결된 주문이 완료 상태일 때 자산을 다" -"운로드할 수 있는 URL을 생성하는 메서드가 포함되어 있습니다." +"주문과 관련된 디지털 자산의 다운로드 기능을 나타냅니다. 디지털 자산 다운로드 클래스는 주문 상품과 관련된 다운로드를 관리하고 액세스할 " +"수 있는 기능을 제공합니다. 연결된 주문 상품, 다운로드 횟수, 자산이 공개적으로 표시되는지 여부에 대한 정보를 유지 관리합니다. " +"여기에는 연결된 주문이 완료 상태일 때 자산을 다운로드할 수 있는 URL을 생성하는 메서드가 포함되어 있습니다." #: engine/core/models.py:1961 msgid "download" @@ -2685,8 +2619,8 @@ msgid "No customer activity in the last 30 days." msgstr "지난 30일 동안 고객 활동이 없습니다." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "일일 판매량(30일)" +msgid "Daily sales" +msgstr "일일 판매량" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2697,6 +2631,7 @@ msgid "Gross revenue" msgstr "총 수익" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "주문" @@ -2704,6 +2639,10 @@ msgstr "주문" msgid "Gross" msgstr "Gross" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "대시보드" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "수입 개요" @@ -2732,20 +2671,32 @@ msgid "No data" msgstr "날짜 없음" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "수익(총액, 30일)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "수익(순, 30일)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "반품 (30일)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "순 수익" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "처리된 주문(30일)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "환불 비율" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "반환됨" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "재고 부족" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "재고가 부족한 품목이 없습니다." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2760,11 +2711,11 @@ msgid "Most wished product" msgstr "가장 많이 원하는 제품" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "아직 데이터가 없습니다." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "가장 인기 있는 제품" @@ -2800,10 +2751,6 @@ msgstr "지난 30일 동안 카테고리 매출이 없습니다." msgid "Django site admin" msgstr "장고 사이트 관리자" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "대시보드" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2833,12 +2780,10 @@ msgstr "안녕하세요 %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"주문해 주셔서 감사합니다 #%(order.pk)s! 주문하신 상품이 입고되었음을 알려드립" -"니다. 주문 세부 정보는 아래와 같습니다:" +"주문해 주셔서 감사합니다 #%(order.pk)s! 주문하신 상품이 입고되었음을 알려드립니다. 주문 세부 정보는 아래와 같습니다:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2861,8 +2806,7 @@ msgstr "총 가격" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "" -"궁금한 점이 있으면 언제든지 %(config.EMAIL_HOST_USER)s로 지원팀에 문의하세요." +msgstr "궁금한 점이 있으면 언제든지 %(config.EMAIL_HOST_USER)s로 지원팀에 문의하세요." #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -2890,9 +2834,7 @@ msgstr "안녕하세요 %(user_first_name)s," msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" -msgstr "" -"주문이 성공적으로 처리되었습니다 №%(order_uuid)s! 주문 세부 정보는 아래와 같" -"습니다:" +msgstr "주문이 성공적으로 처리되었습니다 №%(order_uuid)s! 주문 세부 정보는 아래와 같습니다:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -2945,12 +2887,9 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" -msgstr "" -"주문해 주셔서 감사합니다! 구매를 확인하게 되어 기쁩니다. 주문 세부 정보는 아" -"래와 같습니다:" +msgstr "주문해 주셔서 감사합니다! 구매를 확인하게 되어 기쁩니다. 주문 세부 정보는 아래와 같습니다:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3016,125 +2955,111 @@ msgstr "NOMINATIM_URL 파라미터를 설정해야 합니다!" #: engine/core/validators.py:19 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" -msgstr "" -"이미지 크기는 w{max_width} x h{max_height} 픽셀을 초과하지 않아야 합니다!" +msgstr "이미지 크기는 w{max_width} x h{max_height} 픽셀을 초과하지 않아야 합니다!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"사이트맵 색인에 대한 요청을 처리하고 XML 응답을 반환합니다. 응답에 XML에 적합" -"한 콘텐츠 유형 헤더가 포함되어 있는지 확인합니다." +"사이트맵 색인에 대한 요청을 처리하고 XML 응답을 반환합니다. 응답에 XML에 적합한 콘텐츠 유형 헤더가 포함되어 있는지 확인합니다." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"사이트맵에 대한 상세 보기 응답을 처리합니다. 이 함수는 요청을 처리하고 적절" -"한 사이트맵 상세 보기 응답을 가져온 다음 XML의 Content-Type 헤더를 설정합니" -"다." +"사이트맵에 대한 상세 보기 응답을 처리합니다. 이 함수는 요청을 처리하고 적절한 사이트맵 상세 보기 응답을 가져온 다음 XML의 " +"Content-Type 헤더를 설정합니다." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "지원되는 언어 목록과 해당 정보를 반환합니다." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "웹사이트의 매개변수를 JSON 객체로 반환합니다." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -msgstr "" -"지정된 키와 시간 초과로 캐시 데이터를 읽고 설정하는 등의 캐시 작업을 처리합니" -"다." +msgstr "지정된 키와 시간 초과로 캐시 데이터를 읽고 설정하는 등의 캐시 작업을 처리합니다." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "'문의하기' 양식 제출을 처리합니다." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "들어오는 POST 요청의 URL 처리 및 유효성 검사 요청을 처리합니다." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "글로벌 검색 쿼리를 처리합니다." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "등록하지 않고 비즈니스로 구매하는 로직을 처리합니다." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "주문과 관련된 디지털 자산의 다운로드를 처리합니다.\n" -"이 함수는 프로젝트의 저장소 디렉토리에 있는 디지털 자산 파일을 제공하려고 시" -"도합니다. 파일을 찾을 수 없으면 HTTP 404 오류가 발생하여 리소스를 사용할 수 " -"없음을 나타냅니다." +"이 함수는 프로젝트의 저장소 디렉토리에 있는 디지털 자산 파일을 제공하려고 시도합니다. 파일을 찾을 수 없으면 HTTP 404 오류가 발생하여 리소스를 사용할 수 없음을 나타냅니다." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "주문_제품_UUID는 필수입니다." -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "주문 제품이 존재하지 않습니다." -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "디지털 자산은 한 번만 다운로드할 수 있습니다." -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "디지털 자산을 다운로드하기 전에 주문을 결제해야 합니다." -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "주문 제품에 제품이 없습니다." -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "파비콘을 찾을 수 없습니다." -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "웹사이트의 파비콘 요청을 처리합니다.\n" -"이 함수는 프로젝트의 정적 디렉토리에 있는 파비콘 파일을 제공하려고 시도합니" -"다. 파비콘 파일을 찾을 수 없는 경우 HTTP 404 오류가 발생하여 리소스를 사용할 " -"수 없음을 나타냅니다." +"이 함수는 프로젝트의 정적 디렉토리에 있는 파비콘 파일을 제공하려고 시도합니다. 파비콘 파일을 찾을 수 없는 경우 HTTP 404 오류가 발생하여 리소스를 사용할 수 없음을 나타냅니다." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"요청을 관리자 색인 페이지로 리디렉션합니다. 이 함수는 들어오는 HTTP 요청을 처" -"리하여 Django 관리자 인터페이스 인덱스 페이지로 리디렉션합니다. HTTP 리디렉션" -"을 처리하기 위해 Django의 `redirect` 함수를 사용합니다." +"요청을 관리자 색인 페이지로 리디렉션합니다. 이 함수는 들어오는 HTTP 요청을 처리하여 Django 관리자 인터페이스 인덱스 페이지로 " +"리디렉션합니다. HTTP 리디렉션을 처리하기 위해 Django의 `redirect` 함수를 사용합니다." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "현재 버전의 eVibes를 반환합니다." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "대시보드에 대한 사용자 지정 변수를 반환합니다." @@ -3146,22 +3071,21 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Evibes 관련 작업을 관리하기 위한 뷰셋을 정의합니다. EvibesViewSet 클래스는 " -"ModelViewSet에서 상속되며 Evibes 엔티티에 대한 액션 및 연산을 처리하는 기능" -"을 제공합니다. 여기에는 현재 작업을 기반으로 하는 동적 직렬화기 클래스, 사용" -"자 지정 가능한 권한 및 렌더링 형식에 대한 지원이 포함됩니다." +"Evibes 관련 작업을 관리하기 위한 뷰셋을 정의합니다. EvibesViewSet 클래스는 ModelViewSet에서 상속되며 " +"Evibes 엔티티에 대한 액션 및 연산을 처리하는 기능을 제공합니다. 여기에는 현재 작업을 기반으로 하는 동적 직렬화기 클래스, 사용자" +" 지정 가능한 권한 및 렌더링 형식에 대한 지원이 포함됩니다." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"속성 그룹 객체를 관리하기 위한 뷰셋을 나타냅니다. 데이터의 필터링, 직렬화, 검" -"색 등 AttributeGroup과 관련된 작업을 처리합니다. 이 클래스는 애플리케이션의 " -"API 계층의 일부이며 AttributeGroup 데이터에 대한 요청 및 응답을 처리하는 표준" -"화된 방법을 제공합니다." +"속성 그룹 객체를 관리하기 위한 뷰셋을 나타냅니다. 데이터의 필터링, 직렬화, 검색 등 AttributeGroup과 관련된 작업을 " +"처리합니다. 이 클래스는 애플리케이션의 API 계층의 일부이며 AttributeGroup 데이터에 대한 요청 및 응답을 처리하는 표준화된" +" 방법을 제공합니다." #: engine/core/viewsets.py:175 msgid "" @@ -3172,24 +3096,21 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"애플리케이션 내에서 속성 개체와 관련된 작업을 처리합니다. 속성 데이터와 상호 " -"작용할 수 있는 API 엔드포인트 세트를 제공합니다. 이 클래스는 속성 개체의 쿼" -"리, 필터링 및 직렬화를 관리하여 특정 필드별로 필터링하거나 요청에 따라 단순화" -"된 정보와 상세한 정보를 검색하는 등 반환되는 데이터를 동적으로 제어할 수 있도" -"록 합니다." +"애플리케이션 내에서 속성 개체와 관련된 작업을 처리합니다. 속성 데이터와 상호 작용할 수 있는 API 엔드포인트 세트를 제공합니다. 이 " +"클래스는 속성 개체의 쿼리, 필터링 및 직렬화를 관리하여 특정 필드별로 필터링하거나 요청에 따라 단순화된 정보와 상세한 정보를 검색하는 " +"등 반환되는 데이터를 동적으로 제어할 수 있도록 합니다." #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"속성값 객체를 관리하기 위한 뷰셋입니다. 이 뷰셋은 AttributeValue 객체를 나" -"열, 검색, 생성, 업데이트 및 삭제하기 위한 기능을 제공합니다. 이 뷰셋은 장고 " -"REST 프레임워크의 뷰셋 메커니즘과 통합되며 다양한 작업에 적절한 직렬화기를 사" -"용합니다. 필터링 기능은 DjangoFilterBackend를 통해 제공됩니다." +"속성값 객체를 관리하기 위한 뷰셋입니다. 이 뷰셋은 AttributeValue 객체를 나열, 검색, 생성, 업데이트 및 삭제하기 위한 " +"기능을 제공합니다. 이 뷰셋은 장고 REST 프레임워크의 뷰셋 메커니즘과 통합되며 다양한 작업에 적절한 직렬화기를 사용합니다. 필터링 " +"기능은 DjangoFilterBackend를 통해 제공됩니다." #: engine/core/viewsets.py:213 msgid "" @@ -3199,10 +3120,9 @@ msgid "" "The viewset also enforces permissions to ensure that only authorized users " "can access specific data." msgstr "" -"카테고리 관련 작업에 대한 보기를 관리합니다. CategoryViewSet 클래스는 시스템" -"에서 카테고리 모델과 관련된 작업을 처리하는 역할을 담당합니다. 카테고리 데이" -"터 검색, 필터링 및 직렬화를 지원합니다. 또한 이 뷰 집합은 권한이 부여된 사용" -"자만 특정 데이터에 액세스할 수 있도록 권한을 적용합니다." +"카테고리 관련 작업에 대한 보기를 관리합니다. CategoryViewSet 클래스는 시스템에서 카테고리 모델과 관련된 작업을 처리하는 " +"역할을 담당합니다. 카테고리 데이터 검색, 필터링 및 직렬화를 지원합니다. 또한 이 뷰 집합은 권한이 부여된 사용자만 특정 데이터에 " +"액세스할 수 있도록 권한을 적용합니다." #: engine/core/viewsets.py:326 msgid "" @@ -3211,9 +3131,8 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"브랜드 인스턴스를 관리하기 위한 뷰셋을 나타냅니다. 이 클래스는 브랜드 객체를 " -"쿼리, 필터링 및 직렬화하기 위한 기능을 제공합니다. 이 클래스는 장고의 뷰셋 프" -"레임워크를 사용하여 브랜드 객체에 대한 API 엔드포인트의 구현을 간소화합니다." +"브랜드 인스턴스를 관리하기 위한 뷰셋을 나타냅니다. 이 클래스는 브랜드 객체를 쿼리, 필터링 및 직렬화하기 위한 기능을 제공합니다. 이 " +"클래스는 장고의 뷰셋 프레임워크를 사용하여 브랜드 객체에 대한 API 엔드포인트의 구현을 간소화합니다." #: engine/core/viewsets.py:438 msgid "" @@ -3225,11 +3144,10 @@ msgid "" "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" -"시스템에서 `Product` 모델과 관련된 작업을 관리합니다. 이 클래스는 필터링, 직" -"렬화 및 특정 인스턴스에 대한 작업을 포함하여 제품을 관리하기 위한 뷰셋을 제공" -"합니다. 이 클래스는 공통 기능을 사용하기 위해 `EvibesViewSet`에서 확장되며 " -"RESTful API 작업을 위해 Django REST 프레임워크와 통합됩니다. 제품 세부 정보 " -"검색, 권한 적용, 제품의 관련 피드백에 액세스하는 메서드가 포함되어 있습니다." +"시스템에서 `Product` 모델과 관련된 작업을 관리합니다. 이 클래스는 필터링, 직렬화 및 특정 인스턴스에 대한 작업을 포함하여 " +"제품을 관리하기 위한 뷰셋을 제공합니다. 이 클래스는 공통 기능을 사용하기 위해 `EvibesViewSet`에서 확장되며 RESTful " +"API 작업을 위해 Django REST 프레임워크와 통합됩니다. 제품 세부 정보 검색, 권한 적용, 제품의 관련 피드백에 액세스하는 " +"메서드가 포함되어 있습니다." #: engine/core/viewsets.py:574 msgid "" @@ -3239,56 +3157,50 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"벤더 객체를 관리하기 위한 뷰셋을 나타냅니다. 이 뷰셋을 통해 벤더 데이터를 가" -"져오고, 필터링하고, 직렬화할 수 있습니다. 다양한 작업을 처리하는 데 사용되는 " -"쿼리 집합, 필터 구성 및 직렬화기 클래스를 정의합니다. 이 클래스의 목적은 " -"Django REST 프레임워크를 통해 공급업체 관련 리소스에 대한 간소화된 액세스를 " -"제공하는 것입니다." +"벤더 객체를 관리하기 위한 뷰셋을 나타냅니다. 이 뷰셋을 통해 벤더 데이터를 가져오고, 필터링하고, 직렬화할 수 있습니다. 다양한 작업을" +" 처리하는 데 사용되는 쿼리 집합, 필터 구성 및 직렬화기 클래스를 정의합니다. 이 클래스의 목적은 Django REST 프레임워크를 " +"통해 공급업체 관련 리소스에 대한 간소화된 액세스를 제공하는 것입니다." #: engine/core/viewsets.py:594 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"피드백 개체를 처리하는 뷰 집합의 표현입니다. 이 클래스는 세부 정보 나열, 필터" -"링 및 검색을 포함하여 피드백 개체에 관련된 작업을 관리합니다. 이 뷰 세트의 목" -"적은 다양한 작업에 대해 서로 다른 직렬화기를 제공하고 접근 가능한 피드백 객체" -"에 대한 권한 기반 처리를 구현하는 것입니다. 이 클래스는 기본 `EvibesViewSet`" -"을 확장하고 데이터 쿼리를 위해 Django의 필터링 시스템을 사용합니다." +"피드백 개체를 처리하는 뷰 집합의 표현입니다. 이 클래스는 세부 정보 나열, 필터링 및 검색을 포함하여 피드백 개체에 관련된 작업을 " +"관리합니다. 이 뷰 세트의 목적은 다양한 작업에 대해 서로 다른 직렬화기를 제공하고 접근 가능한 피드백 객체에 대한 권한 기반 처리를 " +"구현하는 것입니다. 이 클래스는 기본 `EvibesViewSet`을 확장하고 데이터 쿼리를 위해 Django의 필터링 시스템을 " +"사용합니다." #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"주문 및 관련 작업을 관리하기 위한 뷰셋입니다. 이 클래스는 주문 객체를 검색, " -"수정, 관리하는 기능을 제공합니다. 여기에는 제품 추가 또는 제거, 등록 및 미등" -"록 사용자에 대한 구매 수행, 현재 인증된 사용자의 보류 중인 주문 검색 등 주문 " -"작업을 처리하기 위한 다양한 엔드포인트가 포함되어 있습니다. 뷰셋은 수행되는 " -"특정 작업에 따라 여러 직렬화기를 사용하며 주문 데이터와 상호 작용하는 동안 그" -"에 따라 권한을 적용합니다." +"주문 및 관련 작업을 관리하기 위한 뷰셋입니다. 이 클래스는 주문 객체를 검색, 수정, 관리하는 기능을 제공합니다. 여기에는 제품 추가 " +"또는 제거, 등록 및 미등록 사용자에 대한 구매 수행, 현재 인증된 사용자의 보류 중인 주문 검색 등 주문 작업을 처리하기 위한 다양한 " +"엔드포인트가 포함되어 있습니다. 뷰셋은 수행되는 특정 작업에 따라 여러 직렬화기를 사용하며 주문 데이터와 상호 작용하는 동안 그에 따라 " +"권한을 적용합니다." #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"주문 제품 엔티티를 관리하기 위한 뷰셋을 제공합니다. 이 뷰셋을 사용하면 주문 " -"제품 모델에 특정한 CRUD 작업 및 사용자 지정 작업을 수행할 수 있습니다. 여기에" -"는 요청된 작업을 기반으로 필터링, 권한 확인 및 직렬화기 전환이 포함됩니다. 또" -"한 주문 제품 인스턴스에 대한 피드백 처리를 위한 세부 작업도 제공합니다." +"주문 제품 엔티티를 관리하기 위한 뷰셋을 제공합니다. 이 뷰셋을 사용하면 주문 제품 모델에 특정한 CRUD 작업 및 사용자 지정 작업을 " +"수행할 수 있습니다. 여기에는 요청된 작업을 기반으로 필터링, 권한 확인 및 직렬화기 전환이 포함됩니다. 또한 주문 제품 인스턴스에 대한" +" 피드백 처리를 위한 세부 작업도 제공합니다." #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " @@ -3298,8 +3210,7 @@ msgstr "애플리케이션에서 제품 이미지와 관련된 작업을 관리 msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." -msgstr "" -"다양한 API 작업을 통해 프로모션 코드 인스턴스의 검색 및 처리를 관리합니다." +msgstr "다양한 API 작업을 통해 프로모션 코드 인스턴스의 검색 및 처리를 관리합니다." #: engine/core/viewsets.py:914 msgid "Represents a view set for managing promotions. " @@ -3313,18 +3224,15 @@ msgstr "시스템에서 주식 데이터와 관련된 작업을 처리합니다. msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"위시리스트 작업을 관리하기 위한 뷰셋입니다. 위시리스트뷰셋은 사용자의 위시리" -"스트와 상호 작용할 수 있는 엔드포인트를 제공하여 위시리스트 내의 제품을 검" -"색, 수정 및 사용자 지정할 수 있도록 합니다. 이 뷰셋은 위시리스트 제품에 대한 " -"추가, 제거 및 대량 작업과 같은 기능을 용이하게 합니다. 명시적인 권한이 부여되" -"지 않는 한 사용자가 자신의 위시리스트만 관리할 수 있도록 권한 검사가 통합되" -"어 있습니다." +"위시리스트 작업을 관리하기 위한 뷰셋입니다. 위시리스트뷰셋은 사용자의 위시리스트와 상호 작용할 수 있는 엔드포인트를 제공하여 위시리스트 " +"내의 제품을 검색, 수정 및 사용자 지정할 수 있도록 합니다. 이 뷰셋은 위시리스트 제품에 대한 추가, 제거 및 대량 작업과 같은 기능을" +" 용이하게 합니다. 명시적인 권한이 부여되지 않는 한 사용자가 자신의 위시리스트만 관리할 수 있도록 권한 검사가 통합되어 있습니다." #: engine/core/viewsets.py:1056 msgid "" @@ -3334,10 +3242,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"이 클래스는 `주소` 객체를 관리하기 위한 뷰셋 기능을 제공합니다. 주소 뷰셋 클" -"래스는 주소 엔티티와 관련된 CRUD 작업, 필터링 및 사용자 정의 작업을 가능하게 " -"합니다. 여기에는 다양한 HTTP 메서드, 직렬화기 재정의, 요청 컨텍스트에 따른 권" -"한 처리를 위한 특수 동작이 포함되어 있습니다." +"이 클래스는 `주소` 객체를 관리하기 위한 뷰셋 기능을 제공합니다. 주소 뷰셋 클래스는 주소 엔티티와 관련된 CRUD 작업, 필터링 및 " +"사용자 정의 작업을 가능하게 합니다. 여기에는 다양한 HTTP 메서드, 직렬화기 재정의, 요청 컨텍스트에 따른 권한 처리를 위한 특수 " +"동작이 포함되어 있습니다." #: engine/core/viewsets.py:1123 #, python-brace-format @@ -3352,7 +3259,6 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"애플리케이션 내에서 제품 태그와 관련된 작업을 처리합니다. 이 클래스는 제품 태" -"그 객체를 검색, 필터링 및 직렬화하기 위한 기능을 제공합니다. 지정된 필터 백엔" -"드를 사용하여 특정 속성에 대한 유연한 필터링을 지원하며 수행 중인 작업에 따" -"라 다양한 직렬화기를 동적으로 사용합니다." +"애플리케이션 내에서 제품 태그와 관련된 작업을 처리합니다. 이 클래스는 제품 태그 객체를 검색, 필터링 및 직렬화하기 위한 기능을 " +"제공합니다. 지정된 필터 백엔드를 사용하여 특정 속성에 대한 유연한 필터링을 지원하며 수행 중인 작업에 따라 다양한 직렬화기를 동적으로 " +"사용합니다." diff --git a/engine/core/locale/nl_NL/LC_MESSAGES/django.mo b/engine/core/locale/nl_NL/LC_MESSAGES/django.mo index 51272dbbb4936192c62fc70bddb47163c11f70fe..c45e86033b93b68e1c7d1f6e65cdc49edf7c917c 100644 GIT binary patch delta 14876 zcmZYF1$frg|NrrG4+a}G7&&tEM%Sp3gV8PB69$aYjE6M$tfB}QT@tcBUI35H-#^vCfSj8jqPFT&); zc+E00V<}jLxQ%sdyEE#Z60>uEbArqc-u@0&qGE9kd*cfjLHy8}x2BETpx$5xs%Pe)-f%7IMw>7# z?#DuS5@YZW%#E$0j2YuGCIK6J$vmxPOa&@xL>to#hvN(U7PsQTI=mt62GupDI`PDV^%zXUOo9mGCJ`m48#}6!y40oM%*|G zTNC;gllb=eeD zm(9g++=Cj!JD3I^p)UBBGacQPhd3WHFHIC`Hji@U8JaVk#HCSl=M-kZ^Dh3iIpgoU zFa>(@zpxo^7SzJd?ym3I$rXn`Q$NJTty&thfp#%i3{%rR9hgHE+Zc0&c5~a&mh%4X znQVBc1D%O!I~mg!+jgdhX}{Im#h8T@{1L;r;EZm@e8&Z%V(CKSbUmoUqCJf%NqL?) zByNgNiM_pzX-_;T-kADa@KhgqfH-S^`+%DV7&CzKHiL}WMfvdrVKSu%*0`J+>N#I zPYlMYlb9#i47Ex|V>+CTs{a(}EVB&@Vu{Ia{kJ5e<<}lFV=vSRV^L#12lXJU(D&r1 z2i}M2@jPlnx#Q|zyYjSCY<+Ijkd;LBTxHY)wwgl!hmwh-pa@RGGPnaZX7^lq_Nn&9 z(WuGQ3iDwn^v7|i2b+R=;Q6Q|o2dTuBSk#UCqIzJob0(_&ax92DP(yYVHH6;ZT!UoO?3iRj zJ$W(IjjN*`q?N0W#Sr2V&O}$g8Fk)1)B~NtVt5HPDg8gPH!O{c>tRK${{%9XDAWPb@-Y5z+iQ1rU9FKb7v8V^0i@MHgRJ)z12S4Hb1%tHy|0Scz zkZy*(P-zS#u8pa%2}WT%EQ3oh4W7mbyoS0#@J#yxg-~4_fg0L6m=>F2YV3r0F;4Yb z{~wXjh2~;uJb`+Ee^3vWVir3ihNIrBH|otsqGt7U7bl`_xW>g>P}ez#;dlbIl|REZ zSZp@^uM^IaQP*9?a`*(btP0JsAFIVMk~kJi;|kOmpTjV`ih85uAKNXr5b8#aQTxJV z492CXq5A?u@yN&Yzcz$lDae4HL{7qtI22>BFJ3}DP@TE9iyL7b;tr@cT#4$5O{nW6 zp?dTP>H+^oJ#c|}c4&&B+EtxL|LaMcQcx79Vo6NGjCdRC<4dfDHRszKjzf*z4^j_x-ayQOUau=yjQVo80n6cW)P-MTVNAckS`pRNT~VJA z6I{F;Ly5m}<+rgEv1g%O_hm3Yaa+uTqfv9qyM&A`cmQ?5o2UnQgQ1vvk?oo4s0}9` z)pY|fJ5E5&p`|Wfi*<>=cIAPKZGAANqdW)dIz=#x)_+Mddeb_nE^mj~urI2srnvIC zs4-rTCGd098(hbB=viWipaW{Qe~fCk7d3Ytq8{K0>V9UaTmKo!=tlW5Czi%gY=XtG zKkCFKsCB;))owScr!HW2e1>|!pk;QFWkH=^7O@ zb%R@&1K(f-=J?dk;^xkFs2+>K3OEEc`8K2G&{bESe!2agP!H8(Gq5>+fnMFvZ-rf# z=}=vjA2p`osAW?Ib)(9to@#>Xk&doB9`yoVOpnuD{ZiERH@W)VuKoz>`aiB<{6on6 z>?&SiR^n7E?WD_xx^NTJR@?zIV-M7YN29v-1Js=P6g4?_quQT9?GG1F=lzU&@aL{R z`6{nnCPAz0nAgBC8pNQ+Xd3E*hcFLb!0z}Qi(vcJcBm$!-e@JN{YET-`>;IzhP5#N z8hhQIs8zDuOGcCC9_k5yM?JCsT6@DF%tu_(*#Zj^4{`BgR1fY)jrk?i+)2C6_COKr zKpcVZ;T)`ucTgLfx5#=sOA|1Zf)$tvzd?=lMbr)MU{QR7rLpJ+YbPvBJPXw$yPUUN zdD_qHx8?{8r+xrxhh2nBRo7xiX4P}jSIbusG~_P6OSsCWhHf$w7t?r#cjwV&_3P!$_68t85_R4lEQa^75N7$(&Z(-X^Ll(q|Cb}P zk^*(rMbu<_jkz%FD|@3lSe>{ZM&K6Ig@3^Um|+jU`C@t0n-50y;8;wJlQ0BlqlV@) z%z@u~$)q9k0CmHcsIJYt*X{$+Sdq9X>cSsjHcZ6&xCynaUZ7qebf0~JI;b}uh(Wjj zljC|+&uqqE^j;;SC;1=hO;YW*CzeD_uGXkGnTL9S#i%*37WE*TQEzw@GvirQyL*@$ z|G>N$e89d~IZR319mi<>_aURPet>Eia?sB1NYo@5hnk!pqGs;`)TG*jfp{AAMwc-X zQ+{n%NiEdmoQxW(<5&crqk1g#8x6ge-^s~TrNE2ovVEvY_6wH5UWe?MEygI~1E_Mp z!~7bC5m+9_qi(PpbKz~&i+PUN2PlQQaVIQ_Q?a}L{+C2XlOx+P#*4TNCL>;b-1fkF zOiR2K)wKsO3!cF2coUQ3Kd9B@`PQDF5&em?;wa38nrjPD_gjlzUFaYgR+hPl8rzvC z?8opt)Oy{Fnk@S<5P!fJ9`q^(5LZ2E=RzGUOWXxZVIpb{9LBSL^axfV-g(-7Nd0k| z{;y9#`ZIPJws+1#^}u1&lO9LC$t~1myXSm{x}o`jJp#&MK3t94c)(*g5=Wk6*Q5OT zdA_t@wF?Y2<%=&c{w!hh&5w*N1!FGSxp43j-}fm07uB_kFWcF@9K(orqQ0p7jGBxu zQ9YCTihaP$n3Fg!szumJyG6%GGI~^BKKL zyyOLQgSgM1Ohm3f>o1+h_z(V@H>Bc+f9xBYH>^uesD_zvmGPLxxZC3~i)hy}na3O< z{@veW@(}Mx=`maILZHXopnOsqkJ*8-={&wS&XL~Z>xohr&5g@rX&jA3xxd*$MjOx- z)E1g8gU2`fOQ5#OGN=usGM2<1sL3`THK~?ka@>oWY+t+hIBK<=!mfB3d+=bDgFU{D zZbe3q@#==h$>;*tQIq60rpKqKKdmOC8%AQvEcVGKWb^p8+U=<2_t?b+LOi}t)2^tw zFb_4^Ryxn2=2G(P9^XDtHaq>VSv!D&intD&;0-K{C39HYpx)ez74UOZkKJ|k1#{YV zjj;jcLr^bp5dHB7)a1U1np+Pr8$Qp;{u@9hT`rFqfLXB}et>Q97IwtQ+#cVuTYwt7 zO{iIZ9d+S9QOhuO9*_A9^I>s3g?fO$QM2C@YI`ONY8mJElF^A3P-EHzH3V&4gPy22 z8HKvxbQiC6?n1Rcj(W3;s3E6LmsMR8MtA-Czjnfv2H*;1kr=y4Jr?3$pu`hDkc)H0okYWEdtd7eZ)@IBOZU%UED1sNKx|3YMR zq3Wm$w^9Yhp~ifID_`RL0<|w3MlG+CsMYZr^J8&7+7vg(8aN&s;5VoTNn6-nHy?U+ zqbg*y=eNSV*cY?oEYzpiXQ+0^P@m^FT>J+0;Mv0L1xujn>tP=3>B^^K0pb-dK8hNW z8)2+}y~%wFn&T7H?5q`TXZ=`=BA$hs3ujU7@1Wk~5$ZyIMeNw8Mh#^MYGW#dnsn{4 zCdQ&>{W{c~x>>|)pX?z8dVusrZBM+9db5$J8_ss|0@Mw+ICnV@Vj;@E#m4v;k770c zaZoq%FK&l62sIS>QP=I~C8HCDVlzC9T8^1Z*c;VDO{(S?j$^Pqu0vhuI_g2g`A0!b zuIi|`HHKmz)KJcFiP?K*a zmc|39H+q6vj;~OYIiQT)s&ir(aeGwziO6-lW(OJdz)7rw*~{84i$Og|JnBN@P<#Je zEQTjhZ}JLt<8I~btdBuWhzO7Gce;ko@u=mq3)S^^ zQBRz)yxpjxQE>ulvaZF7coWql*(=y~4N*fm(#4yxIPo>q`Kc;$AFcl?WYn+^YQy;y zwH#NYHjurjuD|5sJJ^EQQ_1a&s5kD68p58a>kLBm;4sX9(@{gW47HqhpjWf=dosG= zCDb1N81+UkF%nBv_Lza#2ld9+QOheN()Lhe)OjON*BOWE@&%}&+kkq2eW=NJ8r4$| zB3b{+THIvAm8t-&D2dmqty#Xw<&Z64e8rpgz1d zIrm~H@yV*Je`Ov~pp7A2HMi_gPuv`Xu^TqUp{Suciq-KI*2YTJ?Xnz;`G|L5L%f6< zngTWKgB3@8AE<&FswgiR&ECeSu4;w4VI1noN4t0qs%KWC+HG~^M_lY?3OL+k%48O`#XwLHF|sE9*}+hI98gR1whZNDGnMNP8es5gj4 zjrAC8h6k}GW{CFq{^I!_s>|1*=F(==1Am9%TL0&L8GhHpVpN3Hv0H5`r`Ndwqp3fK z`oa=Y*S>K*)avMrv3LgCVflJ?gPM)H?qANr_3ip^iRrZdr;yPb&BL;|8LQw;tcAH7 z*jfHQmM2cc2t46p)6njm6;S7oMRoZ$R1ZBtP44hU_PlP+h3M5fKTSp_1~j%iUlr67 z_d#{-LR8mYLyc|mCU(n?#74v)qE^R`SRV^D^_VU=0QDeeP(2sa%;WoiM6FQqre>^v zHGJv{S~U0g{zSR}wej4*)|j(}$M;w4!C060H0nlK-}9Jm7=s=0h>P>J^q5Y>Q=Gpz zqgvVW<<5Uwd2K<**4D3_+1l86sPjDP24&jXNjVD(5+BCG_yE&ja67xl=Rw7daRjz^ z@p;rLxrv&DFTG^6F7=;y!XX${Q3W+5(WuEZ0=31Sb6!C$ubZgz9-{V(%pL63TLg8T zNK|=k)P35a)_*)|Zg?k=(K6eMJMal=`K{|{Crj>5b{Vxqz3F5Su1lj;VBVU|Aj!=yTvChmwD^O>k2`qFt9J;XZN zlEVC$7o>UQH3#zh(f>0k;LEN_a4r9bnvgoCy0Q<*Ym3$~iuOe*pNfg7eV{4%SLD;W z_Ae;wPyRM(y2?n2v`I!*$1ze$WiST^}sEy=0Hl%JT`t}XV zv^wq*r>9)UCGr(rJ~Me8p-yensi^yfIFY>WZ*ovDg93dw)A6%wto$eLLdvV_v%XVT zADIM|OzR3R2is_*Hr=emB7h+ENj?MgB`~p z?^r^&U+jNekfh_r;%o4U(52s@ApkhFAt{jYDV zI=WGK3jd^`J|3C8zN0eb+A?+U32biR&%Vh1F*%QGr=l~Y1+I?$%J<)Nzas8JnnS9^ zwb++TRvd)h_sDFeVw=0jXyWz6mq|ZRru9CDvIlR&t&; zu40r;!3*x%naJz-i&UGk3G6?w zeh)Wto{mYxpOQ9F#)kU;9aAaU;L5*rwN2T7{yT!HtjPs-ymN9v;xCE+{I3;DlX#Ge z^OH|W8-DdOpHh~Nd?0xp3&__aKc0LaCF1j{;FwGPIdvV=+t~MWHH9Y=JtebxvyjvA zgT?o=BxTdcwRLs#@E-AWti+|xk?%+T0H!3?am1)Kq!+@y7G zQ!w!~T0zR?8t{d{G;(>JT#Wp1ccFc*{04qSiXa7$uG8)*sXOT-VjTlHXBA1WUW&vQ z1asfjJtO{9gEE5#O9}M-H?O-1S;H5+|Bg^{{?sL4M%U&J_4=c{j@jhnZPqNKY^*CU zOnEr@$<$>b1(L6i+enM48|USRj^n7$zlAu=SHdq&G%i5=8}VjbhL1@N$?G#RgDy-y z1a&+kuVbvU2l-6opWyeTLZq&ww?`-HyzMzTl8nb)ME`?3hBV8?)3C3~+(kd+?1AJf z;u%*~fP63VjomqKZ?K=T_g!$7{1)=JN%|^NkG3EBu_y-<@N15Fh~p_-OVS7MD$-ch z5%cZA^doI0Wh7Oh>?X!guOl`2&XoOyI{ch}kY7gL-&e}@$qyiojb~S$E&dE%E z5-Gi6uGOF94IwD$8Wf@+2X#YlOTZL?U93cFF{58*cCR!I8qd;7j3Ul_YwIqvaJXv&9^4w8a=rF_*Pzsu!E;lHG5l(iuZ(D*lZmHY7+g)d3rq^Beuowz}2 zoAv!{=E}2EKGfZO4rNDOo9>h~Al0QT6pK@Sg;bq@uRfID9&dNTk*=T| zjY@Nap2W4?jhf(M;!dv3N>{Ehk~D$%4zA(c%I+p_@6ej~Aayzhlkeg?m)haBOn=xj zzmT6x@>1Ci%espsC;vP7pGen8ACl6#n{T3SBI)f>p3D)_@1z&B`^dFhPhQ7F;@PBy zq#?SIj-r^I3@(9}0AT1@0qpl3)Mae&O^~uTi zqx=(ho@n(>UfK6ZMQDFO>wm91aSbPqAQdORM1v)y6QsGs%_v`h!Pt^Cl=5OE9YaW6 zsXIriM#@b6UCL5pJL0#;1M;ItO(;k~N>WAAfMlk{6;g1=wm)=8af z_6P`S)PGp$;Dr9&;!We2ela~0tHy;SUau99^q_ug|G| zYI1Au@o>MSEhnD&C#%c7SDaZCn6^<&&)CqR{re9Z6cf`usq&TmDH8A9*pn+}P(oaM zY@gVEp?zZ$LWjl1^^5EI|C%kinaMBd*zKKusanJiPKZkwk`Nc0H2T-h;h#JX^4!{) c!IQOW>Orvy{f7+d7aKdM`>sq)JXdr7A3=k~r~m)} delta 14880 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "Is actief" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Als false is ingesteld, kan dit object niet worden gezien door gebruikers " "zonder de benodigde toestemming" @@ -154,7 +155,8 @@ msgstr "Geleverd" msgid "canceled" msgstr "Geannuleerd" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Mislukt" @@ -206,8 +208,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Alleen een sleutel gebruiken om toegestane gegevens uit de cache te lezen.\n" -"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de " -"cache te schrijven." +"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de cache te schrijven." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -273,7 +274,8 @@ msgstr "" "opslaan" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Enkele velden van een bestaande attribuutgroep herschrijven door niet-" "wijzigbare velden op te slaan" @@ -328,7 +330,8 @@ msgstr "" "attributen worden opgeslagen" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaande attribuutwaarde door niet-" "wijzigbare velden op te slaan" @@ -374,7 +377,8 @@ msgstr "SEO Meta momentopname" #: engine/core/docs/drf/viewsets.py:253 msgid "returns a snapshot of the category's SEO meta data" msgstr "" -"Geeft als resultaat een momentopname van de SEO-metagegevens van de categorie" +"Geeft als resultaat een momentopname van de SEO-metagegevens van de " +"categorie" #: engine/core/docs/drf/viewsets.py:274 msgid "list all orders (simple view)" @@ -383,15 +387,16 @@ msgstr "Alle categorieën weergeven (eenvoudige weergave)" #: engine/core/docs/drf/viewsets.py:275 msgid "for non-staff users, only their own orders are returned." msgstr "" -"Voor niet-personeelsleden worden alleen hun eigen bestellingen geretourneerd." +"Voor niet-personeelsleden worden alleen hun eigen bestellingen " +"geretourneerd." #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Hoofdlettergevoelig substring zoeken in human_readable_id, order_products." -"product.name en order_products.product.partnumber" +"Hoofdlettergevoelig substring zoeken in human_readable_id, " +"order_products.product.name en order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -424,13 +429,13 @@ msgstr "Filter op bestelstatus (hoofdlettergevoelige substringmatch)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sorteer op een van: uuid, human_readable_id, user_email, gebruiker, status, " -"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend " -"(bijv. '-buy_time')." +"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend" +" (bijv. '-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -491,7 +496,8 @@ msgstr "een bestelling kopen zonder een account aan te maken" #: engine/core/docs/drf/viewsets.py:409 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"Rondt de aankoop van de bestelling af voor een niet-geregistreerde gebruiker." +"Rondt de aankoop van de bestelling af voor een niet-geregistreerde " +"gebruiker." #: engine/core/docs/drf/viewsets.py:420 msgid "add product to order" @@ -635,28 +641,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filter op een of meer attribuutnaam-/waardeparen. \n" "- **Syntaxis**: `attr_name=methode-waarde[;attr2=methode2-waarde2]...`\n" -"- **Methodes** (standaard op `icontains` indien weggelaten): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Waarde typen**: JSON wordt eerst geprobeerd (zodat je lijsten/dicten kunt " -"doorgeven), `true`/`false` voor booleans, integers, floats; anders behandeld " -"als string. \n" -"- **Base64**: prefix met `b64-` om URL-veilige base64-encodering van de ruwe " -"waarde. \n" +"- **Methodes** (standaard op `icontains` indien weggelaten): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Waarde typen**: JSON wordt eerst geprobeerd (zodat je lijsten/dicten kunt doorgeven), `true`/`false` voor booleans, integers, floats; anders behandeld als string. \n" +"- **Base64**: prefix met `b64-` om URL-veilige base64-encodering van de ruwe waarde. \n" "Voorbeelden: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -671,14 +667,11 @@ msgstr "(exacte) UUID van product" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met " -"`-` voor aflopend. \n" -"**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, " -"willekeurig" +"Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met `-` voor aflopend. \n" +"**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, willekeurig" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -794,7 +787,8 @@ msgstr "alle order-productrelaties weergeven (eenvoudige weergave)" #: engine/core/docs/drf/viewsets.py:871 msgid "retrieve a single order–product relation (detailed view)" -msgstr "een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" +msgstr "" +"een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" #: engine/core/docs/drf/viewsets.py:881 msgid "create a new order–product relation" @@ -1158,7 +1152,7 @@ msgstr "Gecachte gegevens" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-gegevens van de opgevraagde URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Alleen URL's die beginnen met http(s):// zijn toegestaan" @@ -1242,8 +1236,8 @@ msgstr "Een bestelling kopen" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Stuur de attributen als de string opgemaakt als attr1=waarde1,attr2=waarde2" @@ -1321,7 +1315,8 @@ msgstr "" "filteren." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimale en maximale prijzen voor producten in deze categorie, indien " "beschikbaar." @@ -1597,8 +1592,8 @@ msgstr "" "Vertegenwoordigt een groep attributen, die hiërarchisch kan zijn. Deze " "klasse wordt gebruikt om groepen van attributen te beheren en te " "organiseren. Een attribuutgroep kan een bovenliggende groep hebben, die een " -"hiërarchische structuur vormt. Dit kan nuttig zijn voor het categoriseren en " -"effectiever beheren van attributen in een complex systeem." +"hiërarchische structuur vormt. Dit kan nuttig zijn voor het categoriseren en" +" effectiever beheren van attributen in een complex systeem." #: engine/core/models.py:91 msgid "parent of this group" @@ -1626,8 +1621,8 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"Vertegenwoordigt een verkopersentiteit die informatie over externe verkopers " -"en hun interactievereisten kan opslaan. De klasse Vendor wordt gebruikt om " +"Vertegenwoordigt een verkopersentiteit die informatie over externe verkopers" +" en hun interactievereisten kan opslaan. De klasse Vendor wordt gebruikt om " "informatie over een externe verkoper te definiëren en te beheren. Het slaat " "de naam van de verkoper op, authenticatiegegevens die nodig zijn voor " "communicatie en het opmaakpercentage dat wordt toegepast op producten die " @@ -1688,8 +1683,8 @@ msgid "" msgstr "" "Vertegenwoordigt een producttag die wordt gebruikt om producten te " "classificeren of te identificeren. De klasse ProductTag is ontworpen om " -"producten uniek te identificeren en te classificeren door een combinatie van " -"een interne tagidentifier en een gebruiksvriendelijke weergavenaam. Het " +"producten uniek te identificeren en te classificeren door een combinatie van" +" een interne tagidentifier en een gebruiksvriendelijke weergavenaam. Het " "ondersteunt bewerkingen die geëxporteerd worden door mixins en biedt " "aanpassing van metadata voor administratieve doeleinden." @@ -1747,12 +1742,12 @@ msgstr "" "Vertegenwoordigt een categorie-entiteit voor het organiseren en groeperen " "van gerelateerde items in een hiërarchische structuur. Categorieën kunnen " "hiërarchische relaties hebben met andere categorieën, waarbij ouder-kind " -"relaties worden ondersteund. De klasse bevat velden voor metadata en visuele " -"weergave, die dienen als basis voor categorie-gerelateerde functies. Deze " -"klasse wordt meestal gebruikt om productcategorieën of andere gelijksoortige " -"groeperingen binnen een applicatie te definiëren en te beheren, waarbij " -"gebruikers of beheerders de naam, beschrijving en hiërarchie van categorieën " -"kunnen specificeren en attributen zoals afbeeldingen, tags of prioriteit " +"relaties worden ondersteund. De klasse bevat velden voor metadata en visuele" +" weergave, die dienen als basis voor categorie-gerelateerde functies. Deze " +"klasse wordt meestal gebruikt om productcategorieën of andere gelijksoortige" +" groeperingen binnen een applicatie te definiëren en te beheren, waarbij " +"gebruikers of beheerders de naam, beschrijving en hiërarchie van categorieën" +" kunnen specificeren en attributen zoals afbeeldingen, tags of prioriteit " "kunnen toekennen." #: engine/core/models.py:274 @@ -1804,7 +1799,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Vertegenwoordigt een merkobject in het systeem. Deze klasse behandelt " "informatie en attributen met betrekking tot een merk, inclusief de naam, " @@ -1854,8 +1850,8 @@ msgstr "Categorieën" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -2008,13 +2004,13 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Vertegenwoordigt een attribuut in het systeem. Deze klasse wordt gebruikt om " -"attributen te definiëren en te beheren. Dit zijn aanpasbare stukjes data die " -"kunnen worden geassocieerd met andere entiteiten. Attributen hebben " +"Vertegenwoordigt een attribuut in het systeem. Deze klasse wordt gebruikt om" +" attributen te definiëren en te beheren. Dit zijn aanpasbare stukjes data " +"die kunnen worden geassocieerd met andere entiteiten. Attributen hebben " "geassocieerde categorieën, groepen, waardetypes en namen. Het model " "ondersteunt meerdere typen waarden, waaronder string, integer, float, " "boolean, array en object. Dit maakt dynamische en flexibele " @@ -2081,12 +2077,12 @@ msgstr "Attribuut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Vertegenwoordigt een specifieke waarde voor een kenmerk dat is gekoppeld aan " -"een product. Het koppelt het 'kenmerk' aan een unieke 'waarde', wat een " +"Vertegenwoordigt een specifieke waarde voor een kenmerk dat is gekoppeld aan" +" een product. Het koppelt het 'kenmerk' aan een unieke 'waarde', wat een " "betere organisatie en dynamische weergave van productkenmerken mogelijk " "maakt." @@ -2105,8 +2101,8 @@ msgstr "De specifieke waarde voor dit kenmerk" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2155,8 +2151,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Vertegenwoordigt een promotiecampagne voor producten met een korting. Deze " "klasse wordt gebruikt om promotiecampagnes te definiëren en beheren die een " @@ -2233,8 +2229,8 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Vertegenwoordigt een documentair record gekoppeld aan een product. Deze " "klasse wordt gebruikt om informatie op te slaan over documentaires met " @@ -2258,20 +2254,20 @@ msgstr "Onopgelost" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Vertegenwoordigt een adresentiteit met locatiegegevens en associaties met " "een gebruiker. Biedt functionaliteit voor het opslaan van geografische en " "adresgegevens, evenals integratie met geocoderingsservices. Deze klasse is " -"ontworpen om gedetailleerde adresgegevens op te slaan, inclusief componenten " -"als straat, stad, regio, land en geolocatie (lengtegraad en breedtegraad). " +"ontworpen om gedetailleerde adresgegevens op te slaan, inclusief componenten" +" als straat, stad, regio, land en geolocatie (lengtegraad en breedtegraad). " "Het ondersteunt integratie met geocodering API's, waardoor de opslag van " "ruwe API antwoorden voor verdere verwerking of inspectie mogelijk wordt. De " "klasse maakt het ook mogelijk om een adres met een gebruiker te associëren, " @@ -2393,7 +2389,8 @@ msgstr "Begin geldigheidsduur" #: engine/core/models.py:1120 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet gebruikt" +"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet " +"gebruikt" #: engine/core/models.py:1121 msgid "usage timestamp" @@ -2420,8 +2417,8 @@ msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage), " -"maar niet beide of geen van beide." +"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," +" maar niet beide of geen van beide." #: engine/core/models.py:1171 msgid "promocode already used" @@ -2436,8 +2433,8 @@ msgstr "Ongeldig kortingstype voor promocode {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2538,8 +2535,8 @@ msgstr "Je kunt niet meer producten toevoegen dan er op voorraad zijn" #: engine/core/models.py:1428 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " -"is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." #: engine/core/models.py:1416 #, python-brace-format @@ -2574,8 +2571,8 @@ msgstr "Je kunt geen lege bestelling kopen!" #: engine/core/models.py:1522 msgid "you cannot buy an order without a user" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " -"is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." #: engine/core/models.py:1536 msgid "a user without a balance cannot buy with balance" @@ -2598,7 +2595,8 @@ msgstr "" msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Ongeldige betalingsmethode: {payment_method} van {available_payment_methods}!" +"Ongeldige betalingsmethode: {payment_method} van " +"{available_payment_methods}!" #: engine/core/models.py:1699 msgid "" @@ -2609,8 +2607,8 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Beheert gebruikersfeedback voor producten. Deze klasse is ontworpen om " -"feedback van gebruikers over specifieke producten die ze hebben gekocht vast " -"te leggen en op te slaan. De klasse bevat attributen voor het opslaan van " +"feedback van gebruikers over specifieke producten die ze hebben gekocht vast" +" te leggen en op te slaan. De klasse bevat attributen voor het opslaan van " "opmerkingen van gebruikers, een verwijzing naar het betreffende product in " "de bestelling en een door de gebruiker toegekende beoordeling. De klasse " "gebruikt databasevelden om feedbackgegevens effectief te modelleren en te " @@ -2625,7 +2623,8 @@ msgid "feedback comments" msgstr "Reacties" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Verwijst naar het specifieke product in een bestelling waar deze feedback " "over gaat" @@ -2662,8 +2661,8 @@ msgstr "" "het producttegoed of het toevoegen van feedback. Dit model biedt ook " "methoden en eigenschappen die bedrijfslogica ondersteunen, zoals het " "berekenen van de totaalprijs of het genereren van een download-URL voor " -"digitale producten. Het model integreert met de modellen Order en Product en " -"slaat een verwijzing ernaar op." +"digitale producten. Het model integreert met de modellen Order en Product en" +" slaat een verwijzing ernaar op." #: engine/core/models.py:1757 msgid "the price paid by the customer for this product at purchase time" @@ -2733,8 +2732,8 @@ msgstr "Verkeerde actie opgegeven voor feedback: {action}!" #: engine/core/models.py:1888 msgid "you cannot feedback an order which is not received" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " -"is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" +" is." #: engine/core/models.py:1894 msgid "name" @@ -2773,9 +2772,9 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Vertegenwoordigt de downloadfunctionaliteit voor digitale activa gekoppeld " "aan bestellingen. De DigitalAssetDownload klasse biedt de mogelijkheid om " @@ -2829,8 +2828,8 @@ msgid "No customer activity in the last 30 days." msgstr "Geen klantenactiviteit in de afgelopen 30 dagen." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Dagelijkse verkoop (30d)" +msgid "Daily sales" +msgstr "Dagelijkse verkoop" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2841,6 +2840,7 @@ msgid "Gross revenue" msgstr "Bruto-omzet" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Bestellingen" @@ -2848,6 +2848,10 @@ msgstr "Bestellingen" msgid "Gross" msgstr "Bruto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Dashboard" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Overzicht inkomsten" @@ -2876,20 +2880,32 @@ msgid "No data" msgstr "Geen datum" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Inkomsten (bruto, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Inkomsten (netto, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Retourzendingen (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Netto-inkomsten" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Verwerkte orders (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Restitutie" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Geretourneerd" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Lage voorraad" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Geen artikelen met weinig voorraad." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2904,11 +2920,11 @@ msgid "Most wished product" msgstr "Meest gewenste product" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Nog geen gegevens." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Populairste product" @@ -2944,10 +2960,6 @@ msgstr "Geen categorieverkopen in de afgelopen 30 dagen." msgid "Django site admin" msgstr "Django website beheerder" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Dashboard" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2977,8 +2989,7 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Hartelijk dank voor uw bestelling #%(order.pk)s! We zijn blij om u te " @@ -3093,8 +3104,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Bedankt voor uw bestelling! We zijn blij om uw aankoop te bevestigen. " @@ -3131,7 +3141,8 @@ msgstr "Zowel gegevens als time-out zijn vereist" #: engine/core/utils/caching.py:46 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" +msgstr "" +"Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" #: engine/core/utils/emailing.py:27 #, python-brace-format @@ -3168,7 +3179,7 @@ msgstr "" "Afbeeldingsafmetingen mogen niet groter zijn dan w{max_width} x " "h{max_height} pixels" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3177,7 +3188,7 @@ msgstr "" "terug. Het zorgt ervoor dat het antwoord de juiste inhoudstype header voor " "XML bevat." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3187,100 +3198,89 @@ msgstr "" "verwerkt het verzoek, haalt het juiste sitemap detail antwoord op en stelt " "de Content-Type header in voor XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Geeft een lijst met ondersteunde talen en de bijbehorende informatie." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Retourneert de parameters van de website als een JSON-object." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Verwerkt cachebewerkingen zoals het lezen en instellen van cachegegevens met " -"een opgegeven sleutel en time-out." +"Verwerkt cachebewerkingen zoals het lezen en instellen van cachegegevens met" +" een opgegeven sleutel en time-out." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Handelt `contact met ons` formulier inzendingen af." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"Handelt verzoeken af voor het verwerken en valideren van URL's van inkomende " -"POST-verzoeken." +"Handelt verzoeken af voor het verwerken en valideren van URL's van inkomende" +" POST-verzoeken." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Handelt globale zoekopdrachten af." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Behandelt de logica van kopen als bedrijf zonder registratie." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Handelt het downloaden af van een digitaal actief dat is gekoppeld aan een " -"bestelling.\n" -"Deze functie probeert het digitale activabestand te serveren dat zich in de " -"opslagmap van het project bevindt. Als het bestand niet wordt gevonden, " -"wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet " -"beschikbaar is." +"Handelt het downloaden af van een digitaal actief dat is gekoppeld aan een bestelling.\n" +"Deze functie probeert het digitale activabestand te serveren dat zich in de opslagmap van het project bevindt. Als het bestand niet wordt gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet beschikbaar is." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid is vereist" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "bestelproduct bestaat niet" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "U kunt het digitale goed maar één keer downloaden" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "" "de bestelling moet worden betaald voordat het digitale actief kan worden " "gedownload" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Het bestelde product heeft geen product" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon niet gevonden" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Handelt verzoeken af voor de favicon van een website.\n" -"Deze functie probeert het favicon-bestand te serveren dat zich in de " -"statische map van het project bevindt. Als het favicon-bestand niet wordt " -"gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron " -"niet beschikbaar is." +"Deze functie probeert het favicon-bestand te serveren dat zich in de statische map van het project bevindt. Als het favicon-bestand niet wordt gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet beschikbaar is." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Stuurt het verzoek door naar de admin-indexpagina. De functie handelt " @@ -3288,11 +3288,11 @@ msgstr "" "Django admin-interface. Het gebruikt Django's `redirect` functie voor het " "afhandelen van de HTTP-omleiding." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Geeft als resultaat de huidige versie van eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Geeft aangepaste variabelen voor Dashboard." @@ -3304,18 +3304,19 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Definieert een viewset voor het beheren van Evibes-gerelateerde handelingen. " -"De klasse EvibesViewSet erft van ModelViewSet en biedt functionaliteit voor " -"het afhandelen van acties en bewerkingen op Evibes-entiteiten. Het omvat " +"Definieert een viewset voor het beheren van Evibes-gerelateerde handelingen." +" De klasse EvibesViewSet erft van ModelViewSet en biedt functionaliteit voor" +" het afhandelen van acties en bewerkingen op Evibes-entiteiten. Het omvat " "ondersteuning voor dynamische serializer klassen op basis van de huidige " "actie, aanpasbare machtigingen, en rendering formaten." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Vertegenwoordigt een viewset voor het beheren van AttributeGroup objecten. " "Verwerkt bewerkingen met betrekking tot AttributeGroup, inclusief filteren, " @@ -3336,20 +3337,21 @@ msgstr "" "applicatie. Biedt een set API-eindpunten voor interactie met " "Attribuutgegevens. Deze klasse beheert het opvragen, filteren en seriëren " "van Attribuutobjecten, waardoor dynamische controle over de geretourneerde " -"gegevens mogelijk is, zoals filteren op specifieke velden of het ophalen van " -"gedetailleerde versus vereenvoudigde informatie afhankelijk van het verzoek." +"gegevens mogelijk is, zoals filteren op specifieke velden of het ophalen van" +" gedetailleerde versus vereenvoudigde informatie afhankelijk van het " +"verzoek." #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Een viewset voor het beheren van AttributeValue-objecten. Deze viewset biedt " -"functionaliteit voor het opsommen, ophalen, maken, bijwerken en verwijderen " -"van AttributeValue objecten. Het integreert met Django REST Framework's " +"Een viewset voor het beheren van AttributeValue-objecten. Deze viewset biedt" +" functionaliteit voor het opsommen, ophalen, maken, bijwerken en verwijderen" +" van AttributeValue objecten. Het integreert met Django REST Framework's " "viewset mechanismen en gebruikt passende serializers voor verschillende " "acties. Filtermogelijkheden worden geleverd door de DjangoFilterBackend." @@ -3365,8 +3367,8 @@ msgstr "" "CategoryViewSet is verantwoordelijk voor het afhandelen van bewerkingen met " "betrekking tot het categoriemodel in het systeem. Het ondersteunt het " "ophalen, filteren en seriëren van categoriegegevens. De viewset dwingt ook " -"rechten af om ervoor te zorgen dat alleen bevoegde gebruikers toegang hebben " -"tot specifieke gegevens." +"rechten af om ervoor te zorgen dat alleen bevoegde gebruikers toegang hebben" +" tot specifieke gegevens." #: engine/core/viewsets.py:326 msgid "" @@ -3410,8 +3412,8 @@ msgstr "" "Vertegenwoordigt een viewset voor het beheren van Vendor-objecten. Met deze " "viewset kunnen gegevens van een verkoper worden opgehaald, gefilterd en " "geserialiseerd. Het definieert de queryset, filter configuraties, en " -"serializer klassen gebruikt om verschillende acties af te handelen. Het doel " -"van deze klasse is om gestroomlijnde toegang te bieden tot Vendor-" +"serializer klassen gebruikt om verschillende acties af te handelen. Het doel" +" van deze klasse is om gestroomlijnde toegang te bieden tot Vendor-" "gerelateerde bronnen via het Django REST framework." #: engine/core/viewsets.py:594 @@ -3419,8 +3421,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Weergave van een weergaveset die Feedback-objecten afhandelt. Deze klasse " @@ -3436,9 +3438,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet voor het beheren van orders en gerelateerde operaties. Deze klasse " @@ -3455,15 +3457,15 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"Biedt een viewset voor het beheren van OrderProduct-entiteiten. Deze viewset " -"maakt CRUD-bewerkingen en aangepaste acties mogelijk die specifiek zijn voor " -"het OrderProduct-model. Het omvat filteren, toestemmingscontroles en " -"serializer-omschakeling op basis van de gevraagde actie. Bovendien biedt het " -"een gedetailleerde actie voor het afhandelen van feedback op OrderProduct " +"Biedt een viewset voor het beheren van OrderProduct-entiteiten. Deze viewset" +" maakt CRUD-bewerkingen en aangepaste acties mogelijk die specifiek zijn " +"voor het OrderProduct-model. Het omvat filteren, toestemmingscontroles en " +"serializer-omschakeling op basis van de gevraagde actie. Bovendien biedt het" +" een gedetailleerde actie voor het afhandelen van feedback op OrderProduct " "instanties" #: engine/core/viewsets.py:879 @@ -3476,8 +3478,8 @@ msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." msgstr "" -"Beheert het ophalen en afhandelen van PromoCode-instanties via verschillende " -"API-acties." +"Beheert het ophalen en afhandelen van PromoCode-instanties via verschillende" +" API-acties." #: engine/core/viewsets.py:914 msgid "Represents a view set for managing promotions. " @@ -3492,8 +3494,8 @@ msgstr "" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3515,9 +3517,9 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Deze klasse biedt viewsetfunctionaliteit voor het beheren van `Adres`-" -"objecten. De klasse AddressViewSet maakt CRUD-bewerkingen, filteren en " -"aangepaste acties met betrekking tot adresentiteiten mogelijk. Het bevat " +"Deze klasse biedt viewsetfunctionaliteit voor het beheren van " +"`Adres`-objecten. De klasse AddressViewSet maakt CRUD-bewerkingen, filteren " +"en aangepaste acties met betrekking tot adresentiteiten mogelijk. Het bevat " "gespecialiseerde gedragingen voor verschillende HTTP methoden, serializer " "omzeilingen en toestemmingsafhandeling gebaseerd op de verzoekcontext." @@ -3535,8 +3537,8 @@ msgid "" "serializers based on the action being performed." msgstr "" "Behandelt bewerkingen met betrekking tot Product Tags binnen de applicatie. " -"Deze klasse biedt functionaliteit voor het ophalen, filteren en serialiseren " -"van Product Tag objecten. Het ondersteunt flexibel filteren op specifieke " +"Deze klasse biedt functionaliteit voor het ophalen, filteren en serialiseren" +" van Product Tag objecten. Het ondersteunt flexibel filteren op specifieke " "attributen met behulp van de gespecificeerde filter backend en gebruikt " "dynamisch verschillende serializers op basis van de actie die wordt " "uitgevoerd." diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.mo b/engine/core/locale/no_NO/LC_MESSAGES/django.mo index a47aa432ca5308e943ce67f28b564c83059fcef4..ce166568760ba6446734778bf2707e8ff3dc6a94 100644 GIT binary patch delta 14878 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 dmE{{us*t8)MV delta 14869 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 Yd!wAbr4;Yno6$3-%Fft&o)!iE4}jFG3IG5A diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.po b/engine/core/locale/no_NO/LC_MESSAGES/django.po index 83b3463f..46dfb593 100644 --- a/engine/core/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/core/locale/no_NO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -28,7 +28,8 @@ msgstr "Er aktiv" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Hvis dette objektet er satt til false, kan det ikke ses av brukere uten " "nødvendig tillatelse" @@ -155,7 +156,8 @@ msgstr "Leveres" msgid "canceled" msgstr "Avlyst" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Mislyktes" @@ -193,8 +195,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"OpenApi3-skjema for dette API-et. Format kan velges via innholdsforhandling. " -"Språk kan velges både med Accept-Language og spørringsparameteren." +"OpenApi3-skjema for dette API-et. Format kan velges via innholdsforhandling." +" Språk kan velges både med Accept-Language og spørringsparameteren." #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 msgid "cache I/O" @@ -206,8 +208,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Bruk bare en nøkkel for å lese tillatte data fra hurtigbufferen.\n" -"Bruk nøkkel, data og tidsavbrudd med autentisering for å skrive data til " -"hurtigbufferen." +"Bruk nøkkel, data og tidsavbrudd med autentisering for å skrive data til hurtigbufferen." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -272,7 +273,8 @@ msgstr "" "attributter" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Skriv om noen av feltene i en eksisterende attributtgruppe for å lagre ikke-" "redigerbare felt" @@ -327,7 +329,8 @@ msgstr "" "attributter" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Skriv om noen av feltene i en eksisterende attributtverdi og lagre ikke-" "redigerbare felt" @@ -384,8 +387,8 @@ msgstr "For ikke-ansatte brukere returneres bare deres egne bestillinger." #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Søk etter store og små bokstaver på tvers av human_readable_id, " "order_products.product.name og order_products.product.partnumber" @@ -420,13 +423,13 @@ msgstr "Filtrer etter ordrestatus (skiller mellom store og små bokstaver)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Bestill etter en av: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. Prefiks med '-' for synkende rekkefølge " -"(f.eks. '-buy_time')." +"created, modified, buy_time, random. Prefiks med '-' for synkende rekkefølge" +" (f.eks. '-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -497,8 +500,8 @@ msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Legger til et produkt i en bestilling ved hjelp av de angitte `product_uuid` " -"og `attributtene`." +"Legger til et produkt i en bestilling ved hjelp av de angitte `product_uuid`" +" og `attributtene`." #: engine/core/docs/drf/viewsets.py:429 msgid "add a list of products to order, quantities will not count" @@ -598,7 +601,8 @@ msgstr "Fjern et produkt fra ønskelisten" #: engine/core/docs/drf/viewsets.py:524 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" -"Fjerner et produkt fra en ønskeliste ved hjelp av den angitte `product_uuid`." +"Fjerner et produkt fra en ønskeliste ved hjelp av den angitte " +"`product_uuid`." #: engine/core/docs/drf/viewsets.py:532 msgid "add many products to wishlist" @@ -625,28 +629,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrer etter ett eller flere attributtnavn/verdipar. \n" "- **Syntaks**: `attr_name=metode-verdi[;attr2=metode2-verdi2]...`.\n" -"- **Metoder** (standardinnstilling er `icontains` hvis utelatt): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- **Vertyping av verdi**: JSON forsøkes først (slik at du kan sende lister/" -"dikter), `true`/`false` for booleans, heltall, floats; ellers behandlet som " -"streng. \n" -"- **Base64**: prefiks med `b64-` for URL-sikker base64-koding av " -"råverdien. \n" +"- **Metoder** (standardinnstilling er `icontains` hvis utelatt): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Vertyping av verdi**: JSON forsøkes først (slik at du kan sende lister/dikter), `true`/`false` for booleans, heltall, floats; ellers behandlet som streng. \n" +"- **Base64**: prefiks med `b64-` for URL-sikker base64-koding av råverdien. \n" "Eksempler: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-beskrivelse=icontains-aGVhdC1jb2xk`" @@ -661,12 +655,10 @@ msgstr "(nøyaktig) Produkt UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommaseparert liste over felt som skal sorteres etter. Prefiks med `-` for " -"synkende sortering. \n" +"Kommaseparert liste over felt som skal sorteres etter. Prefiks med `-` for synkende sortering. \n" "**Tillatt:** uuid, vurdering, navn, slug, opprettet, endret, pris, tilfeldig" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -1141,7 +1133,7 @@ msgstr "Bufret data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-data fra den forespurte URL-en" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Bare nettadresser som begynner med http(s):// er tillatt" @@ -1226,8 +1218,8 @@ msgstr "Kjøp en ordre" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Send attributtene som en streng formatert som attr1=verdi1,attr2=verdi2" @@ -1301,10 +1293,12 @@ msgstr "Påslag i prosent" #: engine/core/graphene/object_types.py:199 msgid "which attributes and values can be used for filtering this category." msgstr "" -"Hvilke attributter og verdier som kan brukes til å filtrere denne kategorien." +"Hvilke attributter og verdier som kan brukes til å filtrere denne " +"kategorien." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimums- og maksimumspriser for produkter i denne kategorien, hvis " "tilgjengelig." @@ -1516,8 +1510,7 @@ msgstr "Telefonnummer til selskapet" #: engine/core/graphene/object_types.py:680 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"\"e-post fra\", noen ganger må den brukes i stedet for vertsbrukerverdien" +msgstr "\"e-post fra\", noen ganger må den brukes i stedet for vertsbrukerverdien" #: engine/core/graphene/object_types.py:681 msgid "email host user" @@ -1576,11 +1569,11 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"Representerer en gruppe attributter, som kan være hierarkiske. Denne klassen " -"brukes til å administrere og organisere attributtgrupper. En attributtgruppe " -"kan ha en overordnet gruppe som danner en hierarkisk struktur. Dette kan " -"være nyttig for å kategorisere og administrere attributter på en mer " -"effektiv måte i et komplekst system." +"Representerer en gruppe attributter, som kan være hierarkiske. Denne klassen" +" brukes til å administrere og organisere attributtgrupper. En " +"attributtgruppe kan ha en overordnet gruppe som danner en hierarkisk " +"struktur. Dette kan være nyttig for å kategorisere og administrere " +"attributter på en mer effektiv måte i et komplekst system." #: engine/core/models.py:91 msgid "parent of this group" @@ -1609,8 +1602,8 @@ msgid "" "use in systems that interact with third-party vendors." msgstr "" "Representerer en leverandørenhet som kan lagre informasjon om eksterne " -"leverandører og deres interaksjonskrav. Vendor-klassen brukes til å definere " -"og administrere informasjon knyttet til en ekstern leverandør. Den lagrer " +"leverandører og deres interaksjonskrav. Vendor-klassen brukes til å definere" +" og administrere informasjon knyttet til en ekstern leverandør. Den lagrer " "leverandørens navn, autentiseringsdetaljer som kreves for kommunikasjon, og " "prosentmarkeringen som brukes på produkter som hentes fra leverandøren. " "Denne modellen inneholder også ytterligere metadata og begrensninger, noe " @@ -1668,8 +1661,8 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "Representerer en produkttagg som brukes til å klassifisere eller " -"identifisere produkter. ProductTag-klassen er utformet for å identifisere og " -"klassifisere produkter på en unik måte ved hjelp av en kombinasjon av en " +"identifisere produkter. ProductTag-klassen er utformet for å identifisere og" +" klassifisere produkter på en unik måte ved hjelp av en kombinasjon av en " "intern tagg-identifikator og et brukervennlig visningsnavn. Den støtter " "operasjoner som eksporteres gjennom mixins, og gir metadatatilpasning for " "administrative formål." @@ -1702,8 +1695,8 @@ msgid "" msgstr "" "Representerer en kategorikode som brukes for produkter. Denne klassen " "modellerer en kategorikode som kan brukes til å knytte til og klassifisere " -"produkter. Den inneholder attributter for en intern tagg-identifikator og et " -"brukervennlig visningsnavn." +"produkter. Den inneholder attributter for en intern tagg-identifikator og et" +" brukervennlig visningsnavn." #: engine/core/models.py:254 msgid "category tag" @@ -1726,8 +1719,8 @@ msgid "" "priority." msgstr "" "Representerer en kategorienhet for å organisere og gruppere relaterte " -"elementer i en hierarkisk struktur. Kategorier kan ha hierarkiske relasjoner " -"med andre kategorier, noe som støtter foreldre-barn-relasjoner. Klassen " +"elementer i en hierarkisk struktur. Kategorier kan ha hierarkiske relasjoner" +" med andre kategorier, noe som støtter foreldre-barn-relasjoner. Klassen " "inneholder felt for metadata og visuell representasjon, som danner " "grunnlaget for kategorirelaterte funksjoner. Denne klassen brukes vanligvis " "til å definere og administrere produktkategorier eller andre lignende " @@ -1784,7 +1777,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Representerer et merkevareobjekt i systemet. Denne klassen håndterer " "informasjon og attributter knyttet til et merke, inkludert navn, logoer, " @@ -1834,16 +1828,16 @@ msgstr "Kategorier" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"Representerer lagerbeholdningen til et produkt som administreres i systemet. " -"Denne klassen gir informasjon om forholdet mellom leverandører, produkter og " -"deres lagerinformasjon, samt lagerrelaterte egenskaper som pris, " +"Representerer lagerbeholdningen til et produkt som administreres i systemet." +" Denne klassen gir informasjon om forholdet mellom leverandører, produkter " +"og deres lagerinformasjon, samt lagerrelaterte egenskaper som pris, " "innkjøpspris, antall, SKU og digitale eiendeler. Den er en del av " "lagerstyringssystemet for å muliggjøre sporing og evaluering av produkter " "som er tilgjengelige fra ulike leverandører." @@ -1987,8 +1981,8 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Representerer et attributt i systemet. Denne klassen brukes til å definere " @@ -2049,7 +2043,8 @@ msgstr "er filtrerbar" #: engine/core/models.py:759 msgid "designates whether this attribute can be used for filtering or not" msgstr "" -"Hvilke attributter og verdier som kan brukes til å filtrere denne kategorien." +"Hvilke attributter og verdier som kan brukes til å filtrere denne " +"kategorien." #: engine/core/models.py:771 engine/core/models.py:789 #: engine/core/templates/digital_order_delivered_email.html:134 @@ -2058,9 +2053,9 @@ msgstr "Attributt" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representerer en spesifikk verdi for et attributt som er knyttet til et " "produkt. Den knytter \"attributtet\" til en unik \"verdi\", noe som gir " @@ -2081,14 +2076,14 @@ msgstr "Den spesifikke verdien for dette attributtet" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Representerer et produktbilde som er knyttet til et produkt i systemet. " -"Denne klassen er utviklet for å administrere bilder for produkter, inkludert " -"funksjonalitet for å laste opp bildefiler, knytte dem til spesifikke " +"Denne klassen er utviklet for å administrere bilder for produkter, inkludert" +" funksjonalitet for å laste opp bildefiler, knytte dem til spesifikke " "produkter og bestemme visningsrekkefølgen. Den inneholder også en " "tilgjengelighetsfunksjon med alternativ tekst for bildene." @@ -2130,11 +2125,11 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Representerer en kampanje for produkter med rabatt. Denne klassen brukes til " -"å definere og administrere kampanjekampanjer som tilbyr en prosentbasert " +"Representerer en kampanje for produkter med rabatt. Denne klassen brukes til" +" å definere og administrere kampanjekampanjer som tilbyr en prosentbasert " "rabatt for produkter. Klassen inneholder attributter for å angi " "rabattsatsen, gi detaljer om kampanjen og knytte den til de aktuelle " "produktene. Den integreres med produktkatalogen for å finne de berørte " @@ -2179,8 +2174,8 @@ msgid "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"Representerer en brukers ønskeliste for lagring og administrasjon av ønskede " -"produkter. Klassen tilbyr funksjonalitet for å administrere en samling " +"Representerer en brukers ønskeliste for lagring og administrasjon av ønskede" +" produkter. Klassen tilbyr funksjonalitet for å administrere en samling " "produkter, og støtter operasjoner som å legge til og fjerne produkter, samt " "operasjoner for å legge til og fjerne flere produkter samtidig." @@ -2206,11 +2201,11 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Representerer en dokumentarpost knyttet til et produkt. Denne klassen brukes " -"til å lagre informasjon om dokumentarer knyttet til bestemte produkter, " +"Representerer en dokumentarpost knyttet til et produkt. Denne klassen brukes" +" til å lagre informasjon om dokumentarer knyttet til bestemte produkter, " "inkludert filopplastinger og metadata for disse. Den inneholder metoder og " "egenskaper for å håndtere filtype og lagringsbane for dokumentarfilene. Den " "utvider funksjonaliteten fra spesifikke mixins og tilbyr flere tilpassede " @@ -2230,23 +2225,23 @@ msgstr "Uavklart" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representerer en adresseenhet som inneholder stedsdetaljer og assosiasjoner " "til en bruker. Tilbyr funksjonalitet for lagring av geografiske data og " "adressedata, samt integrering med geokodingstjenester. Denne klassen er " -"utformet for å lagre detaljert adresseinformasjon, inkludert komponenter som " -"gate, by, region, land og geolokalisering (lengde- og breddegrad). Den " +"utformet for å lagre detaljert adresseinformasjon, inkludert komponenter som" +" gate, by, region, land og geolokalisering (lengde- og breddegrad). Den " "støtter integrasjon med API-er for geokoding, og gjør det mulig å lagre rå " -"API-svar for videre behandling eller inspeksjon. Klassen gjør det også mulig " -"å knytte en adresse til en bruker, noe som gjør det enklere å tilpasse " +"API-svar for videre behandling eller inspeksjon. Klassen gjør det også mulig" +" å knytte en adresse til en bruker, noe som gjør det enklere å tilpasse " "datahåndteringen." #: engine/core/models.py:1029 @@ -2312,11 +2307,11 @@ msgid "" msgstr "" "Representerer en kampanjekode som kan brukes til rabatter, og styrer dens " "gyldighet, rabattype og anvendelse. PromoCode-klassen lagrer informasjon om " -"en kampanjekode, inkludert dens unike identifikator, rabattegenskaper (beløp " -"eller prosent), gyldighetsperiode, tilknyttet bruker (hvis noen) og status " +"en kampanjekode, inkludert dens unike identifikator, rabattegenskaper (beløp" +" eller prosent), gyldighetsperiode, tilknyttet bruker (hvis noen) og status " "for bruken av den. Den inneholder funksjonalitet for å validere og bruke " -"kampanjekoden på en bestilling, samtidig som den sikrer at begrensningene er " -"oppfylt." +"kampanjekoden på en bestilling, samtidig som den sikrer at begrensningene er" +" oppfylt." #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" @@ -2361,7 +2356,8 @@ msgstr "Start gyldighetstid" #: engine/core/models.py:1120 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Tidsstempel for når kampanjekoden ble brukt, tomt hvis den ikke er brukt ennå" +"Tidsstempel for når kampanjekoden ble brukt, tomt hvis den ikke er brukt " +"ennå" #: engine/core/models.py:1121 msgid "usage timestamp" @@ -2404,18 +2400,18 @@ msgstr "Ugyldig rabattype for kampanjekode {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Representerer en bestilling som er lagt inn av en bruker. Denne klassen " "modellerer en bestilling i applikasjonen, inkludert ulike attributter som " -"fakturerings- og leveringsinformasjon, status, tilknyttet bruker, varsler og " -"relaterte operasjoner. Bestillinger kan ha tilknyttede produkter, kampanjer " -"kan brukes, adresser kan angis, og frakt- eller faktureringsopplysninger kan " -"oppdateres. På samme måte støtter funksjonaliteten håndtering av produktene " -"i bestillingens livssyklus." +"fakturerings- og leveringsinformasjon, status, tilknyttet bruker, varsler og" +" relaterte operasjoner. Bestillinger kan ha tilknyttede produkter, kampanjer" +" kan brukes, adresser kan angis, og frakt- eller faktureringsopplysninger " +"kan oppdateres. På samme måte støtter funksjonaliteten håndtering av " +"produktene i bestillingens livssyklus." #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2574,8 +2570,8 @@ msgid "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." msgstr "" -"Håndterer brukernes tilbakemeldinger på produkter. Denne klassen er utformet " -"for å fange opp og lagre tilbakemeldinger fra brukerne om spesifikke " +"Håndterer brukernes tilbakemeldinger på produkter. Denne klassen er utformet" +" for å fange opp og lagre tilbakemeldinger fra brukerne om spesifikke " "produkter de har kjøpt. Den inneholder attributter for å lagre " "brukerkommentarer, en referanse til det relaterte produktet i bestillingen " "og en brukertildelt vurdering. Klassen bruker databasefelt for å modellere " @@ -2590,10 +2586,11 @@ msgid "feedback comments" msgstr "Tilbakemeldinger og kommentarer" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Refererer til det spesifikke produktet i en ordre som denne tilbakemeldingen " -"handler om" +"Refererer til det spesifikke produktet i en ordre som denne tilbakemeldingen" +" handler om" #: engine/core/models.py:1720 msgid "related order product" @@ -2737,12 +2734,12 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"Representerer nedlastingsfunksjonaliteten for digitale ressurser knyttet til " -"bestillinger. DigitalAssetDownload-klassen gir mulighet til å administrere " +"Representerer nedlastingsfunksjonaliteten for digitale ressurser knyttet til" +" bestillinger. DigitalAssetDownload-klassen gir mulighet til å administrere " "og få tilgang til nedlastinger knyttet til bestillingsprodukter. Den " "inneholder informasjon om det tilknyttede bestillingsproduktet, antall " "nedlastinger og om ressursen er offentlig synlig. Den inneholder en metode " @@ -2793,8 +2790,8 @@ msgid "No customer activity in the last 30 days." msgstr "Ingen kundeaktivitet de siste 30 dagene." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Daglig salg (30d)" +msgid "Daily sales" +msgstr "Daglig salg" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2805,6 +2802,7 @@ msgid "Gross revenue" msgstr "Brutto inntekter" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Bestillinger" @@ -2812,6 +2810,10 @@ msgstr "Bestillinger" msgid "Gross" msgstr "Brutto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Dashbord" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Oversikt over inntekter" @@ -2840,20 +2842,32 @@ msgid "No data" msgstr "Ingen dato" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Inntekter (brutto, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Inntekter (netto, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Returnerer (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Netto inntekter" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Behandlede bestillinger (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Refusjonsgrad" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Returneres" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Lav lagerbeholdning" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Ingen varer med lav lagerbeholdning." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2868,11 +2882,11 @@ msgid "Most wished product" msgstr "Mest ønskede produkt" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Ingen data ennå." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Mest populære produkt" @@ -2908,10 +2922,6 @@ msgstr "Ingen kategorisalg de siste 30 dagene." msgid "Django site admin" msgstr "Django site admin" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Dashbord" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2941,13 +2951,12 @@ msgstr "Hallo %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Takk for din bestilling #%(order.pk)s! Vi er glade for å informere deg om at " -"vi har tatt bestillingen din i arbeid. Nedenfor er detaljene i bestillingen " -"din:" +"Takk for din bestilling #%(order.pk)s! Vi er glade for å informere deg om at" +" vi har tatt bestillingen din i arbeid. Nedenfor er detaljene i bestillingen" +" din:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -3057,8 +3066,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Takk for bestillingen din! Vi er glade for å kunne bekrefte kjøpet ditt. " @@ -3131,15 +3139,15 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Bildedimensjonene bør ikke overstige b{max_width} x h{max_height} piksler!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -"Håndterer forespørselen om områdekartindeksen og returnerer et XML-svar. Den " -"sørger for at svaret inneholder riktig innholdstypeoverskrift for XML." +"Håndterer forespørselen om områdekartindeksen og returnerer et XML-svar. Den" +" sørger for at svaret inneholder riktig innholdstypeoverskrift for XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3149,17 +3157,17 @@ msgstr "" "behandler forespørselen, henter det aktuelle detaljsvaret for områdekartet " "og angir overskriften Content-Type for XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returnerer en liste over språk som støttes, med tilhørende informasjon." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnerer nettstedets parametere som et JSON-objekt." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3167,79 +3175,70 @@ msgstr "" "Håndterer cache-operasjoner som lesing og innstilling av cachedata med en " "spesifisert nøkkel og tidsavbrudd." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Håndterer innsendinger av `kontakt oss`-skjemaer." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"Håndterer forespørsler om behandling og validering av URL-er fra innkommende " -"POST-forespørsler." +"Håndterer forespørsler om behandling og validering av URL-er fra innkommende" +" POST-forespørsler." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Håndterer globale søk." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Håndterer logikken med å kjøpe som en bedrift uten registrering." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Håndterer nedlastingen av en digital ressurs som er knyttet til en " -"bestilling.\n" -"Denne funksjonen forsøker å levere den digitale ressursfilen som ligger i " -"lagringskatalogen til prosjektet. Hvis filen ikke blir funnet, vises en HTTP " -"404-feil for å indikere at ressursen ikke er tilgjengelig." +"Håndterer nedlastingen av en digital ressurs som er knyttet til en bestilling.\n" +"Denne funksjonen forsøker å levere den digitale ressursfilen som ligger i lagringskatalogen til prosjektet. Hvis filen ikke blir funnet, vises en HTTP 404-feil for å indikere at ressursen ikke er tilgjengelig." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid er påkrevd" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "ordreproduktet eksisterer ikke" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Du kan bare laste ned den digitale ressursen én gang" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "bestillingen må betales før nedlasting av den digitale ressursen" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Ordreproduktet har ikke et produkt" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon ble ikke funnet" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Håndterer forespørsler om faviconet til et nettsted.\n" -"Denne funksjonen forsøker å vise favicon-filen som ligger i den statiske " -"katalogen i prosjektet. Hvis favicon-filen ikke blir funnet, vises en HTTP " -"404-feil for å indikere at ressursen ikke er tilgjengelig." +"Denne funksjonen forsøker å vise favicon-filen som ligger i den statiske katalogen i prosjektet. Hvis favicon-filen ikke blir funnet, vises en HTTP 404-feil for å indikere at ressursen ikke er tilgjengelig." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Omdirigerer forespørselen til admin-indekssiden. Funksjonen håndterer " @@ -3247,11 +3246,11 @@ msgstr "" "administrasjonsgrensesnittet. Den bruker Djangos `redirect`-funksjon for å " "håndtere HTTP-omdirigeringen." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Returnerer gjeldende versjon av eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Returnerer egendefinerte variabler for Dashboard." @@ -3271,10 +3270,11 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representerer et visningssett for håndtering av AttributeGroup-objekter. " "Håndterer operasjoner knyttet til AttributeGroup, inkludert filtrering, " @@ -3291,20 +3291,20 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Håndterer operasjoner knyttet til Attribute-objekter i applikasjonen. Tilbyr " -"et sett med API-endepunkter for interaksjon med attributtdata. Denne klassen " -"håndterer spørring, filtrering og serialisering av Attribute-objekter, noe " -"som gir dynamisk kontroll over dataene som returneres, for eksempel " -"filtrering etter bestemte felt eller henting av detaljert versus forenklet " -"informasjon avhengig av forespørselen." +"Håndterer operasjoner knyttet til Attribute-objekter i applikasjonen. Tilbyr" +" et sett med API-endepunkter for interaksjon med attributtdata. Denne " +"klassen håndterer spørring, filtrering og serialisering av Attribute-" +"objekter, noe som gir dynamisk kontroll over dataene som returneres, for " +"eksempel filtrering etter bestemte felt eller henting av detaljert versus " +"forenklet informasjon avhengig av forespørselen." #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Et visningssett for administrasjon av AttributeValue-objekter. Dette " "visningssettet inneholder funksjonalitet for å liste opp, hente, opprette, " @@ -3353,8 +3353,8 @@ msgstr "" "filtrering, serialisering og operasjoner på spesifikke forekomster. Den " "utvides fra `EvibesViewSet` for å bruke felles funksjonalitet og integreres " "med Django REST-rammeverket for RESTful API-operasjoner. Inkluderer metoder " -"for å hente produktdetaljer, tildele tillatelser og få tilgang til relaterte " -"tilbakemeldinger om et produkt." +"for å hente produktdetaljer, tildele tillatelser og få tilgang til relaterte" +" tilbakemeldinger om et produkt." #: engine/core/viewsets.py:574 msgid "" @@ -3366,9 +3366,9 @@ msgid "" msgstr "" "Representerer et visningssett for håndtering av Vendor-objekter. Dette " "visningssettet gjør det mulig å hente, filtrere og serialisere Vendor-data. " -"Den definerer spørresettet, filterkonfigurasjonene og serialiseringsklassene " -"som brukes til å håndtere ulike handlinger. Formålet med denne klassen er å " -"gi strømlinjeformet tilgang til Vendor-relaterte ressurser gjennom Django " +"Den definerer spørresettet, filterkonfigurasjonene og serialiseringsklassene" +" som brukes til å håndtere ulike handlinger. Formålet med denne klassen er å" +" gi strømlinjeformet tilgang til Vendor-relaterte ressurser gjennom Django " "REST-rammeverket." #: engine/core/viewsets.py:594 @@ -3376,8 +3376,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representasjon av et visningssett som håndterer Feedback-objekter. Denne " @@ -3393,9 +3393,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet for håndtering av bestillinger og relaterte operasjoner. Denne " @@ -3404,22 +3404,22 @@ msgstr "" "ordreoperasjoner, for eksempel å legge til eller fjerne produkter, utføre " "kjøp for både registrerte og uregistrerte brukere og hente den aktuelle " "autentiserte brukerens ventende bestillinger. ViewSet bruker flere " -"serialisatorer basert på den spesifikke handlingen som utføres, og håndhever " -"tillatelser i samsvar med dette under samhandling med ordredata." +"serialisatorer basert på den spesifikke handlingen som utføres, og håndhever" +" tillatelser i samsvar med dette under samhandling med ordredata." #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Tilbyr et visningssett for håndtering av OrderProduct-enheter. Dette " -"visningssettet muliggjør CRUD-operasjoner og egendefinerte handlinger som er " -"spesifikke for OrderProduct-modellen. Det inkluderer filtrering, kontroll av " -"tillatelser og bytte av serializer basert på den forespurte handlingen. I " -"tillegg inneholder det en detaljert handling for håndtering av " +"visningssettet muliggjør CRUD-operasjoner og egendefinerte handlinger som er" +" spesifikke for OrderProduct-modellen. Det inkluderer filtrering, kontroll " +"av tillatelser og bytte av serializer basert på den forespurte handlingen. I" +" tillegg inneholder det en detaljert handling for håndtering av " "tilbakemeldinger på OrderProduct-instanser" #: engine/core/viewsets.py:879 @@ -3431,8 +3431,8 @@ msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." msgstr "" -"Administrerer henting og håndtering av PromoCode-instanser gjennom ulike API-" -"handlinger." +"Administrerer henting og håndtering av PromoCode-instanser gjennom ulike " +"API-handlinger." #: engine/core/viewsets.py:914 msgid "Represents a view set for managing promotions. " @@ -3446,8 +3446,8 @@ msgstr "Håndterer operasjoner knyttet til lagerdata i systemet." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3457,8 +3457,8 @@ msgstr "" "gjør det mulig å hente, endre og tilpasse produkter i ønskelisten. Dette " "ViewSetet legger til rette for funksjonalitet som å legge til, fjerne og " "utføre massehandlinger for ønskelisteprodukter. Tillatelseskontroller er " -"integrert for å sikre at brukere bare kan administrere sine egne ønskelister " -"med mindre eksplisitte tillatelser er gitt." +"integrert for å sikre at brukere bare kan administrere sine egne ønskelister" +" med mindre eksplisitte tillatelser er gitt." #: engine/core/viewsets.py:1056 msgid "" @@ -3468,11 +3468,11 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"Denne klassen tilbyr visningssettfunksjonalitet for håndtering av `Address`-" -"objekter. AddressViewSet-klassen muliggjør CRUD-operasjoner, filtrering og " -"egendefinerte handlinger knyttet til adresseenheter. Den inkluderer " -"spesialisert atferd for ulike HTTP-metoder, overstyring av serializer og " -"håndtering av tillatelser basert på forespørselskonteksten." +"Denne klassen tilbyr visningssettfunksjonalitet for håndtering av " +"`Address`-objekter. AddressViewSet-klassen muliggjør CRUD-operasjoner, " +"filtrering og egendefinerte handlinger knyttet til adresseenheter. Den " +"inkluderer spesialisert atferd for ulike HTTP-metoder, overstyring av " +"serializer og håndtering av tillatelser basert på forespørselskonteksten." #: engine/core/viewsets.py:1123 #, python-brace-format diff --git a/engine/core/locale/pl_PL/LC_MESSAGES/django.mo b/engine/core/locale/pl_PL/LC_MESSAGES/django.mo index 3fd58e80448c310198363b7263afa0541f609d96..1223ac2be2bdb8345a0cd29920d25d923eb0a247 100644 GIT binary patch delta 14894 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 OgA(`deAks&`2PU#O2h2{ delta 14876 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 diff --git a/engine/core/locale/pl_PL/LC_MESSAGES/django.po b/engine/core/locale/pl_PL/LC_MESSAGES/django.po index 554d32be..fe3dd2b5 100644 --- a/engine/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/core/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Jest aktywny" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Jeśli ustawione na false, obiekt ten nie może być widoczny dla użytkowników " "bez wymaganych uprawnień." @@ -156,7 +157,8 @@ msgstr "Dostarczone" msgid "canceled" msgstr "Anulowane" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Nie powiodło się" @@ -208,8 +210,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Zastosuj tylko klucz, aby odczytać dozwolone dane z pamięci podręcznej.\n" -"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w " -"pamięci podręcznej." +"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w pamięci podręcznej." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -274,7 +275,8 @@ msgstr "" "nieedytowalnych" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Przepisanie niektórych pól istniejącej grupy atrybutów z zachowaniem " "atrybutów nieedytowalnych" @@ -329,7 +331,8 @@ msgstr "" "nieedytowalnych" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Przepisz niektóre pola istniejącej wartości atrybutu, zapisując wartości " "nieedytowalne" @@ -388,11 +391,11 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id, " -"order_products.product.name i order_products.product.partnumber." +"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id," +" order_products.product.name i order_products.product.partnumber." #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -425,14 +428,14 @@ msgstr "Filtrowanie według identyfikatora UUID użytkownika" #: engine/core/docs/drf/viewsets.py:318 msgid "Filter by order status (case-insensitive substring match)" msgstr "" -"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem " -"wielkości liter)" +"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem" +" wielkości liter)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Kolejność według jednego z: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefiks z \"-\" dla malejącego " @@ -444,7 +447,8 @@ msgstr "Pobieranie pojedynczej kategorii (widok szczegółowy)" #: engine/core/docs/drf/viewsets.py:341 msgid "Order UUID or human-readable id" -msgstr "Identyfikator UUID zamówienia lub identyfikator czytelny dla człowieka" +msgstr "" +"Identyfikator UUID zamówienia lub identyfikator czytelny dla człowieka" #: engine/core/docs/drf/viewsets.py:351 msgid "create an order" @@ -632,28 +636,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrowanie według jednej lub więcej par atrybut/wartość. \n" "- Składnia**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metody** (domyślnie `icontains` jeśli pominięte): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Wpisywanie wartości**: JSON jest próbowany jako pierwszy (więc można " -"przekazywać listy/dykty), `true`/`false` dla booleans, integers, floats; w " -"przeciwnym razie traktowane jako string. \n" -"- Base64**: prefiks z `b64-` do bezpiecznego dla adresów URL kodowania " -"base64 surowej wartości. \n" +"- **Metody** (domyślnie `icontains` jeśli pominięte): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Wpisywanie wartości**: JSON jest próbowany jako pierwszy (więc można przekazywać listy/dykty), `true`/`false` dla booleans, integers, floats; w przeciwnym razie traktowane jako string. \n" +"- Base64**: prefiks z `b64-` do bezpiecznego dla adresów URL kodowania base64 surowej wartości. \n" "Przykłady: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -668,12 +662,10 @@ msgstr "(dokładny) UUID produktu" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla " -"sortowania malejącego. \n" +"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla sortowania malejącego. \n" "**Dozwolone:** uuid, rating, name, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -1147,7 +1139,7 @@ msgstr "Dane w pamięci podręcznej" msgid "camelized JSON data from the requested URL" msgstr "Kamelizowane dane JSON z żądanego adresu URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Dozwolone są tylko adresy URL zaczynające się od http(s)://" @@ -1231,8 +1223,8 @@ msgstr "Kup zamówienie" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Prześlij atrybuty jako ciąg znaków sformatowany w następujący sposób: " "attr1=value1,attr2=value2" @@ -1310,7 +1302,8 @@ msgstr "" "Które atrybuty i wartości mogą być używane do filtrowania tej kategorii." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minimalne i maksymalne ceny produktów w tej kategorii, jeśli są dostępne." @@ -1521,8 +1514,7 @@ msgstr "Numer telefonu firmy" #: engine/core/graphene/object_types.py:680 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" +msgstr "\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" #: engine/core/graphene/object_types.py:681 msgid "email host user" @@ -1616,8 +1608,8 @@ msgstr "" "Reprezentuje jednostkę dostawcy zdolną do przechowywania informacji o " "zewnętrznych dostawcach i ich wymaganiach dotyczących interakcji. Klasa " "Vendor służy do definiowania i zarządzania informacjami związanymi z " -"zewnętrznym dostawcą. Przechowuje nazwę dostawcy, szczegóły uwierzytelniania " -"wymagane do komunikacji oraz procentowe znaczniki stosowane do produktów " +"zewnętrznym dostawcą. Przechowuje nazwę dostawcy, szczegóły uwierzytelniania" +" wymagane do komunikacji oraz procentowe znaczniki stosowane do produktów " "pobieranych od dostawcy. Model ten zachowuje również dodatkowe metadane i " "ograniczenia, dzięki czemu nadaje się do użytku w systemach, które " "współpracują z zewnętrznymi dostawcami." @@ -1789,11 +1781,12 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Reprezentuje obiekt marki w systemie. Ta klasa obsługuje informacje i " -"atrybuty związane z marką, w tym jej nazwę, logo, opis, powiązane kategorie, " -"unikalny slug i kolejność priorytetów. Pozwala na organizację i " +"atrybuty związane z marką, w tym jej nazwę, logo, opis, powiązane kategorie," +" unikalny slug i kolejność priorytetów. Pozwala na organizację i " "reprezentację danych związanych z marką w aplikacji." #: engine/core/models.py:448 @@ -1838,8 +1831,8 @@ msgstr "Kategorie" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1991,8 +1984,8 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Reprezentuje atrybut w systemie. Ta klasa jest używana do definiowania i " @@ -2062,9 +2055,9 @@ msgstr "Atrybut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Reprezentuje określoną wartość atrybutu powiązanego z produktem. Łączy " "\"atrybut\" z unikalną \"wartością\", umożliwiając lepszą organizację i " @@ -2085,8 +2078,8 @@ msgstr "Konkretna wartość dla tego atrybutu" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2098,7 +2091,8 @@ msgstr "" #: engine/core/models.py:826 msgid "provide alternative text for the image for accessibility" -msgstr "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" +msgstr "" +"Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" #: engine/core/models.py:827 msgid "image alt text" @@ -2134,12 +2128,12 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Reprezentuje kampanię promocyjną dla produktów z rabatem. Ta klasa służy do " -"definiowania i zarządzania kampaniami promocyjnymi, które oferują procentowy " -"rabat na produkty. Klasa zawiera atrybuty do ustawiania stopy rabatu, " +"definiowania i zarządzania kampaniami promocyjnymi, które oferują procentowy" +" rabat na produkty. Klasa zawiera atrybuty do ustawiania stopy rabatu, " "dostarczania szczegółów na temat promocji i łączenia jej z odpowiednimi " "produktami. Integruje się z katalogiem produktów w celu określenia pozycji, " "których dotyczy kampania." @@ -2184,8 +2178,8 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" "Reprezentuje listę życzeń użytkownika do przechowywania i zarządzania " -"pożądanymi produktami. Klasa zapewnia funkcjonalność do zarządzania kolekcją " -"produktów, wspierając operacje takie jak dodawanie i usuwanie produktów, a " +"pożądanymi produktami. Klasa zapewnia funkcjonalność do zarządzania kolekcją" +" produktów, wspierając operacje takie jak dodawanie i usuwanie produktów, a " "także wspierając operacje dodawania i usuwania wielu produktów jednocześnie." #: engine/core/models.py:926 @@ -2210,13 +2204,13 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Reprezentuje rekord dokumentu powiązany z produktem. Ta klasa służy do " -"przechowywania informacji o dokumentach związanych z określonymi produktami, " -"w tym przesyłanych plików i ich metadanych. Zawiera metody i właściwości do " -"obsługi typu pliku i ścieżki przechowywania plików dokumentów. Rozszerza " +"przechowywania informacji o dokumentach związanych z określonymi produktami," +" w tym przesyłanych plików i ich metadanych. Zawiera metody i właściwości do" +" obsługi typu pliku i ścieżki przechowywania plików dokumentów. Rozszerza " "funkcjonalność z określonych miksów i zapewnia dodatkowe niestandardowe " "funkcje." @@ -2234,14 +2228,14 @@ msgstr "Nierozwiązany" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Reprezentuje jednostkę adresu, która zawiera szczegóły lokalizacji i " "powiązania z użytkownikiem. Zapewnia funkcjonalność przechowywania danych " @@ -2249,8 +2243,8 @@ msgstr "" "Klasa ta została zaprojektowana do przechowywania szczegółowych informacji " "adresowych, w tym elementów takich jak ulica, miasto, region, kraj i " "geolokalizacja (długość i szerokość geograficzna). Obsługuje integrację z " -"interfejsami API geokodowania, umożliwiając przechowywanie nieprzetworzonych " -"odpowiedzi API do dalszego przetwarzania lub kontroli. Klasa umożliwia " +"interfejsami API geokodowania, umożliwiając przechowywanie nieprzetworzonych" +" odpowiedzi API do dalszego przetwarzania lub kontroli. Klasa umożliwia " "również powiązanie adresu z użytkownikiem, ułatwiając spersonalizowaną " "obsługę danych." @@ -2410,8 +2404,8 @@ msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2491,7 +2485,8 @@ msgstr "Zamówienie" #: engine/core/models.py:1319 msgid "a user must have only one pending order at a time" -msgstr "Użytkownik może mieć tylko jedno oczekujące zlecenie w danym momencie!" +msgstr "" +"Użytkownik może mieć tylko jedno oczekujące zlecenie w danym momencie!" #: engine/core/models.py:1351 msgid "you cannot add products to an order that is not a pending one" @@ -2588,8 +2583,8 @@ msgstr "" "temat konkretnych produktów, które zostały przez nich zakupione. Zawiera " "atrybuty do przechowywania komentarzy użytkowników, odniesienie do " "powiązanego produktu w zamówieniu oraz ocenę przypisaną przez użytkownika. " -"Klasa wykorzystuje pola bazy danych do efektywnego modelowania i zarządzania " -"danymi opinii." +"Klasa wykorzystuje pola bazy danych do efektywnego modelowania i zarządzania" +" danymi opinii." #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2600,7 +2595,8 @@ msgid "feedback comments" msgstr "Komentarze zwrotne" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Odnosi się do konkretnego produktu w zamówieniu, którego dotyczy ta " "informacja zwrotna." @@ -2631,13 +2627,13 @@ msgid "" msgstr "" "Reprezentuje produkty powiązane z zamówieniami i ich atrybutami. Model " "OrderProduct przechowuje informacje o produkcie, który jest częścią " -"zamówienia, w tym szczegóły, takie jak cena zakupu, ilość, atrybuty produktu " -"i status. Zarządza powiadomieniami dla użytkownika i administratorów oraz " -"obsługuje operacje, takie jak zwracanie salda produktu lub dodawanie opinii. " -"Model ten zapewnia również metody i właściwości, które obsługują logikę " +"zamówienia, w tym szczegóły, takie jak cena zakupu, ilość, atrybuty produktu" +" i status. Zarządza powiadomieniami dla użytkownika i administratorów oraz " +"obsługuje operacje, takie jak zwracanie salda produktu lub dodawanie opinii." +" Model ten zapewnia również metody i właściwości, które obsługują logikę " "biznesową, taką jak obliczanie całkowitej ceny lub generowanie adresu URL " -"pobierania dla produktów cyfrowych. Model ten integruje się z modelami Order " -"i Product i przechowuje odniesienia do nich." +"pobierania dla produktów cyfrowych. Model ten integruje się z modelami Order" +" i Product i przechowuje odniesienia do nich." #: engine/core/models.py:1757 msgid "the price paid by the customer for this product at purchase time" @@ -2650,7 +2646,8 @@ msgstr "Cena zakupu w momencie zamówienia" #: engine/core/models.py:1763 msgid "internal comments for admins about this ordered product" msgstr "" -"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego produktu" +"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego " +"produktu" #: engine/core/models.py:1764 msgid "internal comments" @@ -2748,9 +2745,9 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Reprezentuje funkcjonalność pobierania zasobów cyfrowych powiązanych z " "zamówieniami. Klasa DigitalAssetDownload zapewnia możliwość zarządzania i " @@ -2804,8 +2801,8 @@ msgid "No customer activity in the last 30 days." msgstr "Brak aktywności klienta w ciągu ostatnich 30 dni." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Dzienna sprzedaż (30d)" +msgid "Daily sales" +msgstr "Dzienna sprzedaż" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2816,6 +2813,7 @@ msgid "Gross revenue" msgstr "Przychód brutto" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Zamówienia" @@ -2823,6 +2821,10 @@ msgstr "Zamówienia" msgid "Gross" msgstr "Brutto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Pulpit nawigacyjny" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Przegląd dochodów" @@ -2851,20 +2853,32 @@ msgid "No data" msgstr "Brak daty" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Przychody (brutto, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Przychody (netto, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Zwroty (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Przychody netto" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Przetworzone zamówienia (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Stopa zwrotu" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Zwrócony" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Niskie stany magazynowe" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Brak pozycji o niskim stanie magazynowym." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2879,11 +2893,11 @@ msgid "Most wished product" msgstr "Najbardziej pożądany produkt" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Brak danych." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Najpopularniejszy produkt" @@ -2919,10 +2933,6 @@ msgstr "Brak sprzedaży kategorii w ciągu ostatnich 30 dni." msgid "Django site admin" msgstr "Administrator strony Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Pulpit nawigacyjny" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2952,8 +2962,7 @@ msgstr "Witaj %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Dziękujemy za zamówienie #%(order.pk)s! Z przyjemnością informujemy, że " @@ -3012,8 +3021,8 @@ msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "" -"Pomyślnie przetworzyliśmy Twoje zamówienie №%(order_uuid)s! Poniżej znajdują " -"się szczegóły zamówienia:" +"Pomyślnie przetworzyliśmy Twoje zamówienie №%(order_uuid)s! Poniżej znajdują" +" się szczegóły zamówienia:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -3068,8 +3077,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Dziękujemy za zamówienie! Z przyjemnością potwierdzamy zakup. Poniżej " @@ -3144,7 +3152,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Wymiary obrazu nie powinny przekraczać w{max_width} x h{max_height} pikseli." -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3152,26 +3160,26 @@ msgstr "" "Obsługuje żądanie indeksu mapy witryny i zwraca odpowiedź XML. Zapewnia, że " "odpowiedź zawiera odpowiedni nagłówek typu zawartości dla XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" "Obsługuje szczegółową odpowiedź widoku dla mapy witryny. Ta funkcja " -"przetwarza żądanie, pobiera odpowiednią szczegółową odpowiedź mapy witryny i " -"ustawia nagłówek Content-Type dla XML." +"przetwarza żądanie, pobiera odpowiednią szczegółową odpowiedź mapy witryny i" +" ustawia nagłówek Content-Type dla XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Zwraca listę obsługiwanych języków i odpowiadające im informacje." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Zwraca parametry strony internetowej jako obiekt JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3179,11 +3187,11 @@ msgstr "" "Obsługuje operacje pamięci podręcznej, takie jak odczytywanie i ustawianie " "danych pamięci podręcznej z określonym kluczem i limitem czasu." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Obsługuje zgłoszenia formularzy `kontaktuj się z nami`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3191,66 +3199,58 @@ msgstr "" "Obsługuje żądania przetwarzania i sprawdzania poprawności adresów URL z " "przychodzących żądań POST." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Obsługuje globalne zapytania wyszukiwania." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Obsługuje logikę zakupu jako firma bez rejestracji." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Obsługuje pobieranie zasobu cyfrowego powiązanego z zamówieniem.\n" -"Ta funkcja próbuje obsłużyć plik zasobu cyfrowego znajdujący się w katalogu " -"przechowywania projektu. Jeśli plik nie zostanie znaleziony, zgłaszany jest " -"błąd HTTP 404 wskazujący, że zasób jest niedostępny." +"Ta funkcja próbuje obsłużyć plik zasobu cyfrowego znajdujący się w katalogu przechowywania projektu. Jeśli plik nie zostanie znaleziony, zgłaszany jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "Order_product_uuid jest wymagany" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "zamówiony produkt nie istnieje" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Zasób cyfrowy można pobrać tylko raz" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "zamówienie musi zostać opłacone przed pobraniem zasobu cyfrowego" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Produkt zamówienia nie ma produktu" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "nie znaleziono favicon" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Obsługuje żądania favicon strony internetowej.\n" -"Ta funkcja próbuje obsłużyć plik favicon znajdujący się w katalogu " -"statycznym projektu. Jeśli plik favicon nie zostanie znaleziony, zgłaszany " -"jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." +"Ta funkcja próbuje obsłużyć plik favicon znajdujący się w katalogu statycznym projektu. Jeśli plik favicon nie zostanie znaleziony, zgłaszany jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Przekierowuje żądanie na stronę indeksu administratora. Funkcja obsługuje " @@ -3258,11 +3258,11 @@ msgstr "" "administratora Django. Używa funkcji `redirect` Django do obsługi " "przekierowania HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Zwraca aktualną wersję aplikacji eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Zwraca zmienne niestandardowe dla Dashboard." @@ -3282,16 +3282,17 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Reprezentuje zestaw widoków do zarządzania obiektami AttributeGroup. " "Obsługuje operacje związane z AttributeGroup, w tym filtrowanie, " "serializację i pobieranie danych. Klasa ta jest częścią warstwy API " -"aplikacji i zapewnia ustandaryzowany sposób przetwarzania żądań i odpowiedzi " -"dla danych AttributeGroup." +"aplikacji i zapewnia ustandaryzowany sposób przetwarzania żądań i odpowiedzi" +" dla danych AttributeGroup." #: engine/core/viewsets.py:175 msgid "" @@ -3314,14 +3315,14 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"Zestaw widoków do zarządzania obiektami AttributeValue. Ten viewset zapewnia " -"funkcjonalność do listowania, pobierania, tworzenia, aktualizowania i " +"Zestaw widoków do zarządzania obiektami AttributeValue. Ten viewset zapewnia" +" funkcjonalność do listowania, pobierania, tworzenia, aktualizowania i " "usuwania obiektów AttributeValue. Integruje się z mechanizmami viewset " -"Django REST Framework i używa odpowiednich serializatorów dla różnych akcji. " -"Możliwości filtrowania są dostarczane przez DjangoFilterBackend." +"Django REST Framework i używa odpowiednich serializatorów dla różnych akcji." +" Możliwości filtrowania są dostarczane przez DjangoFilterBackend." #: engine/core/viewsets.py:213 msgid "" @@ -3332,8 +3333,8 @@ msgid "" "can access specific data." msgstr "" "Zarządza widokami dla operacji związanych z kategoriami. Klasa " -"CategoryViewSet jest odpowiedzialna za obsługę operacji związanych z modelem " -"kategorii w systemie. Obsługuje pobieranie, filtrowanie i serializowanie " +"CategoryViewSet jest odpowiedzialna za obsługę operacji związanych z modelem" +" kategorii w systemie. Obsługuje pobieranie, filtrowanie i serializowanie " "danych kategorii. Zestaw widoków wymusza również uprawnienia, aby zapewnić, " "że tylko autoryzowani użytkownicy mają dostęp do określonych danych." @@ -3363,8 +3364,8 @@ msgstr "" "zapewnia zestaw widoków do zarządzania produktami, w tym ich filtrowania, " "serializacji i operacji na konkretnych instancjach. Rozszerza się z " "`EvibesViewSet`, aby używać wspólnej funkcjonalności i integruje się z " -"frameworkiem Django REST dla operacji RESTful API. Zawiera metody pobierania " -"szczegółów produktu, stosowania uprawnień i uzyskiwania dostępu do " +"frameworkiem Django REST dla operacji RESTful API. Zawiera metody pobierania" +" szczegółów produktu, stosowania uprawnień i uzyskiwania dostępu do " "powiązanych informacji zwrotnych o produkcie." #: engine/core/viewsets.py:574 @@ -3377,8 +3378,8 @@ msgid "" msgstr "" "Reprezentuje zestaw widoków do zarządzania obiektami Vendor. Ten zestaw " "widoków umożliwia pobieranie, filtrowanie i serializowanie danych dostawcy. " -"Definiuje zestaw zapytań, konfiguracje filtrów i klasy serializatora używane " -"do obsługi różnych działań. Celem tej klasy jest zapewnienie usprawnionego " +"Definiuje zestaw zapytań, konfiguracje filtrów i klasy serializatora używane" +" do obsługi różnych działań. Celem tej klasy jest zapewnienie usprawnionego " "dostępu do zasobów związanych z Vendorem poprzez framework Django REST." #: engine/core/viewsets.py:594 @@ -3386,8 +3387,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentacja zestawu widoków obsługujących obiekty opinii. Ta klasa " @@ -3403,9 +3404,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet do zarządzania zamówieniami i powiązanymi operacjami. Klasa ta " @@ -3421,8 +3422,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Udostępnia zestaw widoków do zarządzania jednostkami OrderProduct. Ten " @@ -3455,8 +3456,8 @@ msgstr "Obsługuje operacje związane z danymi Stock w systemie." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3480,8 +3481,8 @@ msgstr "" "Ta klasa zapewnia funkcjonalność zestawu widoków do zarządzania obiektami " "`Address`. Klasa AddressViewSet umożliwia operacje CRUD, filtrowanie i " "niestandardowe akcje związane z jednostkami adresowymi. Obejmuje ona " -"wyspecjalizowane zachowania dla różnych metod HTTP, zastępowanie serializera " -"i obsługę uprawnień w oparciu o kontekst żądania." +"wyspecjalizowane zachowania dla różnych metod HTTP, zastępowanie serializera" +" i obsługę uprawnień w oparciu o kontekst żądania." #: engine/core/viewsets.py:1123 #, python-brace-format diff --git a/engine/core/locale/pt_BR/LC_MESSAGES/django.mo b/engine/core/locale/pt_BR/LC_MESSAGES/django.mo index 99f60e1849f9e5999b707b56a824db64314fe6d6..dd77c31b3ccac257fd2bbf8e5bc51013ec9f1363 100644 GIT binary patch delta 14877 zcmZYF2YgT0~%t zre<)QX{D6wIJ>GiPHxR&yL5jKa(qgITaP=EnpK#2)C4<1hdxq3&OV z86C&%EF&_8jMbN%Ali416WPw_Z(&sm7S}QjpT%g>53EJvOu98{1k+J7GaEI+wWx+R zVs_kzCGaFB;U8ECTgE%iXqV#*#wKnezt?u0$`sV9>o`qu7(T~ixDCIq#|Wu6u)gEO zk{;8*%*Z}u3Y~Wwnugn;roI>E#qsEei_jN8L(SY5m=E`(TRlHdL^u9|zW5yJtmC{x zB^r*$RwTU|J5FoTZLv0PYhvm@OEA7h&4_QJ*-M2`OB91eFcH<^0jL=qn#lZX?M9HH zDVvCzvbk6i_n_AB7G}eTs0aRK&B1gPCS4TSmrgutH;=UWIh(PZq|2lB&MC}^KiTx{ zW~{&G!DOiCe_>Nb=GWZp?#}O;&6R>zDIa3fEn7Iwr_@Wr(wLR$Y0n<2(%Nw@QEzTr z>XP5D9h(hrwP!Lhdk4p9gKau8!_?pA?<N$@n9Qb;0Rf9p?lOh)-q;N$2QJ8AkMQ zoU-H>PC?R%_&aHLFUM&|dSI&KG~|J&dNTv0^Yt?w+|=K3`jg*!pyTW$|L9=HnSf)5 znwfNG8fK&nB)_fXj z31-{$0%Y&Goux#&QLq|yZhb~LP6+9SBh4=Eg?hj^^u>vo1!v&_>MzC&jIh&a-WlX~ zWl6PnW~27f9xRX7u^i?eYnHYyhUxq#5DBGVDC)*VSQ-zaX5tAdKX9Dm@Q!k7V-SwP zg1FGS6IJgl>b>zAwWp##Fvsm3)C_k)Kiq_wY2VpPMCbJoYBT>gFR6!fu2O&e`yl)uPJ{;h7V?$ zY(|<3^R3ti!4{|ocR)4R)8-FDt@Sw6l+Q=a;2KneyHM>Mw&@=+g!DBx5g#I6 zADLaA6*H6eM>UWiwIt!F2h>D0)Ce zLWU`3P4c69UK-VKEUF_dZFw>Vk{)hNv*nvm_w7Y>=roqb3#d)$J=HW=9+hr@RdoIb z6RAqZCe#S-phocA>NCysI0)6_2-Jw;QJbhWs^L^rhsU5gJQwwxPf+!CpgMlsdK3M0 z{{JPS&5&cdc~E)uC0z%zU;@TtTa3abm<_+jX#5$~K)?($fD))Fjz%qQJoDJ!8JC$8TFj6u_PWx zy~>~B8Z14F`PU6+h-m6AV?}&|I#wlSn~&Af7(+T4%i~Ja8vlslco{XKjC0H@w*;!8 zCaCwq1Ps8XsHNMAA$VvG^RE}eZ8CDAD~+2l7Y@ZF?1L9j9jZ6iOmSnZN4h;~gsV_9 zu@Uv0bkvLL=dQ`aAZ@B`EyT58j4u|DZcA6Jd(KjO{&NvgL!lUq
    k zur&5V-M9pG?l++7?Ly7eSq#Fbs1EuqGn*_g>i#ffq)rR;!&Iz-BQdwm{})8`;A5y4 z#5q(0*RcS;#%L_C-0b3J*0!h_OTx-H1hx4#q4v;aoA1BEd{1bAnz8BF47Z|N4SKCK z=Q0OsszOm~S`u|^qEHQ0L(NnIYDV6(`KhP@xX~Y{+47~R=Wn#-yKMO()br1+Wc>q) zT(t#%Vm{JYR+&v#6!qW))T_8X=E3f$2aiHc?PS!RS&rJAyHNFyquvi^QTJU%b^Mtv z&$!xcj)~uDv*xuhoC-;(HJXBY-~lX*XR#YT!&2Dp6SGtkP$OD}s=omvaW7WFU$HiZ zt})N;fjT8C+(fi#?xK458>+|NYfXcGSd?^GYjZ44dWcOgM$O<Hk-AJL#P?D?WpJ7!uptRtNCrZ6DqwD)!}58b4#$Y_A+WgJd?U;r9uTalBf;sUrs^N#IrTTX}^RI%;JIt#w5c85Q ziIG?f%V0k|j!SVo_S|Xq$gij+$-T>LuBKRv^a#{_d$2U#!xETxx7kxQQ1^A;&HPs+ zvWg5%)p^urdxZrt{7chNJ&YyY7o%}A>cKa$80Or=Z@yRwHS$5I861OI@k0#6S*WG? z3=80QZX(%;+($L|0yVXHzB2EDx>$vDBI?1DF+ZkZL)?fuR?krb2-#}}P!BcY0qBPd zFe9!<&CDhYK=)-L>d7P2NV4oRH2Y6Uz^<>gW4oxQJeE4)b3q?+Ejbc7r#f1=px2o z=5Nd?sg2s46HrTa6ieYV)Qp9EtEG4IJ2{aWWVlgNwimU@ZekSnJYd#rF~*bLkIMHt z$gg1-jg@d5s)1ct5O1Ic<~n3LP!82_2aLc;*iC=`ODCdFz5GWUXBp{on1S^7N6l3J zh+4xds1ZLxE!j&9!raHq5|u?QK{V?AMwk&3aWS?)EzM)psrwt<+LhUl^W_7>P*eQ` zwYK_8lpYv}>Ofi4risP=bhJ5YEf1VDA37&cr{gYGz(S|Yhgfrb{xy>G>JdUYK;%EJ=xL#%RnQ#HtdKR^`w^8+;VHCPcTsI?Zi+WHJ2IKo!1m|KI+<~!p6M5@8 z#cr70{4;(-I@3+_oTI4coJNiOHfrxYM9++1nu|KOJTv8XKD}*v_5~KD-~i^-jdysf zk$#EQ@wa=9v%-s`^nfoRl%INN{y2T=5qp60>5m!CN~rkHKjve%3{Ov@;vg)KXC0U4ui%-zT+VLl9m(KwwvazA zlgqh@<$YYvMDp`yaXH_TUYgD2Y{bqvT%MW8?(g!v;zO|s4VS~BI0h@wzOzyhJd0Xe z-<&Sb?k|Ksq>G}~DgsMmN7SaAiki|i)alrOn(}R!5qF{P--|u)FwUT3kpV8xi)wE! zm*du}^ez$I@DFO!xN^HZ=R5$T8Ch|xfbH{|j?T<)Jb-1X{{kyxSfJ@>Csaq~U@=^X z5x5UEfcvQ9o-c^`S3yFM%d^QwU<=agQM>zzR{hDmHR-~r z7ufsgi?dKOwFm?7bM(Adf_eYyyxt(AGd{wWm{`!|G{!Zk^zW!m*`Sci^L?Qm>Xghx zA9zMb#bcL83gHiR$p>C{e z)2&fU)*Cg_(WsG4!os))wRaAorv4?yWAP$p3Ee%3s9*`^#bcOHU(v*Fjs3(4)AA`(u<&!`c2hngw!Lrqx_ zDnAmnrd4cyGt^WjqZ;gwnu!l=It{}}uR+~^3e~~$sQa#9ZhijWBcfO1zo;H&FJ?AX zLDZ?Jj+%iuRC#?=$6BKrPDRbYXjFsqP#xKe1@Jpm$M2(NBtvmCgCQ8K^B+w_4{VNl zV0YAw!%%x*uFck|9XNojynGK7Ru8vysE~ppO4Ac@_ zM$OD)YexQ&urTTTsIPccP&3#Z)lM&Lhwjrvnh}X8XQpa2YV&=FnvoT#Dg6yI<117{ z-sMfl0#O}mh$bindt(EJ;FnkvFQez*|AV5MfW zR@5=NffX=UC6iwtl^%f_$!3hfC#VmnGL_9H?tyA(Ay&i-s6CRsirJhsF-qruFcCd) z9cpu3My=UR)G_)OwaE%pHRpQDy)Cu#{#*z$`QM*3HD zYie>=GgBOjIxbbP3dW*lVicC;tK+mC`e+%{8=QTM0+9ZKB&Dz&M&v`~o=>*gi&Ooj4D%1<=3RXh@SeH`^>!Zpi zV-Y-vjqoP6KC_1podk&j26BKKM%dhk!E2i-(X{Yz9s1>?;ORX~lbHR>~B zII8?()JQg=HtjA{2hO05@h#L|dV+dxsoG}GBw~Gi{=13j&2|LUvxlfRlz$zQKh(Me z)zG)7hEHK6-oPdpP}k+Whn+DB_hM^&jGEyF^-RZ`qMp+igZ248+!NvWp!Pz#O`o?u zwdSmEKBOYC1oeiZrgSNG!Y$YW{Ti6H?}kcmMeP~yhGsyOF`9G-%%$_6MnqG(4lCm! zjKf!03uE6gH;hFcza6N0k8L`>%(Ce8G3+MGh;(k{w$2gOQ_>iu(`Q01=Y|7Y=w7FpN2KxHDA}KVgl)F)^aUO z+HL*LTCkT)G7KNBk(HfLn~_=moo}O z(6d)i$9W5CQ=V`W(Xsmx^&xS`76i97$EFyjklz6_;1Sdd+7)@vd}wsVTBN6<-r*-v zFOok|=R2%}NjFCAjS;BL_Bra*+(W$&{5yJPg7qh&O_+>Y^N&$ed<`|_1v{B^FYHNr zE$aOHbvB>-#Zfa6fqDT|K{eDI_31er^&*;Y%U7WW^c7~)`Tv(lTQagHnRj(E>ceI* zYICKbPQiWDl!bLMBj|ui&qviiiF)NeKz)yRia{9F)#drSUlY_!zmJ-c4fu}E|8*kz z22-Y+`JAqRTH`p>6gNPv;Sf|qlTmBA4s~32V_Ce9I+j7nW^=W`B+~Dp2CxtHyuVS$ zIlMdPUz?;qks>$_wG^vSQ+F2C(C?@<%h>NPJwAo=uQyb#Ugj7z#|ETFqE5p>?2CV*M%pvgj9?+^7#&9KmFuXE7wT=M zx+&@yjzAacYC{P3V)_a5h}R*6dNKd{BN1O}ox!%|BP>dxu1Pj;GVy$#96Cq+2=XUk z8tV8Z691EUc3b~BdHsmrAWTypA&ojZ!n%$SbpEyfoLCB5D`BtBsz|s@dc1DtT8G2& z3O1r_DQanSl_cCD?N7e03&g9~cpl=qLad3zvru-EbQ*EB?-U?oIvLunx~|&Fihpb$ zqS~SUHU1bPeA0R@ zZ8}|%O^2l8}0XOpM%T#uluBI#EchPt*8784(Z zD+sH&FF%$hZz7(x&(;T&uD=L%$oqizkLMSHj%0jGxK3teZrX*X2;GSX6N(b&rR97^ z7*6<*Fqr(ixPkk0eMovaVIz6G2>-up5;>pR{N1)Rk@wGkR{(`^JYf474547n};+d&a373deAU=+GZw1mnseo%P@n@91r`PYB>k~3hrn$=I zbLSj#79XIb*55Nl)0=HXq^)37R!`jL2F;`=c(X~`IbqY_XxVS5{lS5 zm$49GoqZ`dsZ?4?C}=D20q-=naot>+_%QpRy*B@U_$48l;6u1Vz26Dl2vbSx8o)iP z2^xAi0-y8FJzMsa^l~lAbSf+*QJYZ2HbT_l3*CQL2r+NU24gN;=N9FKZG0B-R9kx) zd1GvT82KfMPoOL>!I!u`o<1imrfjU6AG(gBzFI8A_dPlMrbp#sq<JZm6do$^8P|yUe-T|FC*^l$>sUP`x7!zSO36sPV4`W zjCNF5i*?ELBdj7_oOBpgBfKEA)QyC9i0kS>y?6p&qn+D?n#6VOFgTB_q6i^Bb;=X& z6JLp*i}pQNer|3>EI0O|Q2z#^t02B_E4L(`@y(5teMUH=N?fA}dk9UH;HpoUN8L~G zTYFC);vW+HmF8Lf2<|`J@ zj+2+LnQ)LWjXb{BI|r~b1`~1;^v__)I{!0B_>g#W6(Ic;i7Gh9W;VhULOh`-buUpi zmH24l^9k)p>*|DYChDZyye~)x68aI&5f0mYqRuB;|DS9|inSL7i+Jc4q&EWi+5n_o~C5$D!x!kvj{X!_J zind@hH`XBU1HuII*5KP$EQxOj&24>^tt71Az63%X;mvh`cr6kK2~`PyD{agB=tKF< z_2x}D!e&&YQh6HaLAs7@C;=Cf?qKVzviVBJ5I!J%3)gUOHQUIW7Fv=1nlfF3hi~Prge+Ugp$D^))2q%cAkT)5> zv-#INrRK*(@&-}9i=_J)Kc3i1Dt<_4OyM_ga!dXId z!c6L9qfFNfLMY)Lp)sKep#m-F^HT_j^BN(BOVuQ=KMBeUo~m)kq0UyHeXH{eHt%-oArF1||Dw)2VA9~^biWqIL(}fOe=_~@uniTw zlDnn5HREL%JlT4C|Mk<8oT2v{}~< z1szza2Ko*P>DsSPNb>(vr^)rIUg;}t{^^yoMbfaOkZ#FzFu6~ce!U0vOJ8uOYWT-D e{ahD!-uHKPsgb!(^3Z<0hoGsPB*rfQ delta 14880 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 B&A$Ku diff --git a/engine/core/locale/pt_BR/LC_MESSAGES/django.po b/engine/core/locale/pt_BR/LC_MESSAGES/django.po index 815e5086..08446f56 100644 --- a/engine/core/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/core/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Está ativo" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Se definido como false, esse objeto não poderá ser visto por usuários sem a " "permissão necessária" @@ -156,7 +157,8 @@ msgstr "Entregue" msgid "canceled" msgstr "Cancelado" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Falha" @@ -208,8 +210,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar somente uma chave para ler dados permitidos do cache.\n" -"Aplicar chave, dados e tempo limite com autenticação para gravar dados no " -"cache." +"Aplicar chave, dados e tempo limite com autenticação para gravar dados no cache." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -273,7 +274,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescrever um grupo de atributos existente salvando os não editáveis" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescreva alguns campos de um grupo de atributos existente salvando os não " "editáveis" @@ -324,7 +326,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescreva um valor de atributo existente salvando os não editáveis" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Reescreva alguns campos de um valor de atributo existente salvando os não " "editáveis" @@ -381,12 +384,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Pesquisa de substring sem distinção entre maiúsculas e minúsculas em " -"human_readable_id, order_products.product.name e order_products.product." -"partnumber" +"human_readable_id, order_products.product.name e " +"order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -422,9 +425,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordene por uma das seguintes opções: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefixe com '-' para " @@ -580,7 +583,8 @@ msgstr "recuperar a lista de desejos pendente atual de um usuário" #: engine/core/docs/drf/viewsets.py:504 msgid "retrieves a current pending wishlist of an authenticated user" -msgstr "recupera uma lista de desejos pendente atual de um usuário autenticado" +msgstr "" +"recupera uma lista de desejos pendente atual de um usuário autenticado" #: engine/core/docs/drf/viewsets.py:514 msgid "add product to wishlist" @@ -625,28 +629,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrar por um ou mais pares de nome/valor de atributo. \n" "- **Sintaxe**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- Métodos** (o padrão é `icontains` se omitido): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Digitação de valores**: JSON é tentado primeiro (para que você possa " -"passar listas/dicas), `true`/`false` para booleanos, inteiros, flutuantes; " -"caso contrário, é tratado como string. \n" -"- Base64**: prefixo com `b64-` para codificar o valor bruto com base64 de " -"forma segura para a URL. \n" +"- Métodos** (o padrão é `icontains` se omitido): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Digitação de valores**: JSON é tentado primeiro (para que você possa passar listas/dicas), `true`/`false` para booleanos, inteiros, flutuantes; caso contrário, é tratado como string. \n" +"- Base64**: prefixo com `b64-` para codificar o valor bruto com base64 de forma segura para a URL. \n" "Exemplos: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -661,14 +655,11 @@ msgstr "UUID (exato) do produto" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista de campos separada por vírgulas para classificação. Prefixe com `-` " -"para classificação decrescente. \n" -"**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, " -"aleatório" +"Lista de campos separada por vírgulas para classificação. Prefixe com `-` para classificação decrescente. \n" +"**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, aleatório" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -899,7 +890,8 @@ msgstr "Delete a promo code" #: engine/core/docs/drf/viewsets.py:1124 msgid "rewrite an existing promo code saving non-editables" -msgstr "Reescreva um código promocional existente salvando itens não editáveis" +msgstr "" +"Reescreva um código promocional existente salvando itens não editáveis" #: engine/core/docs/drf/viewsets.py:1131 msgid "rewrite some fields of an existing promo code saving non-editables" @@ -1131,7 +1123,7 @@ msgstr "Dados em cache" msgid "camelized JSON data from the requested URL" msgstr "Dados JSON camelizados da URL solicitada" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Somente URLs que começam com http(s):// são permitidos" @@ -1215,8 +1207,8 @@ msgstr "Comprar um pedido" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Envie os atributos como uma string formatada como attr1=value1,attr2=value2" @@ -1293,7 +1285,8 @@ msgstr "" "Quais atributos e valores podem ser usados para filtrar essa categoria." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "Preços mínimo e máximo dos produtos dessa categoria, se disponíveis." #: engine/core/graphene/object_types.py:205 @@ -1600,9 +1593,9 @@ msgstr "" "fornecedores externos e seus requisitos de interação. A classe Vendor é " "usada para definir e gerenciar informações relacionadas a um fornecedor " "externo. Ela armazena o nome do fornecedor, os detalhes de autenticação " -"necessários para a comunicação e a marcação percentual aplicada aos produtos " -"recuperados do fornecedor. Esse modelo também mantém metadados e restrições " -"adicionais, tornando-o adequado para uso em sistemas que interagem com " +"necessários para a comunicação e a marcação percentual aplicada aos produtos" +" recuperados do fornecedor. Esse modelo também mantém metadados e restrições" +" adicionais, tornando-o adequado para uso em sistemas que interagem com " "fornecedores terceirizados." #: engine/core/models.py:124 @@ -1773,13 +1766,14 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Representa um objeto de marca no sistema. Essa classe lida com informações e " -"atributos relacionados a uma marca, incluindo seu nome, logotipos, " +"Representa um objeto de marca no sistema. Essa classe lida com informações e" +" atributos relacionados a uma marca, incluindo seu nome, logotipos, " "descrição, categorias associadas, um slug exclusivo e ordem de prioridade. " -"Ela permite a organização e a representação de dados relacionados à marca no " -"aplicativo." +"Ela permite a organização e a representação de dados relacionados à marca no" +" aplicativo." #: engine/core/models.py:448 msgid "name of this brand" @@ -1823,8 +1817,8 @@ msgstr "Categorias" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1918,8 +1912,8 @@ msgstr "" "utilitárias relacionadas para recuperar classificações, contagens de " "feedback, preço, quantidade e total de pedidos. Projetado para uso em um " "sistema que lida com comércio eletrônico ou gerenciamento de estoque. Essa " -"classe interage com modelos relacionados (como Category, Brand e ProductTag) " -"e gerencia o armazenamento em cache das propriedades acessadas com " +"classe interage com modelos relacionados (como Category, Brand e ProductTag)" +" e gerencia o armazenamento em cache das propriedades acessadas com " "frequência para melhorar o desempenho. É usada para definir e manipular " "dados de produtos e suas informações associadas em um aplicativo." @@ -1976,14 +1970,14 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Representa um atributo no sistema. Essa classe é usada para definir e " "gerenciar atributos, que são partes personalizáveis de dados que podem ser " -"associadas a outras entidades. Os atributos têm categorias, grupos, tipos de " -"valores e nomes associados. O modelo é compatível com vários tipos de " +"associadas a outras entidades. Os atributos têm categorias, grupos, tipos de" +" valores e nomes associados. O modelo é compatível com vários tipos de " "valores, incluindo string, inteiro, float, booleano, matriz e objeto. Isso " "permite a estruturação dinâmica e flexível dos dados." @@ -2047,13 +2041,13 @@ msgstr "Atributo" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representa um valor específico para um atributo que está vinculado a um " -"produto. Ele vincula o \"atributo\" a um \"valor\" exclusivo, permitindo uma " -"melhor organização e representação dinâmica das características do produto." +"produto. Ele vincula o \"atributo\" a um \"valor\" exclusivo, permitindo uma" +" melhor organização e representação dinâmica das características do produto." #: engine/core/models.py:788 msgid "attribute of this value" @@ -2070,20 +2064,21 @@ msgstr "O valor específico para esse atributo" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Representa uma imagem de produto associada a um produto no sistema. Essa " "classe foi projetada para gerenciar imagens de produtos, incluindo a " "funcionalidade de carregar arquivos de imagem, associá-los a produtos " -"específicos e determinar sua ordem de exibição. Ela também inclui um recurso " -"de acessibilidade com texto alternativo para as imagens." +"específicos e determinar sua ordem de exibição. Ela também inclui um recurso" +" de acessibilidade com texto alternativo para as imagens." #: engine/core/models.py:826 msgid "provide alternative text for the image for accessibility" -msgstr "Forneça um texto alternativo para a imagem para fins de acessibilidade" +msgstr "" +"Forneça um texto alternativo para a imagem para fins de acessibilidade" #: engine/core/models.py:827 msgid "image alt text" @@ -2119,8 +2114,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Representa uma campanha promocional para produtos com desconto. Essa classe " "é usada para definir e gerenciar campanhas promocionais que oferecem um " @@ -2170,8 +2165,8 @@ msgid "" msgstr "" "Representa a lista de desejos de um usuário para armazenar e gerenciar os " "produtos desejados. A classe oferece funcionalidade para gerenciar uma " -"coleção de produtos, suportando operações como adicionar e remover produtos, " -"bem como operações de suporte para adicionar e remover vários produtos de " +"coleção de produtos, suportando operações como adicionar e remover produtos," +" bem como operações de suporte para adicionar e remover vários produtos de " "uma só vez." #: engine/core/models.py:926 @@ -2196,15 +2191,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"Representa um registro de documentário vinculado a um produto. Essa classe é " -"usada para armazenar informações sobre documentários relacionados a produtos " -"específicos, incluindo uploads de arquivos e seus metadados. Ela contém " -"métodos e propriedades para lidar com o tipo de arquivo e o caminho de " -"armazenamento dos arquivos do documentário. Ela estende a funcionalidade de " -"mixins específicos e fornece recursos personalizados adicionais." +"Representa um registro de documentário vinculado a um produto. Essa classe é" +" usada para armazenar informações sobre documentários relacionados a " +"produtos específicos, incluindo uploads de arquivos e seus metadados. Ela " +"contém métodos e propriedades para lidar com o tipo de arquivo e o caminho " +"de armazenamento dos arquivos do documentário. Ela estende a funcionalidade " +"de mixins específicos e fornece recursos personalizados adicionais." #: engine/core/models.py:998 msgid "documentary" @@ -2220,21 +2215,21 @@ msgstr "Não resolvido" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representa uma entidade de endereço que inclui detalhes de localização e " "associações com um usuário. Fornece funcionalidade para armazenamento de " "dados geográficos e de endereço, bem como integração com serviços de " "geocodificação. Essa classe foi projetada para armazenar informações " -"detalhadas de endereço, incluindo componentes como rua, cidade, região, país " -"e geolocalização (longitude e latitude). Ela oferece suporte à integração " +"detalhadas de endereço, incluindo componentes como rua, cidade, região, país" +" e geolocalização (longitude e latitude). Ela oferece suporte à integração " "com APIs de geocodificação, permitindo o armazenamento de respostas brutas " "de API para processamento ou inspeção posterior. A classe também permite " "associar um endereço a um usuário, facilitando o tratamento personalizado " @@ -2381,8 +2376,8 @@ msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não " -"ambos ou nenhum." +"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" +" ambos ou nenhum." #: engine/core/models.py:1171 msgid "promocode already used" @@ -2397,8 +2392,8 @@ msgstr "Tipo de desconto inválido para o código promocional {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2510,7 +2505,8 @@ msgstr "O código promocional não existe" #: engine/core/models.py:1454 msgid "you can only buy physical products with shipping address specified" msgstr "" -"Você só pode comprar produtos físicos com o endereço de entrega especificado!" +"Você só pode comprar produtos físicos com o endereço de entrega " +"especificado!" #: engine/core/models.py:1473 msgid "address does not exist" @@ -2566,8 +2562,8 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Gerencia o feedback dos usuários sobre os produtos. Essa classe foi criada " -"para capturar e armazenar o feedback dos usuários sobre produtos específicos " -"que eles compraram. Ela contém atributos para armazenar comentários de " +"para capturar e armazenar o feedback dos usuários sobre produtos específicos" +" que eles compraram. Ela contém atributos para armazenar comentários de " "usuários, uma referência ao produto relacionado no pedido e uma " "classificação atribuída pelo usuário. A classe usa campos de banco de dados " "para modelar e gerenciar com eficiência os dados de feedback." @@ -2582,10 +2578,11 @@ msgid "feedback comments" msgstr "Comentários de feedback" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Faz referência ao produto específico em um pedido sobre o qual se trata esse " -"feedback" +"Faz referência ao produto específico em um pedido sobre o qual se trata esse" +" feedback" #: engine/core/models.py:1720 msgid "related order product" @@ -2612,9 +2609,9 @@ msgid "" "Product models and stores a reference to them." msgstr "" "Representa produtos associados a pedidos e seus atributos. O modelo " -"OrderProduct mantém informações sobre um produto que faz parte de um pedido, " -"incluindo detalhes como preço de compra, quantidade, atributos do produto e " -"status. Ele gerencia as notificações para o usuário e os administradores e " +"OrderProduct mantém informações sobre um produto que faz parte de um pedido," +" incluindo detalhes como preço de compra, quantidade, atributos do produto e" +" status. Ele gerencia as notificações para o usuário e os administradores e " "trata de operações como devolver o saldo do produto ou adicionar feedback. " "Esse modelo também fornece métodos e propriedades que dão suporte à lógica " "comercial, como o cálculo do preço total ou a geração de um URL de download " @@ -2728,16 +2725,16 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Representa a funcionalidade de download de ativos digitais associados a " "pedidos. A classe DigitalAssetDownload oferece a capacidade de gerenciar e " -"acessar downloads relacionados a produtos de pedidos. Ela mantém informações " -"sobre o produto do pedido associado, o número de downloads e se o ativo está " -"visível publicamente. Ela inclui um método para gerar um URL para download " -"do ativo quando o pedido associado estiver em um status concluído." +"acessar downloads relacionados a produtos de pedidos. Ela mantém informações" +" sobre o produto do pedido associado, o número de downloads e se o ativo " +"está visível publicamente. Ela inclui um método para gerar um URL para " +"download do ativo quando o pedido associado estiver em um status concluído." #: engine/core/models.py:1961 msgid "download" @@ -2783,8 +2780,8 @@ msgid "No customer activity in the last 30 days." msgstr "Nenhuma atividade de cliente nos últimos 30 dias." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Vendas diárias (30d)" +msgid "Daily sales" +msgstr "Vendas diárias" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2795,6 +2792,7 @@ msgid "Gross revenue" msgstr "Receita bruta" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Pedidos" @@ -2802,6 +2800,10 @@ msgstr "Pedidos" msgid "Gross" msgstr "Bruto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Painel de controle" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Visão geral da renda" @@ -2830,20 +2832,32 @@ msgid "No data" msgstr "No data" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Receita (bruta, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Receita (líquida, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Devoluções (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Receita líquida" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Pedidos processados (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Taxa de reembolso" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Devolvido" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Estoque baixo" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Não há itens com estoque baixo." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2858,11 +2872,11 @@ msgid "Most wished product" msgstr "Produto mais desejado" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Ainda não há dados." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Produto mais popular" @@ -2898,10 +2912,6 @@ msgstr "Nenhuma venda de categoria nos últimos 30 dias." msgid "Django site admin" msgstr "Administrador do site Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Painel de controle" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2931,8 +2941,7 @@ msgstr "Olá %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Obrigado por seu pedido #%(order.pk)s! Temos o prazer de informá-lo de que " @@ -3046,8 +3055,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Obrigado por seu pedido! Temos o prazer de confirmar sua compra. Abaixo " @@ -3120,16 +3128,16 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "As dimensões da imagem não devem exceder w{max_width} x h{max_height} pixels" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" "Trata a solicitação do índice do mapa do site e retorna uma resposta XML. " -"Ele garante que a resposta inclua o cabeçalho de tipo de conteúdo apropriado " -"para XML." +"Ele garante que a resposta inclua o cabeçalho de tipo de conteúdo apropriado" +" para XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3139,29 +3147,29 @@ msgstr "" "processa a solicitação, obtém a resposta detalhada apropriada do mapa do " "site e define o cabeçalho Content-Type para XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Retorna uma lista de idiomas suportados e suas informações correspondentes." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Retorna os parâmetros do site como um objeto JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Manipula operações de cache, como ler e definir dados de cache com uma chave " -"e um tempo limite especificados." +"Manipula operações de cache, como ler e definir dados de cache com uma chave" +" e um tempo limite especificados." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Trata os envios de formulários \"entre em contato conosco\"." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3169,78 +3177,70 @@ msgstr "" "Trata as solicitações de processamento e validação de URLs de solicitações " "POST recebidas." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Trata as consultas de pesquisa global." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Lida com a lógica de comprar como uma empresa sem registro." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Trata do download de um ativo digital associado a um pedido.\n" -"Essa função tenta servir o arquivo de ativo digital localizado no diretório " -"de armazenamento do projeto. Se o arquivo não for encontrado, será gerado um " -"erro HTTP 404 para indicar que o recurso não está disponível." +"Essa função tenta servir o arquivo de ativo digital localizado no diretório de armazenamento do projeto. Se o arquivo não for encontrado, será gerado um erro HTTP 404 para indicar que o recurso não está disponível." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid é obrigatório" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "o produto do pedido não existe" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Você só pode fazer o download do ativo digital uma vez" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "o pedido deve ser pago antes de fazer o download do ativo digital" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "O produto do pedido não tem um produto" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon não encontrado" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Trata as solicitações do favicon de um site.\n" -"Essa função tenta servir o arquivo favicon localizado no diretório estático " -"do projeto. Se o arquivo favicon não for encontrado, será gerado um erro " -"HTTP 404 para indicar que o recurso não está disponível." +"Essa função tenta servir o arquivo favicon localizado no diretório estático do projeto. Se o arquivo favicon não for encontrado, será gerado um erro HTTP 404 para indicar que o recurso não está disponível." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Redireciona a solicitação para a página de índice do administrador. A função " -"lida com as solicitações HTTP recebidas e as redireciona para a página de " +"Redireciona a solicitação para a página de índice do administrador. A função" +" lida com as solicitações HTTP recebidas e as redireciona para a página de " "índice da interface de administração do Django. Ela usa a função `redirect` " "do Django para lidar com o redirecionamento HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Retorna a versão atual do eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Retorna variáveis personalizadas para o Dashboard." @@ -3252,18 +3252,19 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"Define um conjunto de visualizações para gerenciar operações relacionadas ao " -"Evibes. A classe EvibesViewSet é herdeira do ModelViewSet e oferece " +"Define um conjunto de visualizações para gerenciar operações relacionadas ao" +" Evibes. A classe EvibesViewSet é herdeira do ModelViewSet e oferece " "funcionalidade para lidar com ações e operações em entidades Evibes. Ela " "inclui suporte para classes de serializadores dinâmicos com base na ação " "atual, permissões personalizáveis e formatos de renderização." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representa um conjunto de visualizações para gerenciar objetos " "AttributeGroup. Trata das operações relacionadas ao AttributeGroup, " @@ -3280,11 +3281,11 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Trata de operações relacionadas a objetos de atributo no aplicativo. Fornece " -"um conjunto de pontos de extremidade de API para interagir com dados de " +"Trata de operações relacionadas a objetos de atributo no aplicativo. Fornece" +" um conjunto de pontos de extremidade de API para interagir com dados de " "atributos. Essa classe gerencia a consulta, a filtragem e a serialização de " -"objetos Attribute, permitindo o controle dinâmico dos dados retornados, como " -"a filtragem por campos específicos ou a recuperação de informações " +"objetos Attribute, permitindo o controle dinâmico dos dados retornados, como" +" a filtragem por campos específicos ou a recuperação de informações " "detalhadas ou simplificadas, dependendo da solicitação." #: engine/core/viewsets.py:194 @@ -3292,8 +3293,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Um conjunto de exibições para gerenciar objetos AttributeValue. Esse " "conjunto de visualizações fornece funcionalidade para listar, recuperar, " @@ -3313,8 +3314,8 @@ msgstr "" "Gerencia as visualizações das operações relacionadas à categoria. A classe " "CategoryViewSet é responsável pelo tratamento das operações relacionadas ao " "modelo de categoria no sistema. Ela suporta a recuperação, a filtragem e a " -"serialização de dados de categoria. O conjunto de visualizações também impõe " -"permissões para garantir que somente usuários autorizados possam acessar " +"serialização de dados de categoria. O conjunto de visualizações também impõe" +" permissões para garantir que somente usuários autorizados possam acessar " "dados específicos." #: engine/core/viewsets.py:326 @@ -3324,8 +3325,8 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"Representa um conjunto de visualizações para gerenciar instâncias de marcas. " -"Essa classe fornece funcionalidade para consulta, filtragem e serialização " +"Representa um conjunto de visualizações para gerenciar instâncias de marcas." +" Essa classe fornece funcionalidade para consulta, filtragem e serialização " "de objetos de marca. Ela usa a estrutura ViewSet do Django para simplificar " "a implementação de pontos de extremidade da API para objetos de marca." @@ -3341,9 +3342,9 @@ msgid "" msgstr "" "Gerencia as operações relacionadas ao modelo `Product` no sistema. Essa " "classe fornece um conjunto de visualizações para gerenciar produtos, " -"incluindo filtragem, serialização e operações em instâncias específicas. Ela " -"se estende do `EvibesViewSet` para usar a funcionalidade comum e se integra " -"à estrutura Django REST para operações de API RESTful. Inclui métodos para " +"incluindo filtragem, serialização e operações em instâncias específicas. Ela" +" se estende do `EvibesViewSet` para usar a funcionalidade comum e se integra" +" à estrutura Django REST para operações de API RESTful. Inclui métodos para " "recuperar detalhes do produto, aplicar permissões e acessar o feedback " "relacionado de um produto." @@ -3359,39 +3360,39 @@ msgstr "" "fornecedor. Esse conjunto de visualizações permite a busca, a filtragem e a " "serialização de dados do fornecedor. Ele define o conjunto de consultas, as " "configurações de filtro e as classes de serializador usadas para lidar com " -"diferentes ações. O objetivo dessa classe é fornecer acesso simplificado aos " -"recursos relacionados ao Vendor por meio da estrutura Django REST." +"diferentes ações. O objetivo dessa classe é fornecer acesso simplificado aos" +" recursos relacionados ao Vendor por meio da estrutura Django REST." #: engine/core/viewsets.py:594 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Representação de um conjunto de visualizações que manipula objetos de " -"feedback. Essa classe gerencia operações relacionadas a objetos de feedback, " -"incluindo listagem, filtragem e recuperação de detalhes. O objetivo desse " +"feedback. Essa classe gerencia operações relacionadas a objetos de feedback," +" incluindo listagem, filtragem e recuperação de detalhes. O objetivo desse " "conjunto de visualizações é fornecer serializadores diferentes para ações " "diferentes e implementar o manuseio baseado em permissão de objetos de " -"feedback acessíveis. Ela estende a base `EvibesViewSet` e faz uso do sistema " -"de filtragem do Django para consultar dados." +"feedback acessíveis. Ela estende a base `EvibesViewSet` e faz uso do sistema" +" de filtragem do Django para consultar dados." #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet para gerenciar pedidos e operações relacionadas. Essa classe oferece " -"funcionalidade para recuperar, modificar e gerenciar objetos de pedido. Ela " -"inclui vários pontos de extremidade para lidar com operações de pedidos, " +"ViewSet para gerenciar pedidos e operações relacionadas. Essa classe oferece" +" funcionalidade para recuperar, modificar e gerenciar objetos de pedido. Ela" +" inclui vários pontos de extremidade para lidar com operações de pedidos, " "como adicionar ou remover produtos, realizar compras para usuários " "registrados e não registrados e recuperar os pedidos pendentes do usuário " "autenticado atual. O ViewSet usa vários serializadores com base na ação " @@ -3402,13 +3403,13 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Fornece um conjunto de visualizações para gerenciar entidades OrderProduct. " -"Esse conjunto de visualizações permite operações CRUD e ações personalizadas " -"específicas do modelo OrderProduct. Ele inclui filtragem, verificações de " +"Esse conjunto de visualizações permite operações CRUD e ações personalizadas" +" específicas do modelo OrderProduct. Ele inclui filtragem, verificações de " "permissão e troca de serializador com base na ação solicitada. Além disso, " "fornece uma ação detalhada para lidar com feedback sobre instâncias de " "OrderProduct" @@ -3437,8 +3438,8 @@ msgstr "Trata de operações relacionadas a dados de estoque no sistema." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3461,8 +3462,8 @@ msgid "" "on the request context." msgstr "" "Essa classe fornece a funcionalidade de conjunto de visualizações para " -"gerenciar objetos `Address`. A classe AddressViewSet permite operações CRUD, " -"filtragem e ações personalizadas relacionadas a entidades de endereço. Ela " +"gerenciar objetos `Address`. A classe AddressViewSet permite operações CRUD," +" filtragem e ações personalizadas relacionadas a entidades de endereço. Ela " "inclui comportamentos especializados para diferentes métodos HTTP, " "substituições de serializadores e tratamento de permissões com base no " "contexto da solicitação." diff --git a/engine/core/locale/ro_RO/LC_MESSAGES/django.mo b/engine/core/locale/ro_RO/LC_MESSAGES/django.mo index e57b4690071cd3193f2da8e0281b297634c2d38e..4d59abb6fcf07685fcbb6a936434622a8b865e6b 100644 GIT binary patch delta 14877 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -29,10 +29,11 @@ msgstr "Este activ" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" -"Dacă este setat la false, acest obiect nu poate fi văzut de utilizatori fără " -"permisiunea necesară" +"Dacă este setat la false, acest obiect nu poate fi văzut de utilizatori fără" +" permisiunea necesară" #: engine/core/abstract.py:23 engine/core/choices.py:18 msgid "created" @@ -156,7 +157,8 @@ msgstr "Livrat" msgid "canceled" msgstr "Anulată" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Eșuat" @@ -194,8 +196,8 @@ msgid "" "negotiation. Language can be selected with Accept-Language and query " "parameter both." msgstr "" -"Schema OpenApi3 pentru acest API. Formatul poate fi selectat prin negocierea " -"conținutului. Limba poate fi selectată atât cu Accept-Language, cât și cu " +"Schema OpenApi3 pentru acest API. Formatul poate fi selectat prin negocierea" +" conținutului. Limba poate fi selectată atât cu Accept-Language, cât și cu " "parametrul de interogare." #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 @@ -208,8 +210,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicați doar o cheie pentru a citi datele permise din cache.\n" -"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în " -"cache." +"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în cache." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -234,8 +235,8 @@ msgstr "Căutare între produse, categorii și mărci" #: engine/core/docs/drf/views.py:130 msgid "global search endpoint to query across project's tables" msgstr "" -"Punct final de căutare globală pentru a efectua interogări în toate tabelele " -"proiectului" +"Punct final de căutare globală pentru a efectua interogări în toate tabelele" +" proiectului" #: engine/core/docs/drf/views.py:139 msgid "purchase an order as a business" @@ -246,8 +247,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid` " -"și `attributes` furnizate." +"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid`" +" și `attributes` furnizate." #: engine/core/docs/drf/views.py:164 msgid "download a digital asset from purchased digital order" @@ -272,10 +273,12 @@ msgstr "Ștergerea unui grup de atribute" #: engine/core/docs/drf/viewsets.py:89 msgid "rewrite an existing attribute group saving non-editables" msgstr "" -"Rescrierea unui grup de atribute existent cu salvarea elementelor needitabile" +"Rescrierea unui grup de atribute existent cu salvarea elementelor " +"needitabile" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unui grup de atribute existent, cu salvarea " "elementelor needitabile" @@ -328,7 +331,8 @@ msgstr "" "Rescrierea unei valori de atribut existente care salvează non-editabile" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unei valori de atribut existente salvând " "elementele needitabile" @@ -387,8 +391,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Căutare de substring insensibilă la majuscule în human_readable_id, " "order_products.product.name și order_products.product.partnumber" @@ -427,9 +431,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordonați după unul dintre: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefixați cu \"-\" pentru " @@ -634,29 +638,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrați după una sau mai multe perechi nume de atribut/valoare. \n" "- **Sintaxa**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metode** (valoarea implicită este `icontains` dacă este omisă): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`\n" -"- **Value typing**: JSON este încercat în primul rând (astfel încât să " -"puteți trece liste/dicte), `true`/`false` pentru booleeni, întregi, float; " -"în caz contrar tratat ca string. \n" -"- **Base64**: prefix cu `b64-` pentru a codifica valoarea brută în baza64 în " -"condiții de siguranță URL. \n" +"- **Metode** (valoarea implicită este `icontains` dacă este omisă): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Value typing**: JSON este încercat în primul rând (astfel încât să puteți trece liste/dicte), `true`/`false` pentru booleeni, întregi, float; în caz contrar tratat ca string. \n" +"- **Base64**: prefix cu `b64-` pentru a codifica valoarea brută în baza64 în condiții de siguranță URL. \n" "Exemple: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -671,12 +664,10 @@ msgstr "(exact) UUID al produsului" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați " -"cu `-` pentru descrescător. \n" +"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați cu `-` pentru descrescător. \n" "**Autorizate:** uuid, rating, nume, slug, creat, modificat, preț, aleatoriu" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -751,8 +742,8 @@ msgstr "Autocompletare adresă de intrare" #: engine/core/docs/drf/viewsets.py:794 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " -"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" +" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l nl-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a plăți -a vibes_auth -a blog" @@ -836,7 +827,8 @@ msgstr "Ștergeți un brand" #: engine/core/docs/drf/viewsets.py:974 msgid "rewrite an existing brand saving non-editables" -msgstr "Rescrierea unui brand existent care economisește materiale needitabile" +msgstr "" +"Rescrierea unui brand existent care economisește materiale needitabile" #: engine/core/docs/drf/viewsets.py:981 msgid "rewrite some fields of an existing brand saving non-editables" @@ -888,7 +880,8 @@ msgstr "Ștergeți imaginea unui produs" #: engine/core/docs/drf/viewsets.py:1079 msgid "rewrite an existing product image saving non-editables" -msgstr "Rescrieți o imagine de produs existentă salvând elementele needitabile" +msgstr "" +"Rescrieți o imagine de produs existentă salvând elementele needitabile" #: engine/core/docs/drf/viewsets.py:1086 msgid "rewrite some fields of an existing product image saving non-editables" @@ -940,7 +933,8 @@ msgstr "Ștergeți o promovare" #: engine/core/docs/drf/viewsets.py:1169 msgid "rewrite an existing promotion saving non-editables" -msgstr "Rescrierea unei promoții existente cu salvarea elementelor needitabile" +msgstr "" +"Rescrierea unei promoții existente cu salvarea elementelor needitabile" #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" @@ -1152,7 +1146,7 @@ msgstr "Date în cache" msgid "camelized JSON data from the requested URL" msgstr "Date JSON Camelizate de la URL-ul solicitat" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Sunt permise numai URL-urile care încep cu http(s)://" @@ -1237,8 +1231,8 @@ msgstr "Cumpărați o comandă" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Vă rugăm să trimiteți atributele sub formă de șir format ca attr1=valoare1, " "attr2=valoare2" @@ -1317,10 +1311,11 @@ msgstr "" "categorii." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" -"Prețurile minime și maxime pentru produsele din această categorie, dacă sunt " -"disponibile." +"Prețurile minime și maxime pentru produsele din această categorie, dacă sunt" +" disponibile." #: engine/core/graphene/object_types.py:205 msgid "tags for this category" @@ -1592,8 +1587,8 @@ msgid "" msgstr "" "Reprezintă un grup de atribute, care poate fi ierarhic. Această clasă este " "utilizată pentru gestionarea și organizarea grupurilor de atribute. Un grup " -"de atribute poate avea un grup părinte, formând o structură ierarhică. Acest " -"lucru poate fi util pentru clasificarea și gestionarea mai eficientă a " +"de atribute poate avea un grup părinte, formând o structură ierarhică. Acest" +" lucru poate fi util pentru clasificarea și gestionarea mai eficientă a " "atributelor în cadrul unui sistem complex." #: engine/core/models.py:91 @@ -1717,8 +1712,8 @@ msgid "" msgstr "" "Reprezintă o etichetă de categorie utilizată pentru produse. Această clasă " "modelează o etichetă de categorie care poate fi utilizată pentru asocierea " -"și clasificarea produselor. Aceasta include atribute pentru un identificator " -"intern al etichetei și un nume de afișare ușor de utilizat." +"și clasificarea produselor. Aceasta include atribute pentru un identificator" +" intern al etichetei și un nume de afișare ușor de utilizat." #: engine/core/models.py:254 msgid "category tag" @@ -1746,9 +1741,9 @@ msgstr "" "include câmpuri pentru metadate și reprezentare vizuală, care servesc drept " "bază pentru caracteristicile legate de categorie. Această clasă este " "utilizată de obicei pentru a defini și gestiona categoriile de produse sau " -"alte grupări similare în cadrul unei aplicații, permițând utilizatorilor sau " -"administratorilor să specifice numele, descrierea și ierarhia categoriilor, " -"precum și să atribuie atribute precum imagini, etichete sau prioritate." +"alte grupări similare în cadrul unei aplicații, permițând utilizatorilor sau" +" administratorilor să specifice numele, descrierea și ierarhia categoriilor," +" precum și să atribuie atribute precum imagini, etichete sau prioritate." #: engine/core/models.py:274 msgid "upload an image representing this category" @@ -1760,7 +1755,8 @@ msgstr "Categorie imagine" #: engine/core/models.py:282 msgid "define a markup percentage for products in this category" -msgstr "Definiți un procent de majorare pentru produsele din această categorie" +msgstr "" +"Definiți un procent de majorare pentru produsele din această categorie" #: engine/core/models.py:291 msgid "parent of this category to form a hierarchical structure" @@ -1799,10 +1795,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Reprezintă un obiect Brand în sistem. Această clasă gestionează informațiile " -"și atributele legate de o marcă, inclusiv numele acesteia, logo-urile, " +"Reprezintă un obiect Brand în sistem. Această clasă gestionează informațiile" +" și atributele legate de o marcă, inclusiv numele acesteia, logo-urile, " "descrierea, categoriile asociate, un slug unic și ordinea de prioritate. " "Aceasta permite organizarea și reprezentarea datelor legate de marcă în " "cadrul aplicației." @@ -1849,8 +1846,8 @@ msgstr "Categorii" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1939,14 +1936,14 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"Reprezintă un produs cu atribute precum categoria, marca, etichetele, starea " -"digitală, numele, descrierea, numărul piesei și slug-ul. Oferă proprietăți " +"Reprezintă un produs cu atribute precum categoria, marca, etichetele, starea" +" digitală, numele, descrierea, numărul piesei și slug-ul. Oferă proprietăți " "utilitare conexe pentru a prelua evaluări, numărul de comentarii, prețul, " "cantitatea și comenzile totale. Concepută pentru a fi utilizată într-un " "sistem care gestionează comerțul electronic sau inventarul. Această clasă " "interacționează cu modele conexe (cum ar fi Category, Brand și ProductTag) " -"și gestionează memoria cache pentru proprietățile accesate frecvent pentru a " -"îmbunătăți performanța. Este utilizată pentru a defini și manipula datele " +"și gestionează memoria cache pentru proprietățile accesate frecvent pentru a" +" îmbunătăți performanța. Este utilizată pentru a defini și manipula datele " "despre produse și informațiile asociate acestora în cadrul unei aplicații." #: engine/core/models.py:585 @@ -2002,16 +1999,16 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Reprezintă un atribut în sistem. Această clasă este utilizată pentru " "definirea și gestionarea atributelor, care sunt elemente de date " "personalizabile care pot fi asociate cu alte entități. Atributele au " "asociate categorii, grupuri, tipuri de valori și nume. Modelul acceptă mai " -"multe tipuri de valori, inclusiv șir, număr întreg, float, boolean, array și " -"obiect. Acest lucru permite structurarea dinamică și flexibilă a datelor." +"multe tipuri de valori, inclusiv șir, număr întreg, float, boolean, array și" +" obiect. Acest lucru permite structurarea dinamică și flexibilă a datelor." #: engine/core/models.py:733 msgid "group of this attribute" @@ -2074,9 +2071,9 @@ msgstr "Atribut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Reprezintă o valoare specifică pentru un atribut care este legat de un " "produs. Leagă \"atributul\" de o \"valoare\" unică, permițând o mai bună " @@ -2097,8 +2094,8 @@ msgstr "Valoarea specifică pentru acest atribut" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2147,8 +2144,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Reprezintă o campanie promoțională pentru produse cu o reducere. Această " "clasă este utilizată pentru a defini și gestiona campanii promoționale care " @@ -2196,9 +2193,9 @@ msgid "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"Reprezintă lista de dorințe a unui utilizator pentru stocarea și gestionarea " -"produselor dorite. Clasa oferă funcționalitatea de a gestiona o colecție de " -"produse, suportând operațiuni precum adăugarea și eliminarea de produse, " +"Reprezintă lista de dorințe a unui utilizator pentru stocarea și gestionarea" +" produselor dorite. Clasa oferă funcționalitatea de a gestiona o colecție de" +" produse, suportând operațiuni precum adăugarea și eliminarea de produse, " "precum și operațiuni pentru adăugarea și eliminarea mai multor produse " "simultan." @@ -2224,8 +2221,8 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Reprezintă o înregistrare documentară legată de un produs. Această clasă " "este utilizată pentru a stoca informații despre documentarele legate de " @@ -2249,14 +2246,14 @@ msgstr "Nerezolvat" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Reprezintă o entitate de adresă care include detalii despre locație și " "asocieri cu un utilizator. Oferă funcționalitate pentru stocarea datelor " @@ -2266,7 +2263,8 @@ msgstr "" "geolocalizarea (longitudine și latitudine). Aceasta suportă integrarea cu " "API-urile de geocodare, permițând stocarea răspunsurilor API brute pentru " "procesare sau inspecție ulterioară. De asemenea, clasa permite asocierea " -"unei adrese cu un utilizator, facilitând gestionarea personalizată a datelor." +"unei adrese cu un utilizator, facilitând gestionarea personalizată a " +"datelor." #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2334,8 +2332,8 @@ msgstr "" "PromoCode stochează detalii despre un cod promoțional, inclusiv " "identificatorul său unic, proprietățile de reducere (sumă sau procent), " "perioada de valabilitate, utilizatorul asociat (dacă există) și starea " -"utilizării acestuia. Aceasta include funcționalități de validare și aplicare " -"a codului promoțional la o comandă, asigurându-se în același timp că sunt " +"utilizării acestuia. Aceasta include funcționalități de validare și aplicare" +" a codului promoțional la o comandă, asigurându-se în același timp că sunt " "respectate constrângerile." #: engine/core/models.py:1087 @@ -2425,17 +2423,17 @@ msgstr "Tip de reducere invalid pentru codul promoțional {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Reprezintă o comandă plasată de un utilizator. Această clasă modelează o " "comandă în cadrul aplicației, inclusiv diferitele sale atribute, cum ar fi " -"informațiile privind facturarea și expedierea, starea, utilizatorul asociat, " -"notificările și operațiunile conexe. Comenzile pot avea produse asociate, se " -"pot aplica promoții, se pot stabili adrese și se pot actualiza detaliile de " -"expediere sau de facturare. În egală măsură, funcționalitatea sprijină " +"informațiile privind facturarea și expedierea, starea, utilizatorul asociat," +" notificările și operațiunile conexe. Comenzile pot avea produse asociate, " +"se pot aplica promoții, se pot stabili adrese și se pot actualiza detaliile " +"de expediere sau de facturare. În egală măsură, funcționalitatea sprijină " "gestionarea produselor în ciclul de viață al comenzii." #: engine/core/models.py:1213 @@ -2585,7 +2583,8 @@ msgstr "" msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Metodă de plată invalidă: {payment_method} de la {available_payment_methods}!" +"Metodă de plată invalidă: {payment_method} de la " +"{available_payment_methods}!" #: engine/core/models.py:1699 msgid "" @@ -2612,10 +2611,11 @@ msgid "feedback comments" msgstr "Comentarii de feedback" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Face referire la produsul specific dintr-o comandă despre care este vorba în " -"acest feedback" +"Face referire la produsul specific dintr-o comandă despre care este vorba în" +" acest feedback" #: engine/core/models.py:1720 msgid "related order product" @@ -2643,8 +2643,8 @@ msgid "" msgstr "" "Reprezintă produsele asociate comenzilor și atributele acestora. Modelul " "OrderProduct păstrează informații despre un produs care face parte dintr-o " -"comandă, inclusiv detalii precum prețul de achiziție, cantitatea, atributele " -"produsului și starea acestuia. Acesta gestionează notificările pentru " +"comandă, inclusiv detalii precum prețul de achiziție, cantitatea, atributele" +" produsului și starea acestuia. Acesta gestionează notificările pentru " "utilizator și administratori și se ocupă de operațiuni precum returnarea " "soldului produsului sau adăugarea de feedback. Acest model oferă, de " "asemenea, metode și proprietăți care susțin logica de afaceri, cum ar fi " @@ -2760,17 +2760,17 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Reprezintă funcționalitatea de descărcare pentru activele digitale asociate " "comenzilor. Clasa DigitalAssetDownload oferă posibilitatea de a gestiona și " "de a accesa descărcările legate de produsele de comandă. Aceasta păstrează " -"informații despre produsul de comandă asociat, numărul de descărcări și dacă " -"activul este vizibil public. Aceasta include o metodă de generare a unei " -"adrese URL pentru descărcarea activului atunci când comanda asociată este în " -"stare finalizată." +"informații despre produsul de comandă asociat, numărul de descărcări și dacă" +" activul este vizibil public. Aceasta include o metodă de generare a unei " +"adrese URL pentru descărcarea activului atunci când comanda asociată este în" +" stare finalizată." #: engine/core/models.py:1961 msgid "download" @@ -2784,8 +2784,8 @@ msgstr "Descărcări" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat " -"pentru a adăuga feedback." +"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat" +" pentru a adăuga feedback." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2816,8 +2816,8 @@ msgid "No customer activity in the last 30 days." msgstr "Nicio activitate a clientului în ultimele 30 de zile." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Vânzări zilnice (30d)" +msgid "Daily sales" +msgstr "Vânzări zilnice" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2828,6 +2828,7 @@ msgid "Gross revenue" msgstr "Venituri brute" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Ordine" @@ -2835,6 +2836,10 @@ msgstr "Ordine" msgid "Gross" msgstr "Brut" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Tablou de bord" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Prezentare generală a veniturilor" @@ -2863,20 +2868,32 @@ msgid "No data" msgstr "Fără dată" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Venituri (brute, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Venituri (nete, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Returnări (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Venituri nete" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Comenzi procesate (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Rata de rambursare" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Returnat" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Stoc redus" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Nu există articole cu stoc redus." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2891,11 +2908,11 @@ msgid "Most wished product" msgstr "Cel mai dorit produs" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Nu există încă date." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Cel mai popular produs" @@ -2931,10 +2948,6 @@ msgstr "Nicio categorie de vânzări în ultimele 30 de zile." msgid "Django site admin" msgstr "Administratorul site-ului Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Tablou de bord" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2964,8 +2977,7 @@ msgstr "Bună ziua %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Vă mulțumim pentru comanda dvs. #%(order.pk)s! Suntem încântați să vă " @@ -3080,12 +3092,11 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția. " -"Mai jos sunt detaliile comenzii dvs:" +"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția." +" Mai jos sunt detaliile comenzii dvs:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -3155,7 +3166,7 @@ msgstr "" "Dimensiunile imaginii nu trebuie să depășească w{max_width} x h{max_height} " "pixeli" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3163,119 +3174,110 @@ msgstr "" "Gestionează cererea pentru indexul sitemap și returnează un răspuns XML. Se " "asigură că răspunsul include antetul tip de conținut adecvat pentru XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" "Gestionează răspunsul de vizualizare detaliată pentru o hartă a site-ului. " -"Această funcție procesează cererea, extrage răspunsul detaliat corespunzător " -"al hărții site-ului și stabilește antetul Content-Type pentru XML." +"Această funcție procesează cererea, extrage răspunsul detaliat corespunzător" +" al hărții site-ului și stabilește antetul Content-Type pentru XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returnează o listă a limbilor acceptate și informațiile corespunzătoare." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnează parametrii site-ului web sub forma unui obiect JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Gestionează operațiunile din cache, cum ar fi citirea și setarea datelor din " -"cache cu o cheie și un timeout specificate." +"Gestionează operațiunile din cache, cum ar fi citirea și setarea datelor din" +" cache cu o cheie și un timeout specificate." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Gestionează trimiterea formularelor `contact us`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"Gestionează cererile de procesare și validare a URL-urilor din cererile POST " -"primite." +"Gestionează cererile de procesare și validare a URL-urilor din cererile POST" +" primite." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Gestionează interogările de căutare globală." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Gestionează logica cumpărării ca o afacere fără înregistrare." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestionează descărcarea unui bun digital asociat cu o comandă.\n" -"Această funcție încearcă să servească fișierul activului digital situat în " -"directorul de stocare al proiectului. Dacă fișierul nu este găsit, este " -"generată o eroare HTTP 404 pentru a indica faptul că resursa nu este " -"disponibilă." +"Această funcție încearcă să servească fișierul activului digital situat în directorul de stocare al proiectului. Dacă fișierul nu este găsit, este generată o eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid este necesar" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "comanda produsul nu există" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Puteți descărca activul digital o singură dată" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "comanda trebuie plătită înainte de descărcarea activului digital" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Produsul de comandă nu are un produs" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon nu a fost găsit" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Gestionează cererile pentru favicon-ul unui site web.\n" -"Această funcție încearcă să servească fișierul favicon situat în directorul " -"static al proiectului. Dacă fișierul favicon nu este găsit, este generată o " -"eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." +"Această funcție încearcă să servească fișierul favicon situat în directorul static al proiectului. Dacă fișierul favicon nu este găsit, este generată o eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Redirecționează solicitarea către pagina de index a administratorului. " -"Funcția gestionează cererile HTTP primite și le redirecționează către pagina " -"index a interfeței de administrare Django. Aceasta utilizează funcția " +"Funcția gestionează cererile HTTP primite și le redirecționează către pagina" +" index a interfeței de administrare Django. Aceasta utilizează funcția " "`redirect` din Django pentru gestionarea redirecționării HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Returnează versiunea curentă a eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Returnează variabilele personalizate pentru tabloul de bord." @@ -3296,10 +3298,11 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Reprezintă un set de vizualizări pentru gestionarea obiectelor " "AttributeGroup. Gestionează operațiunile legate de AttributeGroup, inclusiv " @@ -3316,20 +3319,20 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"Gestionează operațiunile legate de obiectele Attribute în cadrul aplicației. " -"Oferă un set de puncte finale API pentru a interacționa cu datele Attribute. " -"Această clasă gestionează interogarea, filtrarea și serializarea obiectelor " -"Attribute, permițând controlul dinamic asupra datelor returnate, cum ar fi " -"filtrarea după câmpuri specifice sau recuperarea de informații detaliate sau " -"simplificate în funcție de cerere." +"Gestionează operațiunile legate de obiectele Attribute în cadrul aplicației." +" Oferă un set de puncte finale API pentru a interacționa cu datele " +"Attribute. Această clasă gestionează interogarea, filtrarea și serializarea " +"obiectelor Attribute, permițând controlul dinamic asupra datelor returnate, " +"cum ar fi filtrarea după câmpuri specifice sau recuperarea de informații " +"detaliate sau simplificate în funcție de cerere." #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Un set de vizualizări pentru gestionarea obiectelor AttributeValue. Acest " "set de vizualizări oferă funcționalități pentru listarea, extragerea, " @@ -3377,9 +3380,9 @@ msgid "" msgstr "" "Gestionează operațiunile legate de modelul `Product` din sistem. Această " "clasă oferă un set de vizualizări pentru gestionarea produselor, inclusiv " -"filtrarea lor, serializarea și operațiunile asupra instanțelor specifice. Se " -"extinde de la `EvibesViewSet` pentru a utiliza funcționalități comune și se " -"integrează cu cadrul REST Django pentru operațiuni API RESTful. Include " +"filtrarea lor, serializarea și operațiunile asupra instanțelor specifice. Se" +" extinde de la `EvibesViewSet` pentru a utiliza funcționalități comune și se" +" integrează cu cadrul REST Django pentru operațiuni API RESTful. Include " "metode pentru recuperarea detaliilor produsului, aplicarea permisiunilor și " "accesarea feedback-ului aferent unui produs." @@ -3391,8 +3394,8 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Reprezintă un set de vizualizări pentru gestionarea obiectelor Vendor. Acest " -"set de vizualizare permite preluarea, filtrarea și serializarea datelor " +"Reprezintă un set de vizualizări pentru gestionarea obiectelor Vendor. Acest" +" set de vizualizare permite preluarea, filtrarea și serializarea datelor " "furnizorului. Aceasta definește queryset-ul, configurațiile de filtrare și " "clasele de serializare utilizate pentru a gestiona diferite acțiuni. Scopul " "acestei clase este de a oferi acces simplificat la resursele legate de " @@ -3403,14 +3406,14 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Reprezentarea unui set de vizualizări care gestionează obiecte Feedback. " "Această clasă gestionează operațiunile legate de obiectele Feedback, " -"inclusiv listarea, filtrarea și extragerea detaliilor. Scopul acestui set de " -"vizualizări este de a furniza serializatoare diferite pentru acțiuni " +"inclusiv listarea, filtrarea și extragerea detaliilor. Scopul acestui set de" +" vizualizări este de a furniza serializatoare diferite pentru acțiuni " "diferite și de a implementa gestionarea pe bază de permisiuni a obiectelor " "Feedback accesibile. Aceasta extinde clasa de bază `EvibesViewSet` și " "utilizează sistemul de filtrare Django pentru interogarea datelor." @@ -3420,9 +3423,9 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet pentru gestionarea comenzilor și a operațiunilor conexe. Această " @@ -3439,8 +3442,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Oferă un set de vizualizări pentru gestionarea entităților OrderProduct. " @@ -3452,7 +3455,8 @@ msgstr "" #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " -msgstr "Gestionează operațiunile legate de imaginile produselor din aplicație." +msgstr "" +"Gestionează operațiunile legate de imaginile produselor din aplicație." #: engine/core/viewsets.py:892 msgid "" @@ -3475,8 +3479,8 @@ msgstr "" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3499,8 +3503,8 @@ msgid "" "on the request context." msgstr "" "Această clasă oferă funcționalități de tip viewset pentru gestionarea " -"obiectelor `Address`. Clasa AddressViewSet permite operațiuni CRUD, filtrare " -"și acțiuni personalizate legate de entitățile adresă. Aceasta include " +"obiectelor `Address`. Clasa AddressViewSet permite operațiuni CRUD, filtrare" +" și acțiuni personalizate legate de entitățile adresă. Aceasta include " "comportamente specializate pentru diferite metode HTTP, înlocuiri ale " "serializatorului și gestionarea permisiunilor în funcție de contextul " "cererii." diff --git a/engine/core/locale/ru_RU/LC_MESSAGES/django.mo b/engine/core/locale/ru_RU/LC_MESSAGES/django.mo index 5abeee3c23f019f83dc0cdc399c3ca30a858f3b6..9d8384deab50f8eb05f4f50931e31c11295ed008 100644 GIT binary patch delta 14952 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 delta 14938 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Активен" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Если установлено значение false, этот объект не может быть виден " "пользователям без необходимого разрешения" @@ -156,7 +157,8 @@ msgstr "Доставлено" msgid "canceled" msgstr "Отменено" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Не удалось" @@ -274,7 +276,8 @@ msgstr "" "элементов" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Переписывание некоторых полей существующей группы атрибутов с сохранением " "нередактируемых полей" @@ -328,7 +331,8 @@ msgstr "" "значений" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Переписывание некоторых полей существующего значения атрибута с сохранением " "нередактируемых значений" @@ -388,11 +392,11 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"Поиск подстроки с учетом регистра в human_readable_id, order_products." -"product.name и order_products.product.partnumber" +"Поиск подстроки с учетом регистра в human_readable_id, " +"order_products.product.name и order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -428,9 +432,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Упорядочивайте по одному из следующих признаков: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Префикс '-' " @@ -518,8 +522,8 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и " -"`attributes`." +"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и" +" `attributes`." #: engine/core/docs/drf/viewsets.py:438 msgid "remove product from order" @@ -542,8 +546,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и " -"`attributes`." +"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и" +" `attributes`." #: engine/core/docs/drf/viewsets.py:459 msgid "list all wishlists (simple view)" @@ -633,29 +637,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Фильтр по одной или нескольким парам имя/значение атрибута. \n" "- **Синтаксис**: `attr_name=method-value[;attr2=method2-value2]...`.\n" -"- **Методы** (по умолчанию используется `icontains`, если опущено): " -"`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, " -"`istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, " -"`gt`, `gte`, `in`.\n" -"- **Типизация значений**: JSON сначала пытается принять значение (так что вы " -"можете передавать списки/дискреты), `true`/`false` для булевых, целых чисел, " -"плавающих; в противном случае обрабатывается как строка. \n" -"- **Base64**: префикс `b64-` для безопасного для URL base64-кодирования " -"исходного значения. \n" +"- **Методы** (по умолчанию используется `icontains`, если опущено): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- **Типизация значений**: JSON сначала пытается принять значение (так что вы можете передавать списки/дискреты), `true`/`false` для булевых, целых чисел, плавающих; в противном случае обрабатывается как строка. \n" +"- **Base64**: префикс `b64-` для безопасного для URL base64-кодирования исходного значения. \n" "Примеры: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." @@ -670,14 +663,11 @@ msgstr "(точный) UUID продукта" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Список полей для сортировки, разделенных запятыми. Для сортировки по " -"убыванию используйте префикс `-`. \n" -"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, " -"random" +"Список полей для сортировки, разделенных запятыми. Для сортировки по убыванию используйте префикс `-`. \n" +"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -1155,7 +1145,7 @@ msgstr "Кэшированные данные" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-данные из запрашиваемого URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Допускаются только URL-адреса, начинающиеся с http(s)://" @@ -1241,8 +1231,8 @@ msgstr "Купить заказ" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Пожалуйста, отправьте атрибуты в виде строки, отформатированной как " "attr1=value1,attr2=value2" @@ -1320,7 +1310,8 @@ msgstr "" "Какие атрибуты и значения можно использовать для фильтрации этой категории." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Минимальные и максимальные цены на товары в этой категории, если они " "доступны." @@ -1638,8 +1629,8 @@ msgstr "" #: engine/core/models.py:124 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API " -"поставщика." +"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API" +" поставщика." #: engine/core/models.py:125 msgid "authentication info" @@ -1687,8 +1678,8 @@ msgid "" msgstr "" "Представляет тег продукта, используемый для классификации или идентификации " "продуктов. Класс ProductTag предназначен для уникальной идентификации и " -"классификации продуктов с помощью комбинации внутреннего идентификатора тега " -"и удобного для пользователя отображаемого имени. Он поддерживает операции, " +"классификации продуктов с помощью комбинации внутреннего идентификатора тега" +" и удобного для пользователя отображаемого имени. Он поддерживает операции, " "экспортируемые через миксины, и обеспечивает настройку метаданных для " "административных целей." @@ -1720,8 +1711,8 @@ msgid "" msgstr "" "Представляет тег категории, используемый для продуктов. Этот класс " "моделирует тег категории, который может быть использован для ассоциации и " -"классификации продуктов. Он включает атрибуты для внутреннего идентификатора " -"тега и удобного для пользователя отображаемого имени." +"классификации продуктов. Он включает атрибуты для внутреннего идентификатора" +" тега и удобного для пользователя отображаемого имени." #: engine/core/models.py:254 msgid "category tag" @@ -1745,8 +1736,8 @@ msgid "" msgstr "" "Представляет собой объект категории для организации и группировки связанных " "элементов в иерархическую структуру. Категории могут иметь иерархические " -"отношения с другими категориями, поддерживая отношения \"родитель-ребенок\". " -"Класс включает поля для метаданных и визуального представления, которые " +"отношения с другими категориями, поддерживая отношения \"родитель-ребенок\"." +" Класс включает поля для метаданных и визуального представления, которые " "служат основой для функций, связанных с категориями. Этот класс обычно " "используется для определения и управления категориями товаров или другими " "подобными группировками в приложении, позволяя пользователям или " @@ -1802,7 +1793,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Представляет объект Brand в системе. Этот класс обрабатывает информацию и " "атрибуты, связанные с брендом, включая его название, логотипы, описание, " @@ -1851,8 +1843,8 @@ msgstr "Категории" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1945,8 +1937,8 @@ msgstr "" "цифровой статус, название, описание, номер детали и метка. Предоставляет " "связанные с ним полезные свойства для получения оценок, количества отзывов, " "цены, количества и общего числа заказов. Предназначен для использования в " -"системе, которая занимается электронной коммерцией или управлением запасами. " -"Этот класс взаимодействует со связанными моделями (такими как Category, " +"системе, которая занимается электронной коммерцией или управлением запасами." +" Этот класс взаимодействует со связанными моделями (такими как Category, " "Brand и ProductTag) и управляет кэшированием часто используемых свойств для " "повышения производительности. Он используется для определения и " "манипулирования данными о товаре и связанной с ним информацией в приложении." @@ -2004,8 +1996,8 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Представляет атрибут в системе. Этот класс используется для определения и " @@ -2076,12 +2068,12 @@ msgstr "Атрибут" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Представляет собой конкретное значение для атрибута, связанного с продуктом. " -"Он связывает \"атрибут\" с уникальным \"значением\", позволяя лучше " +"Представляет собой конкретное значение для атрибута, связанного с продуктом." +" Он связывает \"атрибут\" с уникальным \"значением\", позволяя лучше " "организовать и динамически представить характеристики продукта." #: engine/core/models.py:788 @@ -2099,8 +2091,8 @@ msgstr "Конкретное значение для этого атрибута #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2150,8 +2142,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Представляет рекламную кампанию для товаров со скидкой. Этот класс " "используется для определения и управления рекламными кампаниями, " @@ -2227,15 +2219,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Представляет документальную запись, связанную с продуктом. Этот класс " "используется для хранения информации о документальных записях, связанных с " "конкретными продуктами, включая загруженные файлы и их метаданные. Он " "содержит методы и свойства для обработки типа файла и пути хранения " -"документальных файлов. Он расширяет функциональность определенных миксинов и " -"предоставляет дополнительные пользовательские возможности." +"документальных файлов. Он расширяет функциональность определенных миксинов и" +" предоставляет дополнительные пользовательские возможности." #: engine/core/models.py:998 msgid "documentary" @@ -2251,14 +2243,14 @@ msgstr "Неразрешенные" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Представляет адресную сущность, включающую сведения о местоположении и " "ассоциации с пользователем. Обеспечивает функциональность для хранения " @@ -2334,8 +2326,8 @@ msgstr "" "Представляет промокод, который можно использовать для получения скидки, " "управляя его сроком действия, типом скидки и применением. Класс PromoCode " "хранит информацию о промокоде, включая его уникальный идентификатор, " -"свойства скидки (размер или процент), срок действия, связанного пользователя " -"(если таковой имеется) и статус его использования. Он включает в себя " +"свойства скидки (размер или процент), срок действия, связанного пользователя" +" (если таковой имеется) и статус его использования. Он включает в себя " "функциональность для проверки и применения промокода к заказу, обеспечивая " "при этом соблюдение ограничений." @@ -2411,8 +2403,8 @@ msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Следует определить только один тип скидки (сумма или процент), но не оба или " -"ни один из них." +"Следует определить только один тип скидки (сумма или процент), но не оба или" +" ни один из них." #: engine/core/models.py:1171 msgid "promocode already used" @@ -2427,13 +2419,13 @@ msgstr "Неверный тип скидки для промокода {self.uui msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"Представляет заказ, оформленный пользователем. Этот класс моделирует заказ в " -"приложении, включая его различные атрибуты, такие как информация о " +"Представляет заказ, оформленный пользователем. Этот класс моделирует заказ в" +" приложении, включая его различные атрибуты, такие как информация о " "выставлении счета и доставке, статус, связанный пользователь, уведомления и " "связанные операции. Заказы могут иметь связанные продукты, к ним можно " "применять рекламные акции, устанавливать адреса и обновлять данные о " @@ -2471,8 +2463,8 @@ msgstr "Статус заказа" #: engine/core/models.py:1243 engine/core/models.py:1769 msgid "json structure of notifications to display to users" msgstr "" -"JSON-структура уведомлений для отображения пользователям, в административном " -"интерфейсе используется табличный вид" +"JSON-структура уведомлений для отображения пользователям, в административном" +" интерфейсе используется табличный вид" #: engine/core/models.py:1249 msgid "json representation of order attributes for this order" @@ -2525,7 +2517,8 @@ msgstr "Вы не можете добавить больше товаров, ч #: engine/core/models.py:1395 engine/core/models.py:1420 #: engine/core/models.py:1428 msgid "you cannot remove products from an order that is not a pending one" -msgstr "Вы не можете удалить товары из заказа, который не является отложенным." +msgstr "" +"Вы не можете удалить товары из заказа, который не является отложенным." #: engine/core/models.py:1416 #, python-brace-format @@ -2610,7 +2603,8 @@ msgid "feedback comments" msgstr "Комментарии к отзывам" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Ссылка на конкретный продукт в заказе, о котором идет речь в этом отзыве" @@ -2658,7 +2652,8 @@ msgstr "Покупная цена на момент заказа" #: engine/core/models.py:1763 msgid "internal comments for admins about this ordered product" -msgstr "Внутренние комментарии для администраторов об этом заказанном продукте" +msgstr "" +"Внутренние комментарии для администраторов об этом заказанном продукте" #: engine/core/models.py:1764 msgid "internal comments" @@ -2754,15 +2749,15 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Представляет функциональность загрузки цифровых активов, связанных с " "заказами. Класс DigitalAssetDownload предоставляет возможность управления и " "доступа к загрузкам, связанным с продуктами заказа. Он хранит информацию о " -"связанном с заказом продукте, количестве загрузок и о том, является ли актив " -"общедоступным. Он включает метод для генерации URL-адреса для загрузки " +"связанном с заказом продукте, количестве загрузок и о том, является ли актив" +" общедоступным. Он включает метод для генерации URL-адреса для загрузки " "актива, когда связанный заказ находится в состоянии завершения." #: engine/core/models.py:1961 @@ -2809,8 +2804,8 @@ msgid "No customer activity in the last 30 days." msgstr "Отсутствие активности клиентов за последние 30 дней." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Ежедневные продажи (30d)" +msgid "Daily sales" +msgstr "Ежедневные продажи" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2821,6 +2816,7 @@ msgid "Gross revenue" msgstr "Валовая выручка" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Заказы" @@ -2828,6 +2824,10 @@ msgstr "Заказы" msgid "Gross" msgstr "Брутто" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Приборная панель" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Обзор доходов" @@ -2856,20 +2856,32 @@ msgid "No data" msgstr "Нет даты" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Выручка (брутто, 30д)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Выручка (нетто, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Возвраты (30 дней)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Чистая выручка" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Обработанные заказы (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Ставка возврата" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Возвращено" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Низкий запас" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Нет товаров с низким уровнем запасов." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2884,11 +2896,11 @@ msgid "Most wished product" msgstr "Самые желанные товары" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Данных пока нет." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Самые популярные товары" @@ -2924,10 +2936,6 @@ msgstr "За последние 30 дней не было ни одной про msgid "Django site admin" msgstr "Администратор сайта Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Приборная панель" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2957,12 +2965,11 @@ msgstr "Привет %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" -"Благодарим вас за заказ #%(order.pk)s! Мы рады сообщить Вам, что приняли Ваш " -"заказ в работу. Ниже приведены детали вашего заказа:" +"Благодарим вас за заказ #%(order.pk)s! Мы рады сообщить Вам, что приняли Ваш" +" заказ в работу. Ниже приведены детали вашего заказа:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -3072,8 +3079,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Спасибо за ваш заказ! Мы рады подтвердить вашу покупку. Ниже приведены " @@ -3146,9 +3152,10 @@ msgstr "Параметр NOMINATIM_URL должен быть настроен!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Размеры изображения не должны превышать w{max_width} x h{max_height} пикселей" +"Размеры изображения не должны превышать w{max_width} x h{max_height} " +"пикселей" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3157,27 +3164,27 @@ msgstr "" "Он обеспечивает включение в ответ заголовка типа содержимого, " "соответствующего типу XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" "Обрабатывает подробный ответ на просмотр карты сайта. Эта функция " -"обрабатывает запрос, извлекает соответствующий подробный ответ карты сайта и " -"устанавливает заголовок Content-Type для XML." +"обрабатывает запрос, извлекает соответствующий подробный ответ карты сайта и" +" устанавливает заголовок Content-Type для XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Возвращает список поддерживаемых языков и соответствующую информацию о них." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Возвращает параметры сайта в виде объекта JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3185,77 +3192,69 @@ msgstr "" "Выполняет операции с кэшем, такие как чтение и установка данных кэша с " "заданным ключом и таймаутом." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Обрабатывает отправленные формы `contact us`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" "Обрабатывает запросы на обработку и проверку URL из входящих POST-запросов." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Обрабатывает глобальные поисковые запросы." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Работает с логикой покупки как бизнеса без регистрации." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Обрабатывает загрузку цифрового актива, связанного с заказом.\n" -"Эта функция пытается обслужить файл цифрового актива, расположенный в " -"каталоге хранения проекта. Если файл не найден, выдается ошибка HTTP 404, " -"указывающая на недоступность ресурса." +"Эта функция пытается обслужить файл цифрового актива, расположенный в каталоге хранения проекта. Если файл не найден, выдается ошибка HTTP 404, указывающая на недоступность ресурса." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "требуется order_product_uuid" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "заказанный товар не существует" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Вы можете загрузить цифровой актив только один раз" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "заказ должен быть оплачен до загрузки цифрового актива" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "У заказанного продукта нет продукта" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon не найден" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Обрабатывает запросы на фавикон веб-сайта.\n" -"Эта функция пытается обслужить файл favicon, расположенный в статической " -"директории проекта. Если файл favicon не найден, выдается ошибка HTTP 404, " -"указывающая на недоступность ресурса." +"Эта функция пытается обслужить файл favicon, расположенный в статической директории проекта. Если файл favicon не найден, выдается ошибка HTTP 404, указывающая на недоступность ресурса." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Перенаправляет запрос на индексную страницу админки. Функция обрабатывает " @@ -3263,11 +3262,11 @@ msgstr "" "администратора Django. Для обработки HTTP-перенаправления используется " "функция Django `redirect`." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Возвращает текущую версию eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Возвращает пользовательские переменные для Dashboard." @@ -3281,16 +3280,17 @@ msgid "" msgstr "" "Определяет набор представлений для управления операциями, связанными с " "Evibes. Класс EvibesViewSet наследует от ModelViewSet и предоставляет " -"функциональность для обработки действий и операций над сущностями Evibes. Он " -"включает в себя поддержку динамических классов сериализаторов в зависимости " -"от текущего действия, настраиваемые разрешения и форматы рендеринга." +"функциональность для обработки действий и операций над сущностями Evibes. Он" +" включает в себя поддержку динамических классов сериализаторов в зависимости" +" от текущего действия, настраиваемые разрешения и форматы рендеринга." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Представляет собой набор представлений для управления объектами " "AttributeGroup. Обрабатывает операции, связанные с AttributeGroup, включая " @@ -3319,15 +3319,15 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Набор представлений для управления объектами AttributeValue. Этот набор " "представлений предоставляет функциональность для перечисления, извлечения, " "создания, обновления и удаления объектов AttributeValue. Он интегрируется с " "механизмами наборов представлений Django REST Framework и использует " -"соответствующие сериализаторы для различных действий. Возможности фильтрации " -"предоставляются через DjangoFilterBackend." +"соответствующие сериализаторы для различных действий. Возможности фильтрации" +" предоставляются через DjangoFilterBackend." #: engine/core/viewsets.py:213 msgid "" @@ -3338,8 +3338,8 @@ msgid "" "can access specific data." msgstr "" "Управляет представлениями для операций, связанных с категорией. Класс " -"CategoryViewSet отвечает за обработку операций, связанных с моделью Category " -"в системе. Он поддерживает получение, фильтрацию и сериализацию данных " +"CategoryViewSet отвечает за обработку операций, связанных с моделью Category" +" в системе. Он поддерживает получение, фильтрацию и сериализацию данных " "категории. Набор представлений также обеспечивает соблюдение прав доступа, " "чтобы только авторизованные пользователи могли получить доступ к " "определенным данным." @@ -3382,10 +3382,10 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Представляет собой набор представлений для управления объектами Vendor. Этот " -"набор представлений позволяет получать, фильтровать и сериализовать данные о " -"поставщиках. Он определяет наборы запросов, конфигурации фильтров и классы " -"сериализаторов, используемые для выполнения различных действий. Цель этого " +"Представляет собой набор представлений для управления объектами Vendor. Этот" +" набор представлений позволяет получать, фильтровать и сериализовать данные " +"о поставщиках. Он определяет наборы запросов, конфигурации фильтров и классы" +" сериализаторов, используемые для выполнения различных действий. Цель этого " "класса - обеспечить упрощенный доступ к ресурсам, связанным с Vendor, через " "фреймворк Django REST." @@ -3394,8 +3394,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Представление набора представлений, обрабатывающих объекты Feedback. Этот " @@ -3411,35 +3411,36 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet для управления заказами и связанными с ними операциями. Этот класс " "предоставляет функциональность для получения, изменения и управления " -"объектами заказов. Он включает в себя различные конечные точки для обработки " -"операций с заказами, таких как добавление или удаление продуктов, выполнение " -"покупок для зарегистрированных и незарегистрированных пользователей, а также " -"получение информации о текущих заказах аутентифицированного пользователя. " -"ViewSet использует несколько сериализаторов в зависимости от конкретного " -"выполняемого действия и соответствующим образом устанавливает разрешения при " -"взаимодействии с данными заказа." +"объектами заказов. Он включает в себя различные конечные точки для обработки" +" операций с заказами, таких как добавление или удаление продуктов, " +"выполнение покупок для зарегистрированных и незарегистрированных " +"пользователей, а также получение информации о текущих заказах " +"аутентифицированного пользователя. ViewSet использует несколько " +"сериализаторов в зависимости от конкретного выполняемого действия и " +"соответствующим образом устанавливает разрешения при взаимодействии с " +"данными заказа." #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Предоставляет набор представлений для управления сущностями OrderProduct. " "Этот набор представлений позволяет выполнять CRUD-операции и " "пользовательские действия, специфичные для модели OrderProduct. Он включает " -"фильтрацию, проверку прав доступа и переключение сериализатора в зависимости " -"от запрашиваемого действия. Кроме того, он предоставляет подробное действие " -"для обработки отзывов об экземплярах OrderProduct" +"фильтрацию, проверку прав доступа и переключение сериализатора в зависимости" +" от запрашиваемого действия. Кроме того, он предоставляет подробное действие" +" для обработки отзывов об экземплярах OrderProduct" #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " @@ -3467,8 +3468,8 @@ msgstr "Выполняет операции, связанные с данным msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3509,8 +3510,8 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"Обрабатывает операции, связанные с тегами продуктов в приложении. Этот класс " -"предоставляет функциональность для получения, фильтрации и сериализации " +"Обрабатывает операции, связанные с тегами продуктов в приложении. Этот класс" +" предоставляет функциональность для получения, фильтрации и сериализации " "объектов Product Tag. Он поддерживает гибкую фильтрацию по определенным " "атрибутам с помощью указанного бэкэнда фильтрации и динамически использует " "различные сериализаторы в зависимости от выполняемого действия." diff --git a/engine/core/locale/sv_SE/LC_MESSAGES/django.mo b/engine/core/locale/sv_SE/LC_MESSAGES/django.mo index b0cd46f41946ce43eaf04c5aa57cb7b212355cd1..74037bf05bc7981860c84998416e3c9394eb1013 100644 GIT binary patch delta 14888 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\n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "Är aktiv" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Om det är inställt på false kan objektet inte ses av användare utan " "nödvändigt tillstånd" @@ -154,7 +155,8 @@ msgstr "Levereras" msgid "canceled" msgstr "Annullerad" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Misslyckades" @@ -205,8 +207,7 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Använd endast en nyckel för att läsa tillåtna data från cacheminnet.\n" -"Använd nyckel, data och timeout med autentisering för att skriva data till " -"cacheminnet." +"Använd nyckel, data och timeout med autentisering för att skriva data till cacheminnet." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -270,7 +271,8 @@ msgstr "" "Skriva om en befintlig attributgrupp och spara icke-redigerbara attribut" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Skriv om vissa fält i en befintlig attributgrupp och spara icke-redigerbara " "fält" @@ -298,7 +300,8 @@ msgstr "Skriva om ett befintligt attribut och spara icke-redigerbara" #: engine/core/docs/drf/viewsets.py:141 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara fält" +"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara " +"fält" #: engine/core/docs/drf/viewsets.py:151 msgid "list all attribute values (simple view)" @@ -321,7 +324,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Skriva om ett befintligt attributvärde som sparar icke-redigerbara" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Skriva om vissa fält i ett befintligt attributvärde och spara icke-" "redigerbara fält" @@ -378,8 +382,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Substringsökning utan skiftlägeskänslighet över human_readable_id, " "order_products.product.name och order_products.product.partnumber" @@ -403,7 +407,8 @@ msgstr "Filtrera efter exakt mänskligt läsbart order-ID" #: engine/core/docs/drf/viewsets.py:308 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filtrera efter användarens e-post (exakt matchning utan skiftlägeskänslighet)" +"Filtrera efter användarens e-post (exakt matchning utan " +"skiftlägeskänslighet)" #: engine/core/docs/drf/viewsets.py:313 msgid "Filter by user's UUID" @@ -415,9 +420,9 @@ msgstr "Filtrera efter orderstatus (skiftlägeskänslig matchning av delsträng) #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Ordna efter en av följande: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefix med \"-\" för fallande " @@ -513,8 +518,8 @@ msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Tar bort en produkt från en order med hjälp av de angivna `product_uuid` och " -"`attributen`." +"Tar bort en produkt från en order med hjälp av de angivna `product_uuid` och" +" `attributen`." #: engine/core/docs/drf/viewsets.py:447 msgid "remove product from order, quantities will not count" @@ -535,7 +540,8 @@ msgstr "Lista alla attribut (enkel vy)" #: engine/core/docs/drf/viewsets.py:460 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -"För användare som inte är anställda returneras endast deras egna önskelistor." +"För användare som inte är anställda returneras endast deras egna " +"önskelistor." #: engine/core/docs/drf/viewsets.py:467 msgid "retrieve a single wishlist (detailed view)" @@ -560,7 +566,8 @@ msgstr "Skriva om ett befintligt attribut och spara icke-redigerbara" #: engine/core/docs/drf/viewsets.py:496 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara fält" +"Skriv om vissa fält i ett befintligt attribut och spara icke-redigerbara " +"fält" #: engine/core/docs/drf/viewsets.py:503 msgid "retrieve current pending wishlist of a user" @@ -615,26 +622,17 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrera efter ett eller flera attributnamn/värdepar. \n" "- **Syntax**: `attr_namn=metod-värde[;attr2=metod2-värde2]...`\n" -"- **Metoder** (standard är `icontains` om den utelämnas): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- **Värde typning**: JSON prövas först (så att du kan skicka listor/dikter), " -"`true`/`false` för booleaner, heltal, flottörer; annars behandlas som " -"sträng. \n" +"- **Metoder** (standard är `icontains` om den utelämnas): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- **Värde typning**: JSON prövas först (så att du kan skicka listor/dikter), `true`/`false` för booleaner, heltal, flottörer; annars behandlas som sträng. \n" "- **Base64**: prefix med `b64-` för URL-säker base64-kodning av råvärdet. \n" "Exempel på detta: \n" "`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`,\n" @@ -650,12 +648,10 @@ msgstr "(exakt) UUID för produkt" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommaseparerad lista över fält att sortera efter. Prefix med `-` för " -"fallande. \n" +"Kommaseparerad lista över fält att sortera efter. Prefix med `-` för fallande. \n" "**Tillåtna:** uuid, betyg, namn, slug, skapad, modifierad, pris, slumpmässig" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 @@ -1122,7 +1118,7 @@ msgstr "Cachad data" msgid "camelized JSON data from the requested URL" msgstr "Cameliserad JSON-data från den begärda URL:en" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Endast webbadresser som börjar med http(s):// är tillåtna" @@ -1151,7 +1147,8 @@ msgstr "Köpa en order" #: engine/core/graphene/mutations.py:211 engine/core/graphene/mutations.py:265 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" -"Vänligen ange antingen order_uuid eller order_hr_id - ömsesidigt uteslutande!" +"Vänligen ange antingen order_uuid eller order_hr_id - ömsesidigt " +"uteslutande!" #: engine/core/graphene/mutations.py:236 engine/core/graphene/mutations.py:501 #: engine/core/graphene/mutations.py:543 engine/core/viewsets.py:712 @@ -1207,8 +1204,8 @@ msgstr "Köpa en order" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Skicka attributen som en sträng formaterad som attr1=värde1,attr2=värde2" @@ -1285,7 +1282,8 @@ msgstr "" "Vilka attribut och värden som kan användas för att filtrera denna kategori." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Minsta och högsta pris för produkter i denna kategori, om tillgängligt." @@ -1496,8 +1494,7 @@ msgstr "Företagets telefonnummer" #: engine/core/graphene/object_types.py:680 msgid "email from, sometimes it must be used instead of host user value" -msgstr "" -"\"email from\", ibland måste det användas istället för host user-värdet" +msgstr "\"email from\", ibland måste det användas istället för host user-värdet" #: engine/core/graphene/object_types.py:681 msgid "email host user" @@ -1557,8 +1554,8 @@ msgid "" "categorizing and managing attributes more effectively in acomplex system." msgstr "" "Representerar en grupp av attribut, som kan vara hierarkiska. Denna klass " -"används för att hantera och organisera attributgrupper. En attributgrupp kan " -"ha en överordnad grupp som bildar en hierarkisk struktur. Detta kan vara " +"används för att hantera och organisera attributgrupper. En attributgrupp kan" +" ha en överordnad grupp som bildar en hierarkisk struktur. Detta kan vara " "användbart för att kategorisera och hantera attribut på ett mer effektivt " "sätt i ett komplext system." @@ -1591,10 +1588,10 @@ msgstr "" "Representerar en vendor-enhet som kan lagra information om externa " "leverantörer och deras interaktionskrav. Klassen Vendor används för att " "definiera och hantera information som är relaterad till en extern " -"leverantör. Den lagrar leverantörens namn, autentiseringsuppgifter som krävs " -"för kommunikation och den procentuella markering som tillämpas på produkter " -"som hämtas från leverantören. Modellen innehåller också ytterligare metadata " -"och begränsningar, vilket gör den lämplig att använda i system som " +"leverantör. Den lagrar leverantörens namn, autentiseringsuppgifter som krävs" +" för kommunikation och den procentuella markering som tillämpas på produkter" +" som hämtas från leverantören. Modellen innehåller också ytterligare " +"metadata och begränsningar, vilket gör den lämplig att använda i system som " "interagerar med tredjepartsleverantörer." #: engine/core/models.py:124 @@ -1652,8 +1649,8 @@ msgstr "" "identifiera produkter. Klassen ProductTag är utformad för att unikt " "identifiera och klassificera produkter genom en kombination av en intern " "taggidentifierare och ett användarvänligt visningsnamn. Den stöder " -"operationer som exporteras via mixins och tillhandahåller metadataanpassning " -"för administrativa ändamål." +"operationer som exporteras via mixins och tillhandahåller metadataanpassning" +" för administrativa ändamål." #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1712,8 +1709,8 @@ msgstr "" "innehåller fält för metadata och visuell representation, som utgör grunden " "för kategorirelaterade funktioner. Den här klassen används vanligtvis för " "att definiera och hantera produktkategorier eller andra liknande " -"grupperingar inom en applikation, så att användare eller administratörer kan " -"ange namn, beskrivning och hierarki för kategorier samt tilldela attribut " +"grupperingar inom en applikation, så att användare eller administratörer kan" +" ange namn, beskrivning och hierarki för kategorier samt tilldela attribut " "som bilder, taggar eller prioritet." #: engine/core/models.py:274 @@ -1765,7 +1762,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Representerar ett Brand-objekt i systemet. Klassen hanterar information och " "attribut som är relaterade till ett varumärke, inklusive dess namn, " @@ -1815,8 +1813,8 @@ msgstr "Kategorier" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1908,8 +1906,8 @@ msgstr "" "Representerar en produkt med attribut som kategori, varumärke, taggar, " "digital status, namn, beskrivning, artikelnummer och slug. Tillhandahåller " "relaterade verktygsegenskaper för att hämta betyg, feedbackräkning, pris, " -"kvantitet och totala beställningar. Utformad för användning i ett system som " -"hanterar e-handel eller lagerhantering. Klassen interagerar med relaterade " +"kvantitet och totala beställningar. Utformad för användning i ett system som" +" hanterar e-handel eller lagerhantering. Klassen interagerar med relaterade " "modeller (t.ex. Category, Brand och ProductTag) och hanterar cachelagring " "för egenskaper som används ofta för att förbättra prestandan. Den används " "för att definiera och manipulera produktdata och tillhörande information i " @@ -1968,16 +1966,16 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"Representerar ett attribut i systemet. Denna klass används för att definiera " -"och hantera attribut, som är anpassningsbara bitar av data som kan " +"Representerar ett attribut i systemet. Denna klass används för att definiera" +" och hantera attribut, som är anpassningsbara bitar av data som kan " "associeras med andra enheter. Attribut har associerade kategorier, grupper, " "värdetyper och namn. Modellen stöder flera typer av värden, inklusive " -"sträng, heltal, flottör, boolean, array och objekt. Detta ger möjlighet till " -"dynamisk och flexibel datastrukturering." +"sträng, heltal, flottör, boolean, array och objekt. Detta ger möjlighet till" +" dynamisk och flexibel datastrukturering." #: engine/core/models.py:733 msgid "group of this attribute" @@ -2039,9 +2037,9 @@ msgstr "Attribut" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Representerar ett specifikt värde för ett attribut som är kopplat till en " "produkt. Det kopplar \"attributet\" till ett unikt \"värde\", vilket " @@ -2063,8 +2061,8 @@ msgstr "Det specifika värdet för detta attribut" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2112,8 +2110,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "Representerar en kampanj för produkter med rabatt. Den här klassen används " "för att definiera och hantera kampanjer som erbjuder en procentbaserad " @@ -2162,8 +2160,8 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" "Representerar en användares önskelista för lagring och hantering av önskade " -"produkter. Klassen tillhandahåller funktionalitet för att hantera en samling " -"produkter, med stöd för operationer som att lägga till och ta bort " +"produkter. Klassen tillhandahåller funktionalitet för att hantera en samling" +" produkter, med stöd för operationer som att lägga till och ta bort " "produkter, samt stöd för operationer för att lägga till och ta bort flera " "produkter samtidigt." @@ -2189,15 +2187,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Representerar en dokumentärpost som är knuten till en produkt. Denna klass " "används för att lagra information om dokumentärer som är relaterade till " "specifika produkter, inklusive filuppladdningar och deras metadata. Den " "innehåller metoder och egenskaper för att hantera filtyp och lagringssökväg " -"för dokumentärfilerna. Den utökar funktionaliteten från specifika mixins och " -"tillhandahåller ytterligare anpassade funktioner." +"för dokumentärfilerna. Den utökar funktionaliteten från specifika mixins och" +" tillhandahåller ytterligare anpassade funktioner." #: engine/core/models.py:998 msgid "documentary" @@ -2213,24 +2211,24 @@ msgstr "Olöst" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Representerar en adressentitet som innehåller platsinformation och " "associationer med en användare. Tillhandahåller funktionalitet för lagring " -"av geografiska data och adressdata samt integration med geokodningstjänster. " -"Denna klass är utformad för att lagra detaljerad adressinformation inklusive " -"komponenter som gata, stad, region, land och geolokalisering (longitud och " -"latitud). Den stöder integration med API:er för geokodning, vilket möjliggör " -"lagring av råa API-svar för vidare bearbetning eller inspektion. Klassen gör " -"det också möjligt att associera en adress med en användare, vilket " -"underlättar personlig datahantering." +"av geografiska data och adressdata samt integration med geokodningstjänster." +" Denna klass är utformad för att lagra detaljerad adressinformation " +"inklusive komponenter som gata, stad, region, land och geolokalisering " +"(longitud och latitud). Den stöder integration med API:er för geokodning, " +"vilket möjliggör lagring av råa API-svar för vidare bearbetning eller " +"inspektion. Klassen gör det också möjligt att associera en adress med en " +"användare, vilket underlättar personlig datahantering." #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2371,8 +2369,8 @@ msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Endast en typ av rabatt ska definieras (belopp eller procent), men inte båda " -"eller ingendera." +"Endast en typ av rabatt ska definieras (belopp eller procent), men inte båda" +" eller ingendera." #: engine/core/models.py:1171 msgid "promocode already used" @@ -2387,8 +2385,8 @@ msgstr "Ogiltig rabattyp för promokod {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" @@ -2556,9 +2554,9 @@ msgstr "" "Hanterar feedback från användare för produkter. Den här klassen är utformad " "för att fånga upp och lagra feedback från användare om specifika produkter " "som de har köpt. Den innehåller attribut för att lagra användarkommentarer, " -"en referens till den relaterade produkten i ordern och ett användartilldelat " -"betyg. Klassen använder databasfält för att effektivt modellera och hantera " -"feedbackdata." +"en referens till den relaterade produkten i ordern och ett användartilldelat" +" betyg. Klassen använder databasfält för att effektivt modellera och hantera" +" feedbackdata." #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2569,10 +2567,11 @@ msgid "feedback comments" msgstr "Återkoppling av kommentarer" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Refererar till den specifika produkten i en order som denna feedback handlar " -"om" +"Refererar till den specifika produkten i en order som denna feedback handlar" +" om" #: engine/core/models.py:1720 msgid "related order product" @@ -2602,10 +2601,10 @@ msgstr "" "OrderProduct-modellen innehåller information om en produkt som ingår i en " "order, inklusive detaljer som inköpspris, kvantitet, produktattribut och " "status. Den hanterar meddelanden till användaren och administratörer och " -"hanterar åtgärder som att returnera produktsaldot eller lägga till feedback. " -"Modellen innehåller också metoder och egenskaper som stöder affärslogik, t." -"ex. beräkning av totalpriset eller generering av en URL för nedladdning av " -"digitala produkter. Modellen integreras med Order- och Product-modellerna " +"hanterar åtgärder som att returnera produktsaldot eller lägga till feedback." +" Modellen innehåller också metoder och egenskaper som stöder affärslogik, " +"t.ex. beräkning av totalpriset eller generering av en URL för nedladdning av" +" digitala produkter. Modellen integreras med Order- och Product-modellerna " "och lagrar en referens till dem." #: engine/core/models.py:1757 @@ -2714,17 +2713,17 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"Representerar nedladdningsfunktionen för digitala tillgångar som är kopplade " -"till order. Klassen DigitalAssetDownload ger möjlighet att hantera och komma " -"åt nedladdningar som är relaterade till orderprodukter. Den upprätthåller " -"information om den associerade orderprodukten, antalet nedladdningar och om " -"tillgången är offentligt synlig. Den innehåller en metod för att generera en " -"URL för nedladdning av tillgången när den associerade ordern har statusen " -"slutförd." +"Representerar nedladdningsfunktionen för digitala tillgångar som är kopplade" +" till order. Klassen DigitalAssetDownload ger möjlighet att hantera och " +"komma åt nedladdningar som är relaterade till orderprodukter. Den " +"upprätthåller information om den associerade orderprodukten, antalet " +"nedladdningar och om tillgången är offentligt synlig. Den innehåller en " +"metod för att generera en URL för nedladdning av tillgången när den " +"associerade ordern har statusen slutförd." #: engine/core/models.py:1961 msgid "download" @@ -2738,8 +2737,8 @@ msgstr "Nedladdningar" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"du måste ge en kommentar, betyg och beställa produkt uuid för att lägga till " -"feedback." +"du måste ge en kommentar, betyg och beställa produkt uuid för att lägga till" +" feedback." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2770,8 +2769,8 @@ msgid "No customer activity in the last 30 days." msgstr "Ingen kundaktivitet under de senaste 30 dagarna." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Daglig försäljning (30d)" +msgid "Daily sales" +msgstr "Daglig försäljning" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2782,6 +2781,7 @@ msgid "Gross revenue" msgstr "Bruttointäkter" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Beställningar" @@ -2789,6 +2789,10 @@ msgstr "Beställningar" msgid "Gross" msgstr "Brutto" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Instrumentpanel" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Översikt över intäkter" @@ -2817,20 +2821,32 @@ msgid "No data" msgstr "Inget datum" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Intäkter (brutto, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Intäkter (netto, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Avkastning (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Nettoomsättning" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Bearbetade order (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Återbetalningsgrad" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Återlämnad" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Låg lagerhållning" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Inga låglagervaror." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2845,11 +2861,11 @@ msgid "Most wished product" msgstr "Mest önskade produkt" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Inga uppgifter ännu." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Mest populära produkt" @@ -2885,10 +2901,6 @@ msgstr "Ingen kategoriförsäljning under de senaste 30 dagarna." msgid "Django site admin" msgstr "Django webbplatsadministratör" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Instrumentpanel" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2918,8 +2930,7 @@ msgstr "Hej %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Tack för din beställning #%(order.pk)s! Vi är glada att kunna informera dig " @@ -3034,8 +3045,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Tack för din beställning! Vi är glada att kunna bekräfta ditt köp. Nedan " @@ -3107,7 +3117,7 @@ msgstr "Parametern NOMINATIM_URL måste konfigureras!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "Bildmåtten får inte överstiga w{max_width} x h{max_height} pixlar!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3115,7 +3125,7 @@ msgstr "" "Hanterar begäran om index för webbplatskartan och returnerar ett XML-svar. " "Den ser till att svaret innehåller rätt innehållstypshuvud för XML." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3125,16 +3135,16 @@ msgstr "" "bearbetar begäran, hämtar det lämpliga detaljerade svaret för " "webbplatskartan och ställer in Content-Type-huvudet för XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Returnerar en lista över språk som stöds och motsvarande information." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnerar webbplatsens parametrar som ett JSON-objekt." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3142,11 +3152,11 @@ msgstr "" "Hanterar cacheoperationer som att läsa och ställa in cachedata med en " "angiven nyckel och timeout." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Hanterar formulärinlämningar för `kontakta oss`." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3154,66 +3164,58 @@ msgstr "" "Hanterar förfrågningar om bearbetning och validering av URL:er från " "inkommande POST-förfrågningar." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Hanterar globala sökfrågor." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Hanterar logiken i att köpa som ett företag utan registrering." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Hanterar nedladdning av en digital tillgång som är kopplad till en order.\n" -"Denna funktion försöker servera den digitala tillgångsfilen som finns i " -"lagringskatalogen för projektet. Om filen inte hittas visas ett HTTP 404-fel " -"som indikerar att resursen inte är tillgänglig." +"Denna funktion försöker servera den digitala tillgångsfilen som finns i lagringskatalogen för projektet. Om filen inte hittas visas ett HTTP 404-fel som indikerar att resursen inte är tillgänglig." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid är obligatoriskt" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "Beställ produkten finns inte" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Du kan bara ladda ner den digitala tillgången en gång" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "beställningen måste betalas innan den digitala tillgången laddas ner" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Beställningens produkt har ingen produkt" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon hittades inte" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Hanterar förfrågningar om favicon på en webbplats.\n" -"Denna funktion försöker servera favicon-filen som finns i den statiska " -"katalogen i projektet. Om favicon-filen inte hittas visas ett HTTP 404-fel " -"som anger att resursen inte är tillgänglig." +"Denna funktion försöker servera favicon-filen som finns i den statiska katalogen i projektet. Om favicon-filen inte hittas visas ett HTTP 404-fel som anger att resursen inte är tillgänglig." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "Omdirigerar begäran till indexsidan för admin. Funktionen hanterar " @@ -3221,11 +3223,11 @@ msgstr "" "admin-gränssnitt. Den använder Djangos `redirect`-funktion för att hantera " "HTTP-omdirigeringen." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Returnerar aktuell version av eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Returnerar anpassade variabler för Dashboard." @@ -3238,23 +3240,24 @@ msgid "" "and rendering formats." msgstr "" "Definierar en vy för hantering av Evibes-relaterade operationer. Klassen " -"EvibesViewSet ärver från ModelViewSet och tillhandahåller funktionalitet för " -"att hantera åtgärder och operationer på Evibes-entiteter. Den innehåller " +"EvibesViewSet ärver från ModelViewSet och tillhandahåller funktionalitet för" +" att hantera åtgärder och operationer på Evibes-entiteter. Den innehåller " "stöd för dynamiska serializerklasser baserat på den aktuella åtgärden, " "anpassningsbara behörigheter och renderingsformat." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Representerar en vy för hantering av AttributeGroup-objekt. Hanterar " -"åtgärder relaterade till AttributeGroup, inklusive filtrering, serialisering " -"och hämtning av data. Denna klass är en del av applikationens API-lager och " -"tillhandahåller ett standardiserat sätt att behandla förfrågningar och svar " -"för AttributeGroup-data." +"åtgärder relaterade till AttributeGroup, inklusive filtrering, serialisering" +" och hämtning av data. Denna klass är en del av applikationens API-lager och" +" tillhandahåller ett standardiserat sätt att behandla förfrågningar och svar" +" för AttributeGroup-data." #: engine/core/viewsets.py:175 msgid "" @@ -3277,8 +3280,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Ett viewset för hantering av AttributeValue-objekt. Denna viewset " "tillhandahåller funktionalitet för att lista, hämta, skapa, uppdatera och " @@ -3308,8 +3311,8 @@ msgid "" "endpoints for Brand objects." msgstr "" "Representerar en vy för hantering av varumärkesinstanser. Denna klass " -"tillhandahåller funktionalitet för att fråga, filtrera och serialisera Brand-" -"objekt. Den använder Djangos ViewSet-ramverk för att förenkla " +"tillhandahåller funktionalitet för att fråga, filtrera och serialisera " +"Brand-objekt. Den använder Djangos ViewSet-ramverk för att förenkla " "implementeringen av API-slutpunkter för varumärkesobjekt." #: engine/core/viewsets.py:438 @@ -3323,8 +3326,8 @@ msgid "" "product." msgstr "" "Hanterar operationer relaterade till modellen `Product` i systemet. Denna " -"klass tillhandahåller en vy för att hantera produkter, inklusive filtrering, " -"serialisering och operationer på specifika instanser. Den utökar från " +"klass tillhandahåller en vy för att hantera produkter, inklusive filtrering," +" serialisering och operationer på specifika instanser. Den utökar från " "`EvibesViewSet` för att använda gemensam funktionalitet och integreras med " "Django REST-ramverket för RESTful API-operationer. Innehåller metoder för " "att hämta produktinformation, tillämpa behörigheter och få tillgång till " @@ -3338,8 +3341,8 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"Representerar en vy för hantering av Vendor-objekt. Denna vy gör det möjligt " -"att hämta, filtrera och serialisera Vendor-data. Den definierar queryset, " +"Representerar en vy för hantering av Vendor-objekt. Denna vy gör det möjligt" +" att hämta, filtrera och serialisera Vendor-data. Den definierar queryset, " "filterkonfigurationer och serializer-klasser som används för att hantera " "olika åtgärder. Syftet med denna klass är att ge strömlinjeformad åtkomst " "till Vendor-relaterade resurser genom Django REST-ramverket." @@ -3349,12 +3352,12 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"Representation av en vyuppsättning som hanterar Feedback-objekt. Denna klass " -"hanterar åtgärder relaterade till Feedback-objekt, inklusive listning, " +"Representation av en vyuppsättning som hanterar Feedback-objekt. Denna klass" +" hanterar åtgärder relaterade till Feedback-objekt, inklusive listning, " "filtrering och hämtning av detaljer. Syftet med denna vyuppsättning är att " "tillhandahålla olika serializers för olika åtgärder och implementera " "behörighetsbaserad hantering av tillgängliga Feedback-objekt. Den utökar " @@ -3366,15 +3369,15 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "ViewSet för hantering av order och relaterade operationer. Den här klassen " "innehåller funktioner för att hämta, ändra och hantera orderobjekt. Den " -"innehåller olika slutpunkter för hantering av orderoperationer som att lägga " -"till eller ta bort produkter, utföra inköp för registrerade och " +"innehåller olika slutpunkter för hantering av orderoperationer som att lägga" +" till eller ta bort produkter, utföra inköp för registrerade och " "oregistrerade användare och hämta den aktuella autentiserade användarens " "pågående order. ViewSet använder flera serializers baserat på den specifika " "åtgärd som utförs och verkställer behörigheter i enlighet med detta vid " @@ -3384,8 +3387,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Tillhandahåller en vy för hantering av OrderProduct-enheter. Denna " @@ -3419,8 +3422,8 @@ msgstr "Hanterar åtgärder relaterade till lagerdata i systemet." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3463,5 +3466,5 @@ msgstr "" "Hanterar operationer relaterade till Product Tags inom applikationen. " "Klassen tillhandahåller funktionalitet för att hämta, filtrera och " "serialisera Product Tag-objekt. Den stöder flexibel filtrering på specifika " -"attribut med hjälp av det angivna filterbackend och använder dynamiskt olika " -"serializers baserat på den åtgärd som utförs." +"attribut med hjälp av det angivna filterbackend och använder dynamiskt olika" +" serializers baserat på den åtgärd som utförs." diff --git a/engine/core/locale/th_TH/LC_MESSAGES/django.mo b/engine/core/locale/th_TH/LC_MESSAGES/django.mo index 28908b02112f252994c65d5c6b796c2cc3fb9fd6..2e724c5e921128aaa8a774edfe87fd9ae6efa8a2 100644 GIT binary patch delta 14940 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 O=)Jq^(nGJxTmJ{4qVoy> delta 14981 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 diff --git a/engine/core/locale/th_TH/LC_MESSAGES/django.po b/engine/core/locale/th_TH/LC_MESSAGES/django.po index 9b8cb33b..286028a0 100644 --- a/engine/core/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/core/locale/th_TH/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,8 +27,11 @@ msgstr "กำลังใช้งานอยู่" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" -msgstr "หากตั้งค่าเป็น false, วัตถุนี้ไม่สามารถมองเห็นได้โดยผู้ใช้ที่ไม่มีสิทธิ์ที่ต้องการ" +"if set to false, this object can't be seen by users without needed " +"permission" +msgstr "" +"หากตั้งค่าเป็น false, " +"วัตถุนี้ไม่สามารถมองเห็นได้โดยผู้ใช้ที่ไม่มีสิทธิ์ที่ต้องการ" #: engine/core/abstract.py:23 engine/core/choices.py:18 msgid "created" @@ -152,7 +155,8 @@ msgstr "ส่งมอบแล้ว" msgid "canceled" msgstr "ยกเลิก" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "ล้มเหลว" @@ -202,8 +206,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"ใช้เฉพาะคีย์เพื่ออ่านข้อมูลที่ได้รับอนุญาตจากแคช ใช้คีย์ ข้อมูล และระยะเวลาหมดอายุ " -"พร้อมการยืนยันตัวตนเพื่อเขียนข้อมูลลงในแคช" +"ใช้เฉพาะคีย์เพื่ออ่านข้อมูลที่ได้รับอนุญาตจากแคช ใช้คีย์ ข้อมูล " +"และระยะเวลาหมดอายุ พร้อมการยืนยันตัวตนเพื่อเขียนข้อมูลลงในแคช" #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -238,7 +242,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"ซื้อสินค้าในฐานะธุรกิจ โดยใช้ `products` ที่ให้มาพร้อมกับ `product_uuid` และ `attributes`" +"ซื้อสินค้าในฐานะธุรกิจ โดยใช้ `products` ที่ให้มาพร้อมกับ `product_uuid` และ" +" `attributes`" #: engine/core/docs/drf/views.py:164 msgid "download a digital asset from purchased digital order" @@ -262,11 +267,15 @@ msgstr "ลบกลุ่มแอตทริบิวต์" #: engine/core/docs/drf/viewsets.py:89 msgid "rewrite an existing attribute group saving non-editables" -msgstr "เขียนกลุ่มคุณลักษณะที่มีอยู่ใหม่โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนกลุ่มคุณลักษณะที่มีอยู่ใหม่โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของกลุ่มแอตทริบิวต์ที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของกลุ่มแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:106 msgid "list all attributes (simple view)" @@ -290,7 +299,9 @@ msgstr "เขียนแอตทริบิวต์ที่มีอยู #: engine/core/docs/drf/viewsets.py:141 msgid "rewrite some fields of an existing attribute saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" +msgstr "" +"เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" #: engine/core/docs/drf/viewsets.py:151 msgid "list all attribute values (simple view)" @@ -313,8 +324,11 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "เขียนค่าแอตทริบิวต์ที่มีอยู่ใหม่โดยเก็บค่าที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของค่าแอตทริบิวต์ที่มีอยู่ใหม่ โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" +msgstr "" +"เขียนฟิลด์บางส่วนของค่าแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 msgid "list all categories (simple view)" @@ -342,7 +356,9 @@ msgstr "เขียนหมวดหมู่ที่มีอยู่ให #: engine/core/docs/drf/viewsets.py:244 engine/core/docs/drf/viewsets.py:245 msgid "rewrite some fields of an existing category saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:252 engine/core/docs/drf/viewsets.py:704 #: engine/core/docs/drf/viewsets.py:988 @@ -366,11 +382,11 @@ msgstr "สำหรับผู้ใช้ที่ไม่ใช่พนั #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"การค้นหาส่วนย่อยโดยไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ใน human_readable_id, order_products." -"product.name และ order_products.product.partnumber" +"การค้นหาส่วนย่อยโดยไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ใน human_readable_id, " +"order_products.product.name และ order_products.product.partnumber" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -390,7 +406,8 @@ msgstr "กรองตามหมายเลขคำสั่งซื้อ #: engine/core/docs/drf/viewsets.py:308 msgid "Filter by user's email (case-insensitive exact match)" -msgstr "กรองตามอีเมลของผู้ใช้ (ตรงตามตัวอักษรโดยไม่คำนึงถึงตัวพิมพ์ใหญ่หรือเล็ก)" +msgstr "" +"กรองตามอีเมลของผู้ใช้ (ตรงตามตัวอักษรโดยไม่คำนึงถึงตัวพิมพ์ใหญ่หรือเล็ก)" #: engine/core/docs/drf/viewsets.py:313 msgid "Filter by user's UUID" @@ -398,17 +415,18 @@ msgstr "กรองตาม UUID ของผู้ใช้" #: engine/core/docs/drf/viewsets.py:318 msgid "Filter by order status (case-insensitive substring match)" -msgstr "กรองตามสถานะคำสั่งซื้อ (การจับคู่สตริงย่อยโดยไม่คำนึงตัวพิมพ์ใหญ่/เล็ก)" +msgstr "" +"กรองตามสถานะคำสั่งซื้อ (การจับคู่สตริงย่อยโดยไม่คำนึงตัวพิมพ์ใหญ่/เล็ก)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "เรียงลำดับโดยหนึ่งใน: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. นำหน้าด้วย '-' สำหรับเรียงลำดับจากมากไปน้อย " -"(เช่น '-buy_time')." +"created, modified, buy_time, random. นำหน้าด้วย '-' " +"สำหรับเรียงลำดับจากมากไปน้อย (เช่น '-buy_time')." #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -436,7 +454,9 @@ msgstr "เขียนหมวดหมู่ที่มีอยู่ให #: engine/core/docs/drf/viewsets.py:373 msgid "rewrite some fields of an existing order saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนฟิลด์บางส่วนของหมวดหมู่ที่มีอยู่แล้วใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:380 msgid "purchase an order" @@ -449,8 +469,8 @@ msgid "" "transaction is initiated." msgstr "" "สรุปการสั่งซื้อสินค้า หากใช้ `force_balance` " -"การสั่งซื้อจะเสร็จสมบูรณ์โดยใช้ยอดเงินคงเหลือของผู้ใช้ หากใช้ `force_payment` " -"จะเริ่มการทำธุรกรรม" +"การสั่งซื้อจะเสร็จสมบูรณ์โดยใช้ยอดเงินคงเหลือของผู้ใช้ หากใช้ " +"`force_payment` จะเริ่มการทำธุรกรรม" #: engine/core/docs/drf/viewsets.py:397 msgid "retrieve current pending order of a user" @@ -476,7 +496,8 @@ msgstr "เพิ่มสินค้าในคำสั่งซื้อ" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "เพิ่มสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"เพิ่มสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" #: engine/core/docs/drf/viewsets.py:429 msgid "add a list of products to order, quantities will not count" @@ -486,7 +507,9 @@ msgstr "เพิ่มรายการสินค้าที่ต้อง msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." -msgstr "เพิ่มรายการสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"เพิ่มรายการสินค้าไปยังคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` " +"ที่ให้มา" #: engine/core/docs/drf/viewsets.py:438 msgid "remove product from order" @@ -496,7 +519,8 @@ msgstr "ลบสินค้าออกจากคำสั่งซื้อ msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "ลบผลิตภัณฑ์ออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"ลบผลิตภัณฑ์ออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" #: engine/core/docs/drf/viewsets.py:447 msgid "remove product from order, quantities will not count" @@ -506,7 +530,9 @@ msgstr "นำสินค้าออกจากคำสั่งซื้อ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" -msgstr "ลบรายการสินค้าออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` ที่ให้มา" +msgstr "" +"ลบรายการสินค้าออกจากคำสั่งซื้อโดยใช้ `product_uuid` และ `attributes` " +"ที่ให้มา" #: engine/core/docs/drf/viewsets.py:459 msgid "list all wishlists (simple view)" @@ -514,7 +540,9 @@ msgstr "แสดงรายการคุณลักษณะทั้งห #: engine/core/docs/drf/viewsets.py:460 msgid "for non-staff users, only their own wishlists are returned." -msgstr "สำหรับผู้ใช้ที่ไม่ใช่บุคลากร จะแสดงเฉพาะรายการที่อยู่ในรายการสิ่งที่ต้องการของตนเองเท่านั้น" +msgstr "" +"สำหรับผู้ใช้ที่ไม่ใช่บุคลากร " +"จะแสดงเฉพาะรายการที่อยู่ในรายการสิ่งที่ต้องการของตนเองเท่านั้น" #: engine/core/docs/drf/viewsets.py:467 msgid "retrieve a single wishlist (detailed view)" @@ -538,7 +566,9 @@ msgstr "เขียนแอตทริบิวต์ที่มีอยู #: engine/core/docs/drf/viewsets.py:496 msgid "rewrite some fields of an existing wishlist saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" +msgstr "" +"เขียนฟิลด์บางส่วนของแอตทริบิวต์ที่มีอยู่ใหม่ " +"โดยบันทึกเฉพาะข้อมูลที่ไม่มีการแก้ไข" #: engine/core/docs/drf/viewsets.py:503 msgid "retrieve current pending wishlist of a user" @@ -546,7 +576,8 @@ msgstr "ดึงรายการสินค้าที่ผู้ใช้ #: engine/core/docs/drf/viewsets.py:504 msgid "retrieves a current pending wishlist of an authenticated user" -msgstr "ดึงรายการความปรารถนาที่รอดำเนินการในปัจจุบันของผู้ใช้ที่ผ่านการยืนยันแล้ว" +msgstr "" +"ดึงรายการความปรารถนาที่รอดำเนินการในปัจจุบันของผู้ใช้ที่ผ่านการยืนยันแล้ว" #: engine/core/docs/drf/viewsets.py:514 msgid "add product to wishlist" @@ -570,7 +601,9 @@ msgstr "เพิ่มสินค้าหลายรายการลงใ #: engine/core/docs/drf/viewsets.py:533 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "เพิ่มสินค้าหลายรายการลงในรายการสินค้าที่ต้องการโดยใช้ `product_uuids` ที่ให้มา" +msgstr "" +"เพิ่มสินค้าหลายรายการลงในรายการสินค้าที่ต้องการโดยใช้ `product_uuids` " +"ที่ให้มา" #: engine/core/docs/drf/viewsets.py:541 msgid "remove many products from wishlist" @@ -579,34 +612,22 @@ msgstr "ลบสินค้าออกจากคำสั่งซื้อ #: engine/core/docs/drf/viewsets.py:542 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "ลบผลิตภัณฑ์หลายรายการออกจากรายการที่ต้องการโดยใช้ `product_uuids` ที่ให้มา" +msgstr "" +"ลบผลิตภัณฑ์หลายรายการออกจากรายการที่ต้องการโดยใช้ `product_uuids` ที่ให้มา" #: engine/core/docs/drf/viewsets.py:549 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -"กรองตามชื่อ/ค่าของแอตทริบิวต์หนึ่งรายการหรือมากกว่า • **ไวยากรณ์**: `attr_name=method-" -"value[;attr2=method2-value2]…` •**วิธีการ** (ค่าเริ่มต้นคือ `icontains` " -"หากไม่ได้ระบุ): `iexact`, `exact`, `icontains`, `contains`, `isnull`, " -"`startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, " -"`lt`, `lte`, `gt`, `gte`, `in` •**การกำหนดประเภทข้อมูล**: JSON " -"จะถูกพยายามแปลงก่อน (ดังนั้นคุณสามารถส่งรายการ/ดิคชันนารีได้), `true`/`false` สำหรับบูลีน, " -"จำนวนเต็ม, จำนวนทศนิยม; มิฉะนั้นจะถือว่าเป็นสตริง. • **Base64**: นำหน้าด้วย `b64-` " -"เพื่อเข้ารหัส base64 ที่ปลอดภัยสำหรับ URL ของค่าดิบ. \n" -"ตัวอย่าง: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" +"กรองตามชื่อ/ค่าของแอตทริบิวต์หนึ่งรายการหรือมากกว่า • **ไวยากรณ์**: `attr_name=method-value[;attr2=method2-value2]…` •**วิธีการ** (ค่าเริ่มต้นคือ `icontains` หากไม่ได้ระบุ): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` •**การกำหนดประเภทข้อมูล**: JSON จะถูกพยายามแปลงก่อน (ดังนั้นคุณสามารถส่งรายการ/ดิคชันนารีได้), `true`/`false` สำหรับบูลีน, จำนวนเต็ม, จำนวนทศนิยม; มิฉะนั้นจะถือว่าเป็นสตริง. • **Base64**: นำหน้าด้วย `b64-` เพื่อเข้ารหัส base64 ที่ปลอดภัยสำหรับ URL ของค่าดิบ. \n" +"ตัวอย่าง: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:568 engine/core/docs/drf/viewsets.py:569 msgid "list all products (simple view)" @@ -618,13 +639,12 @@ msgstr "(exact) รหัส UUID ของผลิตภัณฑ์" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"รายการฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคเพื่อเรียงลำดับ โดยให้ขึ้นต้นด้วย `-` " -"สำหรับการเรียงลำดับจากน้อยไปมาก **ที่อนุญาต:** uuid, rating, name, slug, created, " -"modified, price, random" +"รายการฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคเพื่อเรียงลำดับ โดยให้ขึ้นต้นด้วย `-`" +" สำหรับการเรียงลำดับจากน้อยไปมาก **ที่อนุญาต:** uuid, rating, name, slug, " +"created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -650,7 +670,8 @@ msgstr "เขียนใหม่ผลิตภัณฑ์ที่มีอ #: engine/core/docs/drf/viewsets.py:647 engine/core/docs/drf/viewsets.py:648 msgid "" "update some fields of an existing product, preserving non-editable fields" -msgstr "อัปเดตบางฟิลด์ของสินค้าที่มีอยู่แล้ว โดยคงฟิลด์ที่ไม่สามารถแก้ไขได้ไว้" +msgstr "" +"อัปเดตบางฟิลด์ของสินค้าที่มีอยู่แล้ว โดยคงฟิลด์ที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:666 engine/core/docs/drf/viewsets.py:667 msgid "delete a product" @@ -722,7 +743,9 @@ msgstr "เขียนใหม่ข้อเสนอแนะที่มี #: engine/core/docs/drf/viewsets.py:851 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของฟิลด์ในข้อเสนอแนะที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของฟิลด์ในข้อเสนอแนะที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:861 msgid "list all order–product relations (simple view)" @@ -730,7 +753,9 @@ msgstr "แสดงความสัมพันธ์ระหว่างค #: engine/core/docs/drf/viewsets.py:871 msgid "retrieve a single order–product relation (detailed view)" -msgstr "ดึงความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์เพียงรายการเดียว (มุมมองรายละเอียด)" +msgstr "" +"ดึงความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์เพียงรายการเดียว " +"(มุมมองรายละเอียด)" #: engine/core/docs/drf/viewsets.py:881 msgid "create a new order–product relation" @@ -750,7 +775,8 @@ msgstr "ลบความสัมพันธ์ระหว่างคำส #: engine/core/docs/drf/viewsets.py:921 msgid "add or remove feedback on an order–product relation" -msgstr "เพิ่มหรือลบความคิดเห็นเกี่ยวกับความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์" +msgstr "" +"เพิ่มหรือลบความคิดเห็นเกี่ยวกับความสัมพันธ์ระหว่างคำสั่งซื้อและผลิตภัณฑ์" #: engine/core/docs/drf/viewsets.py:938 msgid "list all brands (simple view)" @@ -778,7 +804,9 @@ msgstr "เขียนใหม่แบรนด์ที่มีอยู่ #: engine/core/docs/drf/viewsets.py:981 msgid "rewrite some fields of an existing brand saving non-editables" -msgstr "เขียนข้อมูลในบางช่องของแบรนด์ที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลในบางช่องของแบรนด์ที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1006 msgid "list all vendors (simple view)" @@ -802,7 +830,9 @@ msgstr "เขียนใหม่ผู้ขายที่มีอยู่ #: engine/core/docs/drf/viewsets.py:1041 msgid "rewrite some fields of an existing vendor saving non-editables" -msgstr "เขียนข้อมูลในบางช่องของซัพพลายเออร์ที่มีอยู่แล้วใหม่ โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" +msgstr "" +"เขียนข้อมูลในบางช่องของซัพพลายเออร์ที่มีอยู่แล้วใหม่ " +"โดยเก็บค่าที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:1051 msgid "list all product images (simple view)" @@ -826,7 +856,9 @@ msgstr "เขียนภาพสินค้าที่มีอยู่ใ #: engine/core/docs/drf/viewsets.py:1086 msgid "rewrite some fields of an existing product image saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของภาพสินค้าที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของภาพสินค้าที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1096 msgid "list all promo codes (simple view)" @@ -850,7 +882,9 @@ msgstr "เขียนโค้ดโปรโมชั่นใหม่โด #: engine/core/docs/drf/viewsets.py:1131 msgid "rewrite some fields of an existing promo code saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของรหัสโปรโมชั่นที่มีอยู่ใหม่ โดยคงค่าที่ไม่สามารถแก้ไขได้ไว้" +msgstr "" +"เขียนฟิลด์บางส่วนของรหัสโปรโมชั่นที่มีอยู่ใหม่ " +"โดยคงค่าที่ไม่สามารถแก้ไขได้ไว้" #: engine/core/docs/drf/viewsets.py:1141 msgid "list all promotions (simple view)" @@ -874,7 +908,9 @@ msgstr "เขียนโปรโมชั่นใหม่โดยคงส #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของโปรโมชั่นที่มีอยู่ใหม่ โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของโปรโมชั่นที่มีอยู่ใหม่ " +"โดยเก็บรักษาข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1186 msgid "list all stocks (simple view)" @@ -898,7 +934,9 @@ msgstr "เขียนบันทึกสต็อกที่มีอยู #: engine/core/docs/drf/viewsets.py:1221 msgid "rewrite some fields of an existing stock record saving non-editables" -msgstr "เขียนฟิลด์บางส่วนของบันทึกสต็อกที่มีอยู่ใหม่ โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนฟิลด์บางส่วนของบันทึกสต็อกที่มีอยู่ใหม่ " +"โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/docs/drf/viewsets.py:1231 msgid "list all product tags (simple view)" @@ -922,7 +960,9 @@ msgstr "เขียนแท็กสินค้าที่มีอยู่ #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" -msgstr "เขียนข้อมูลบางส่วนของแท็กสินค้าที่มีอยู่แล้วใหม่ โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" +msgstr "" +"เขียนข้อมูลบางส่วนของแท็กสินค้าที่มีอยู่แล้วใหม่ " +"โดยบันทึกข้อมูลที่ไม่สามารถแก้ไขได้" #: engine/core/elasticsearch/__init__.py:122 #: engine/core/elasticsearch/__init__.py:570 @@ -1072,7 +1112,7 @@ msgstr "ข้อมูลที่เก็บไว้ในแคช" msgid "camelized JSON data from the requested URL" msgstr "ข้อมูล JSON ที่ผ่านการคาราเมลไลซ์จาก URL ที่ร้องขอ" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "อนุญาตเฉพาะ URL ที่ขึ้นต้นด้วย http(s):// เท่านั้น" @@ -1100,7 +1140,8 @@ msgstr "ซื้อคำสั่ง" #: engine/core/graphene/mutations.py:211 engine/core/graphene/mutations.py:265 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" -msgstr "กรุณาให้ order_uuid หรือ order_hr_id - ต้องเลือกอย่างใดอย่างหนึ่งเท่านั้น!" +msgstr "" +"กรุณาให้ order_uuid หรือ order_hr_id - ต้องเลือกอย่างใดอย่างหนึ่งเท่านั้น!" #: engine/core/graphene/mutations.py:236 engine/core/graphene/mutations.py:501 #: engine/core/graphene/mutations.py:543 engine/core/viewsets.py:712 @@ -1156,9 +1197,10 @@ msgstr "ซื้อคำสั่ง" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" -msgstr "กรุณาส่งแอตทริบิวต์ในรูปแบบสตริงที่จัดรูปแบบดังนี้ attr1=value1,attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" +msgstr "" +"กรุณาส่งแอตทริบิวต์ในรูปแบบสตริงที่จัดรูปแบบดังนี้ attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:549 msgid "add or delete a feedback for orderproduct" @@ -1232,7 +1274,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "คุณลักษณะและคุณค่าใดที่สามารถใช้สำหรับกรองหมวดหมู่นี้ได้" #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "ราคาต่ำสุดและราคาสูงสุดสำหรับสินค้าในหมวดนี้ (หากมี)" #: engine/core/graphene/object_types.py:205 @@ -1501,7 +1544,8 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"แทนกลุ่มของแอตทริบิวต์ ซึ่งสามารถมีลำดับชั้นได้ คลาสนี้ใช้เพื่อจัดการและจัดระเบียบกลุ่มแอตทริบิวต์ " +"แทนกลุ่มของแอตทริบิวต์ ซึ่งสามารถมีลำดับชั้นได้ " +"คลาสนี้ใช้เพื่อจัดการและจัดระเบียบกลุ่มแอตทริบิวต์ " "กลุ่มแอตทริบิวต์สามารถมีกลุ่มแม่ได้ ทำให้เกิดโครงสร้างลำดับชั้น " "ซึ่งสามารถมีประโยชน์ในการจัดหมวดหมู่และจัดการแอตทริบิวต์ได้อย่างมีประสิทธิภาพมากขึ้นในระบบที่ซับซ้อน" @@ -1531,16 +1575,17 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"แทนหน่วยงานผู้ขายที่สามารถจัดเก็บข้อมูลเกี่ยวกับผู้ขายภายนอกและข้อกำหนดในการโต้ตอบของพวกเขาได้ " -"คลาสผู้ขายถูกใช้เพื่อกำหนดและจัดการข้อมูลที่เกี่ยวข้องกับผู้ขายภายนอก มันจัดเก็บชื่อผู้ขาย " -"รายละเอียดการตรวจสอบสิทธิ์ที่จำเป็นสำหรับการสื่อสาร " +"แทนหน่วยงานผู้ขายที่สามารถจัดเก็บข้อมูลเกี่ยวกับผู้ขายภายนอกและข้อกำหนดในการโต้ตอบของพวกเขาได้" +" คลาสผู้ขายถูกใช้เพื่อกำหนดและจัดการข้อมูลที่เกี่ยวข้องกับผู้ขายภายนอก " +"มันจัดเก็บชื่อผู้ขาย รายละเอียดการตรวจสอบสิทธิ์ที่จำเป็นสำหรับการสื่อสาร " "และเปอร์เซ็นต์การเพิ่มราคาที่นำไปใช้กับสินค้าที่นำมาจากผู้ขาย " "โมเดลนี้ยังรักษาข้อมูลเมตาเพิ่มเติมและข้อจำกัด " "ทำให้เหมาะสำหรับการใช้งานในระบบที่มีการโต้ตอบกับผู้ขายภายนอก" #: engine/core/models.py:124 msgid "stores credentials and endpoints required for vendor communication" -msgstr "เก็บรักษาข้อมูลประจำตัวและจุดสิ้นสุดที่จำเป็นสำหรับการสื่อสาร API ของผู้ขาย" +msgstr "" +"เก็บรักษาข้อมูลประจำตัวและจุดสิ้นสุดที่จำเป็นสำหรับการสื่อสาร API ของผู้ขาย" #: engine/core/models.py:125 msgid "authentication info" @@ -1587,8 +1632,8 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "แทนแท็กผลิตภัณฑ์ที่ใช้ในการจัดประเภทหรือระบุผลิตภัณฑ์ คลาส ProductTag " -"ถูกออกแบบมาเพื่อระบุและจัดประเภทผลิตภัณฑ์อย่างเป็นเอกลักษณ์ผ่านการรวมกันของตัวระบุแท็กภายในและชื่อแสดงผลที่ใช้งานง่าย " -"รองรับการดำเนินการที่ส่งออกผ่าน mixins " +"ถูกออกแบบมาเพื่อระบุและจัดประเภทผลิตภัณฑ์อย่างเป็นเอกลักษณ์ผ่านการรวมกันของตัวระบุแท็กภายในและชื่อแสดงผลที่ใช้งานง่าย" +" รองรับการดำเนินการที่ส่งออกผ่าน mixins " "และให้การปรับแต่งเมตาดาต้าสำหรับวัตถุประสงค์ในการบริหารจัดการ" #: engine/core/models.py:209 engine/core/models.py:240 @@ -1641,13 +1686,13 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"แทนถึงเอนทิตีประเภทเพื่อจัดระเบียบและจัดกลุ่มรายการที่เกี่ยวข้องในโครงสร้างลำดับชั้น " -"หมวดหมู่สามารถมีความสัมพันธ์ลำดับชั้นกับหมวดหมู่อื่น ๆ ได้ ซึ่งสนับสนุนความสัมพันธ์แบบพ่อแม่-" -"ลูกคลาสนี้ประกอบด้วยฟิลด์สำหรับข้อมูลเมตาและตัวแทนภาพ " -"ซึ่งทำหน้าที่เป็นพื้นฐานสำหรับคุณสมบัติที่เกี่ยวข้องกับหมวดหมู่ " -"คลาสนี้มักใช้เพื่อกำหนดและจัดการหมวดหมู่สินค้าหรือการจัดกลุ่มที่คล้ายกันภายในแอปพลิเคชัน " -"ช่วยให้ผู้ใช้หรือผู้ดูแลระบบสามารถระบุชื่อ คำอธิบาย และลำดับชั้นของหมวดหมู่ " -"รวมถึงกำหนดคุณลักษณะต่างๆ เช่น รูปภาพ แท็ก หรือความสำคัญ" +"แทนถึงเอนทิตีประเภทเพื่อจัดระเบียบและจัดกลุ่มรายการที่เกี่ยวข้องในโครงสร้างลำดับชั้น" +" หมวดหมู่สามารถมีความสัมพันธ์ลำดับชั้นกับหมวดหมู่อื่น ๆ ได้ " +"ซึ่งสนับสนุนความสัมพันธ์แบบพ่อแม่-ลูกคลาสนี้ประกอบด้วยฟิลด์สำหรับข้อมูลเมตาและตัวแทนภาพ" +" ซึ่งทำหน้าที่เป็นพื้นฐานสำหรับคุณสมบัติที่เกี่ยวข้องกับหมวดหมู่ " +"คลาสนี้มักใช้เพื่อกำหนดและจัดการหมวดหมู่สินค้าหรือการจัดกลุ่มที่คล้ายกันภายในแอปพลิเคชัน" +" ช่วยให้ผู้ใช้หรือผู้ดูแลระบบสามารถระบุชื่อ คำอธิบาย และลำดับชั้นของหมวดหมู่" +" รวมถึงกำหนดคุณลักษณะต่างๆ เช่น รูปภาพ แท็ก หรือความสำคัญ" #: engine/core/models.py:274 msgid "upload an image representing this category" @@ -1698,10 +1743,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"แทนวัตถุแบรนด์ในระบบ คลาสนี้จัดการข้อมูลและคุณลักษณะที่เกี่ยวข้องกับแบรนด์ รวมถึงชื่อ โลโก้ " -"คำอธิบาย หมวดหมู่ที่เกี่ยวข้อง สลักเฉพาะ และลำดับความสำคัญ " +"แทนวัตถุแบรนด์ในระบบ คลาสนี้จัดการข้อมูลและคุณลักษณะที่เกี่ยวข้องกับแบรนด์ " +"รวมถึงชื่อ โลโก้ คำอธิบาย หมวดหมู่ที่เกี่ยวข้อง สลักเฉพาะ และลำดับความสำคัญ " "ช่วยให้สามารถจัดระเบียบและแสดงข้อมูลที่เกี่ยวข้องกับแบรนด์ภายในแอปพลิเคชันได้" #: engine/core/models.py:448 @@ -1746,18 +1792,19 @@ msgstr "หมวดหมู่" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"แสดงถึงสต็อกของสินค้าที่จัดการในระบบ คลาสนี้ให้รายละเอียดเกี่ยวกับความสัมพันธ์ระหว่างผู้จำหน่าย, " -"สินค้า, และข้อมูลสต็อกของพวกเขา รวมถึงคุณสมบัติที่เกี่ยวข้องกับสินค้าคงคลัง เช่น ราคา, ราคาซื้อ, " -"จำนวน, รหัสสินค้า (SKU), และสินทรัพย์ดิจิทัล " -"เป็นส่วนหนึ่งของระบบการจัดการสินค้าคงคลังเพื่อให้สามารถติดตามและประเมินสินค้าที่มีจากผู้จำหน่ายต่างๆ " -"ได้" +"แสดงถึงสต็อกของสินค้าที่จัดการในระบบ " +"คลาสนี้ให้รายละเอียดเกี่ยวกับความสัมพันธ์ระหว่างผู้จำหน่าย, สินค้า, " +"และข้อมูลสต็อกของพวกเขา รวมถึงคุณสมบัติที่เกี่ยวข้องกับสินค้าคงคลัง เช่น " +"ราคา, ราคาซื้อ, จำนวน, รหัสสินค้า (SKU), และสินทรัพย์ดิจิทัล " +"เป็นส่วนหนึ่งของระบบการจัดการสินค้าคงคลังเพื่อให้สามารถติดตามและประเมินสินค้าที่มีจากผู้จำหน่ายต่างๆ" +" ได้" #: engine/core/models.py:520 msgid "the vendor supplying this product stock" @@ -1835,11 +1882,13 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"แสดงถึงผลิตภัณฑ์ที่มีคุณลักษณะต่างๆ เช่น หมวดหมู่, แบรนด์, แท็ก, สถานะดิจิทัล, ชื่อ, คำอธิบาย, " -"หมายเลขชิ้นส่วน, และ slug ให้คุณสมบัติประโยชน์ที่เกี่ยวข้องเพื่อดึงคะแนน, จำนวนความคิดเห็น, " -"ราคา, จำนวนสินค้า, และยอดสั่งซื้อทั้งหมด " +"แสดงถึงผลิตภัณฑ์ที่มีคุณลักษณะต่างๆ เช่น หมวดหมู่, แบรนด์, แท็ก, " +"สถานะดิจิทัล, ชื่อ, คำอธิบาย, หมายเลขชิ้นส่วน, และ slug " +"ให้คุณสมบัติประโยชน์ที่เกี่ยวข้องเพื่อดึงคะแนน, จำนวนความคิดเห็น, ราคา, " +"จำนวนสินค้า, และยอดสั่งซื้อทั้งหมด " "ออกแบบมาเพื่อใช้ในระบบที่จัดการอีคอมเมิร์ซหรือการจัดการสินค้าคงคลัง " -"คลาสนี้โต้ตอบกับโมเดลที่เกี่ยวข้อง (เช่น หมวดหมู่, แบรนด์, และแท็กผลิตภัณฑ์) " +"คลาสนี้โต้ตอบกับโมเดลที่เกี่ยวข้อง (เช่น หมวดหมู่, แบรนด์, และแท็กผลิตภัณฑ์)" +" " "และจัดการการแคชสำหรับคุณสมบัติที่เข้าถึงบ่อยเพื่อปรับปรุงประสิทธิภาพใช้เพื่อกำหนดและจัดการข้อมูลผลิตภัณฑ์และข้อมูลที่เกี่ยวข้องภายในแอปพลิเคชัน" #: engine/core/models.py:585 @@ -1895,14 +1944,15 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "แทนคุณสมบัติในระบบ. คลาสนี้ใช้เพื่อกำหนดและจัดการคุณสมบัติ " -"ซึ่งเป็นข้อมูลที่สามารถปรับแต่งได้ซึ่งสามารถเชื่อมโยงกับเอนทิตีอื่น ๆ ได้. คุณสมบัติมีหมวดหมู่, กลุ่ม, " -"ประเภทค่า, และชื่อที่เกี่ยวข้อง. แบบจำลองรองรับหลายประเภทของค่า รวมถึงสตริง, จำนวนเต็ม, " -"จำนวนทศนิยม, บูลีน, อาร์เรย์, และออบเจ็กต์. " +"ซึ่งเป็นข้อมูลที่สามารถปรับแต่งได้ซึ่งสามารถเชื่อมโยงกับเอนทิตีอื่น ๆ ได้. " +"คุณสมบัติมีหมวดหมู่, กลุ่ม, ประเภทค่า, และชื่อที่เกี่ยวข้อง. " +"แบบจำลองรองรับหลายประเภทของค่า รวมถึงสตริง, จำนวนเต็ม, จำนวนทศนิยม, บูลีน, " +"อาร์เรย์, และออบเจ็กต์. " "ซึ่งช่วยให้สามารถจัดโครงสร้างข้อมูลได้ไดนามิกและยืดหยุ่น." #: engine/core/models.py:733 @@ -1964,11 +2014,12 @@ msgstr "คุณสมบัติ" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"แทนค่าเฉพาะสำหรับคุณลักษณะที่เชื่อมโยงกับผลิตภัณฑ์ มันเชื่อมโยง 'คุณลักษณะ' กับ 'ค่า' ที่ไม่ซ้ำกัน " +"แทนค่าเฉพาะสำหรับคุณลักษณะที่เชื่อมโยงกับผลิตภัณฑ์ มันเชื่อมโยง 'คุณลักษณะ' " +"กับ 'ค่า' ที่ไม่ซ้ำกัน " "ทำให้การจัดระเบียบและการแสดงลักษณะของผลิตภัณฑ์เป็นไปอย่างมีประสิทธิภาพและยืดหยุ่นมากขึ้น" #: engine/core/models.py:788 @@ -1986,14 +2037,16 @@ msgstr "ค่าเฉพาะสำหรับคุณสมบัติน #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"แสดงภาพสินค้าที่เกี่ยวข้องกับสินค้าในระบบ. คลาสนี้ออกแบบมาเพื่อจัดการภาพสำหรับสินค้า " +"แสดงภาพสินค้าที่เกี่ยวข้องกับสินค้าในระบบ. " +"คลาสนี้ออกแบบมาเพื่อจัดการภาพสำหรับสินค้า " "รวมถึงฟังก์ชันสำหรับการอัปโหลดไฟล์ภาพ, การเชื่อมโยงกับสินค้าเฉพาะ, " -"และการกำหนดลำดับการแสดงผล. นอกจากนี้ยังมีคุณสมบัติการเข้าถึงสำหรับผู้ใช้ที่มีความต้องการพิเศษ " +"และการกำหนดลำดับการแสดงผล. " +"นอกจากนี้ยังมีคุณสมบัติการเข้าถึงสำหรับผู้ใช้ที่มีความต้องการพิเศษ " "โดยให้ข้อความทางเลือกสำหรับภาพ." #: engine/core/models.py:826 @@ -2034,13 +2087,13 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "แสดงถึงแคมเปญส่งเสริมการขายสำหรับสินค้าที่มีส่วนลด. " -"คลาสนี้ใช้เพื่อกำหนดและจัดการแคมเปญส่งเสริมการขายที่มอบส่วนลดเป็นเปอร์เซ็นต์สำหรับสินค้า. " -"คลาสนี้ประกอบด้วยคุณสมบัติสำหรับการตั้งค่าอัตราส่วนลด, ให้รายละเอียดเกี่ยวกับโปรโมชั่น, " -"และเชื่อมโยงกับสินค้าที่เกี่ยวข้อง. " +"คลาสนี้ใช้เพื่อกำหนดและจัดการแคมเปญส่งเสริมการขายที่มอบส่วนลดเป็นเปอร์เซ็นต์สำหรับสินค้า." +" คลาสนี้ประกอบด้วยคุณสมบัติสำหรับการตั้งค่าอัตราส่วนลด, " +"ให้รายละเอียดเกี่ยวกับโปรโมชั่น, และเชื่อมโยงกับสินค้าที่เกี่ยวข้อง. " "คลาสนี้ผสานการทำงานกับแคตตาล็อกสินค้าเพื่อกำหนดสินค้าที่ได้รับผลกระทบในแคมเปญ." #: engine/core/models.py:880 @@ -2082,9 +2135,10 @@ msgid "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"แสดงรายการสินค้าที่ผู้ใช้ต้องการเก็บไว้เพื่อจัดการและค้นหาสินค้าที่ต้องการในอนาคต " -"คลาสนี้ให้บริการฟังก์ชันสำหรับการจัดการคอลเลกชันของสินค้า " -"ซึ่งรวมถึงการเพิ่มและลบสินค้าออกจากคอลเลกชัน ตลอดจนการเพิ่มและลบสินค้าหลายรายการพร้อมกัน" +"แสดงรายการสินค้าที่ผู้ใช้ต้องการเก็บไว้เพื่อจัดการและค้นหาสินค้าที่ต้องการในอนาคต" +" คลาสนี้ให้บริการฟังก์ชันสำหรับการจัดการคอลเลกชันของสินค้า " +"ซึ่งรวมถึงการเพิ่มและลบสินค้าออกจากคอลเลกชัน " +"ตลอดจนการเพิ่มและลบสินค้าหลายรายการพร้อมกัน" #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2108,14 +2162,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "แทนเอกสารบันทึกที่เกี่ยวข้องกับผลิตภัณฑ์. " "คลาสนี้ใช้เพื่อเก็บข้อมูลเกี่ยวกับเอกสารที่เกี่ยวข้องกับผลิตภัณฑ์เฉพาะ " "รวมถึงการอัปโหลดไฟล์และข้อมูลเมตาของไฟล์. " -"คลาสนี้มีเมธอดและคุณสมบัติเพื่อจัดการกับประเภทไฟล์และเส้นทางจัดเก็บสำหรับไฟล์เอกสาร. " -"คลาสนี้ขยายฟังก์ชันการทำงานจากมิกซ์อินเฉพาะ และให้คุณสมบัติเพิ่มเติมตามความต้องการ." +"คลาสนี้มีเมธอดและคุณสมบัติเพื่อจัดการกับประเภทไฟล์และเส้นทางจัดเก็บสำหรับไฟล์เอกสาร." +" คลาสนี้ขยายฟังก์ชันการทำงานจากมิกซ์อินเฉพาะ " +"และให้คุณสมบัติเพิ่มเติมตามความต้องการ." #: engine/core/models.py:998 msgid "documentary" @@ -2131,23 +2186,24 @@ msgstr "ยังไม่ได้รับการแก้ไข" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "แทนที่หน่วยงานที่อยู่ซึ่งรวมถึงรายละเอียดตำแหน่งและความสัมพันธ์กับผู้ใช้ " "ให้ฟังก์ชันสำหรับการจัดเก็บข้อมูลทางภูมิศาสตร์และที่อยู่ " "รวมถึงการผสานรวมกับบริการการเข้ารหัสทางภูมิศาสตร์ " -"คลาสนี้ถูกออกแบบมาเพื่อจัดเก็บข้อมูลที่อยู่โดยละเอียด รวมถึงองค์ประกอบเช่น ถนน เมือง ภูมิภาค " -"ประเทศ และตำแหน่งทางภูมิศาสตร์ (ลองจิจูดและละติจูด) รองรับการผสานรวมกับ API " -"การเข้ารหัสทางภูมิศาสตร์ ทำให้สามารถจัดเก็บการตอบสนองของ API " -"ดิบเพื่อการประมวลผลหรือตรวจสอบเพิ่มเติมได้คลาสนี้ยังอนุญาตให้เชื่อมโยงที่อยู่กับผู้ใช้ได้ " -"ซึ่งช่วยให้การจัดการข้อมูลส่วนบุคคลเป็นไปอย่างสะดวก" +"คลาสนี้ถูกออกแบบมาเพื่อจัดเก็บข้อมูลที่อยู่โดยละเอียด รวมถึงองค์ประกอบเช่น " +"ถนน เมือง ภูมิภาค ประเทศ และตำแหน่งทางภูมิศาสตร์ (ลองจิจูดและละติจูด) " +"รองรับการผสานรวมกับ API การเข้ารหัสทางภูมิศาสตร์ " +"ทำให้สามารถจัดเก็บการตอบสนองของ API " +"ดิบเพื่อการประมวลผลหรือตรวจสอบเพิ่มเติมได้คลาสนี้ยังอนุญาตให้เชื่อมโยงที่อยู่กับผู้ใช้ได้" +" ซึ่งช่วยให้การจัดการข้อมูลส่วนบุคคลเป็นไปอย่างสะดวก" #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2210,12 +2266,13 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"แสดงรหัสโปรโมชั่นที่สามารถใช้เพื่อรับส่วนลด การจัดการความถูกต้อง ประเภทของส่วนลด " -"และการใช้งาน คลาส PromoCode จัดเก็บรายละเอียดเกี่ยวกับรหัสโปรโมชั่น รวมถึงตัวระบุที่ไม่ซ้ำกัน " -"คุณสมบัติของส่วนลด (จำนวนหรือเปอร์เซ็นต์) ระยะเวลาการใช้งาน ผู้ใช้ที่เกี่ยวข้อง (ถ้ามี) " -"และสถานะการใช้งาน " -"รวมถึงฟังก์ชันการทำงานเพื่อตรวจสอบและใช้รหัสโปรโมชั่นกับคำสั่งซื้อในขณะที่ตรวจสอบให้แน่ใจว่าข้อจำกัดต่างๆ " -"ได้รับการปฏิบัติตาม" +"แสดงรหัสโปรโมชั่นที่สามารถใช้เพื่อรับส่วนลด การจัดการความถูกต้อง " +"ประเภทของส่วนลด และการใช้งาน คลาส PromoCode " +"จัดเก็บรายละเอียดเกี่ยวกับรหัสโปรโมชั่น รวมถึงตัวระบุที่ไม่ซ้ำกัน " +"คุณสมบัติของส่วนลด (จำนวนหรือเปอร์เซ็นต์) ระยะเวลาการใช้งาน " +"ผู้ใช้ที่เกี่ยวข้อง (ถ้ามี) และสถานะการใช้งาน " +"รวมถึงฟังก์ชันการทำงานเพื่อตรวจสอบและใช้รหัสโปรโมชั่นกับคำสั่งซื้อในขณะที่ตรวจสอบให้แน่ใจว่าข้อจำกัดต่างๆ" +" ได้รับการปฏิบัติตาม" #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" @@ -2302,16 +2359,19 @@ msgstr "ประเภทส่วนลดไม่ถูกต้องสำ msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"แทนคำสั่งซื้อที่ผู้ใช้ได้ทำการสั่งซื้อไว้ คลาสนี้จำลองคำสั่งซื้อภายในแอปพลิเคชัน รวมถึงคุณสมบัติต่าง ๆ " -"เช่น ข้อมูลการเรียกเก็บเงิน ข้อมูลการจัดส่ง สถานะ ผู้ใช้ที่เกี่ยวข้อง การแจ้งเตือน " -"และการดำเนินการที่เกี่ยวข้อง คำสั่งซื้อสามารถมีสินค้าที่เกี่ยวข้องได้ โปรโมชั่นสามารถนำมาใช้ได้ " -"ที่อยู่สามารถตั้งค่าได้ และรายละเอียดการจัดส่งหรือการเรียกเก็บเงินสามารถอัปเดตได้เช่นกัน " -"นอกจากนี้ ฟังก์ชันการทำงานยังรองรับการจัดการสินค้าในวงจรชีวิตของคำสั่งซื้อ" +"แทนคำสั่งซื้อที่ผู้ใช้ได้ทำการสั่งซื้อไว้ " +"คลาสนี้จำลองคำสั่งซื้อภายในแอปพลิเคชัน รวมถึงคุณสมบัติต่าง ๆ เช่น " +"ข้อมูลการเรียกเก็บเงิน ข้อมูลการจัดส่ง สถานะ ผู้ใช้ที่เกี่ยวข้อง " +"การแจ้งเตือน และการดำเนินการที่เกี่ยวข้อง " +"คำสั่งซื้อสามารถมีสินค้าที่เกี่ยวข้องได้ โปรโมชั่นสามารถนำมาใช้ได้ " +"ที่อยู่สามารถตั้งค่าได้ " +"และรายละเอียดการจัดส่งหรือการเรียกเก็บเงินสามารถอัปเดตได้เช่นกัน นอกจากนี้ " +"ฟังก์ชันการทำงานยังรองรับการจัดการสินค้าในวงจรชีวิตของคำสั่งซื้อ" #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2381,11 +2441,13 @@ msgstr "คำสั่ง" #: engine/core/models.py:1319 msgid "a user must have only one pending order at a time" -msgstr "ผู้ใช้ต้องมีคำสั่งซื้อที่รอดำเนินการเพียงหนึ่งรายการเท่านั้นในแต่ละครั้ง!" +msgstr "" +"ผู้ใช้ต้องมีคำสั่งซื้อที่รอดำเนินการเพียงหนึ่งรายการเท่านั้นในแต่ละครั้ง!" #: engine/core/models.py:1351 msgid "you cannot add products to an order that is not a pending one" -msgstr "คุณไม่สามารถเพิ่มสินค้าในคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่รอดำเนินการได้" +msgstr "" +"คุณไม่สามารถเพิ่มสินค้าในคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่รอดำเนินการได้" #: engine/core/models.py:1356 msgid "you cannot add inactive products to order" @@ -2398,7 +2460,8 @@ msgstr "คุณไม่สามารถเพิ่มสินค้าไ #: engine/core/models.py:1395 engine/core/models.py:1420 #: engine/core/models.py:1428 msgid "you cannot remove products from an order that is not a pending one" -msgstr "คุณไม่สามารถลบสินค้าออกจากคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่อยู่ในสถานะรอดำเนินการได้" +msgstr "" +"คุณไม่สามารถลบสินค้าออกจากคำสั่งซื้อที่ไม่ใช่คำสั่งซื้อที่อยู่ในสถานะรอดำเนินการได้" #: engine/core/models.py:1416 #, python-brace-format @@ -2411,7 +2474,8 @@ msgstr "รหัสโปรโมชั่นไม่มีอยู่" #: engine/core/models.py:1454 msgid "you can only buy physical products with shipping address specified" -msgstr "คุณสามารถซื้อได้เฉพาะสินค้าทางกายภาพที่มีที่อยู่สำหรับจัดส่งระบุไว้เท่านั้น!" +msgstr "" +"คุณสามารถซื้อได้เฉพาะสินค้าทางกายภาพที่มีที่อยู่สำหรับจัดส่งระบุไว้เท่านั้น!" #: engine/core/models.py:1473 msgid "address does not exist" @@ -2446,14 +2510,15 @@ msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -"คุณไม่สามารถซื้อได้หากไม่มีการลงทะเบียน กรุณาให้ข้อมูลต่อไปนี้: ชื่อลูกค้า, อีเมลลูกค้า, " -"หมายเลขโทรศัพท์ลูกค้า" +"คุณไม่สามารถซื้อได้หากไม่มีการลงทะเบียน กรุณาให้ข้อมูลต่อไปนี้: ชื่อลูกค้า, " +"อีเมลลูกค้า, หมายเลขโทรศัพท์ลูกค้า" #: engine/core/models.py:1584 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "วิธีการชำระเงินไม่ถูกต้อง: {payment_method} จาก {available_payment_methods}!" +msgstr "" +"วิธีการชำระเงินไม่ถูกต้อง: {payment_method} จาก {available_payment_methods}!" #: engine/core/models.py:1699 msgid "" @@ -2464,9 +2529,9 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "จัดการข้อเสนอแนะของผู้ใช้สำหรับผลิตภัณฑ์ " -"คลาสนี้ถูกออกแบบมาเพื่อรวบรวมและจัดเก็บข้อมูลข้อเสนอแนะของผู้ใช้สำหรับผลิตภัณฑ์เฉพาะที่พวกเขาได้ซื้อ " -"ประกอบด้วยแอตทริบิวต์สำหรับจัดเก็บความคิดเห็นของผู้ใช้ การอ้างอิงถึงผลิตภัณฑ์ที่เกี่ยวข้องในคำสั่งซื้อ " -"และคะแนนที่ผู้ใช้กำหนด " +"คลาสนี้ถูกออกแบบมาเพื่อรวบรวมและจัดเก็บข้อมูลข้อเสนอแนะของผู้ใช้สำหรับผลิตภัณฑ์เฉพาะที่พวกเขาได้ซื้อ" +" ประกอบด้วยแอตทริบิวต์สำหรับจัดเก็บความคิดเห็นของผู้ใช้ " +"การอ้างอิงถึงผลิตภัณฑ์ที่เกี่ยวข้องในคำสั่งซื้อ และคะแนนที่ผู้ใช้กำหนด " "คลาสนี้ใช้ฟิลด์ในฐานข้อมูลเพื่อสร้างแบบจำลองและจัดการข้อมูลข้อเสนอแนะอย่างมีประสิทธิภาพ" #: engine/core/models.py:1711 @@ -2478,7 +2543,8 @@ msgid "feedback comments" msgstr "ความคิดเห็นจากผู้ตอบแบบสอบถาม" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "อ้างอิงถึงผลิตภัณฑ์เฉพาะในคำสั่งซื้อที่ความคิดเห็นนี้เกี่ยวข้อง" #: engine/core/models.py:1720 @@ -2505,12 +2571,14 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"แสดงผลิตภัณฑ์ที่เกี่ยวข้องกับคำสั่งซื้อและคุณลักษณะของผลิตภัณฑ์โมเดล OrderProduct " -"ดูแลข้อมูลเกี่ยวกับสินค้าที่เป็นส่วนหนึ่งของคำสั่งซื้อ รวมถึงรายละเอียดเช่น ราคาซื้อ จำนวน " -"คุณสมบัติของสินค้า และสถานะ โมเดลนี้จัดการการแจ้งเตือนสำหรับผู้ใช้และผู้ดูแลระบบ " +"แสดงผลิตภัณฑ์ที่เกี่ยวข้องกับคำสั่งซื้อและคุณลักษณะของผลิตภัณฑ์โมเดล " +"OrderProduct ดูแลข้อมูลเกี่ยวกับสินค้าที่เป็นส่วนหนึ่งของคำสั่งซื้อ " +"รวมถึงรายละเอียดเช่น ราคาซื้อ จำนวน คุณสมบัติของสินค้า และสถานะ " +"โมเดลนี้จัดการการแจ้งเตือนสำหรับผู้ใช้และผู้ดูแลระบบ " "และจัดการการดำเนินการเช่น การคืนสินค้าคงเหลือหรือการเพิ่มความคิดเห็น " -"โมเดลนี้ยังมีวิธีการและคุณสมบัติที่สนับสนุนตรรกะทางธุรกิจ เช่น การคำนวณราคารวมหรือการสร้าง URL " -"สำหรับดาวน์โหลดสินค้าดิจิทัล โมเดลนี้ผสานรวมกับโมเดล Order และ Product " +"โมเดลนี้ยังมีวิธีการและคุณสมบัติที่สนับสนุนตรรกะทางธุรกิจ เช่น " +"การคำนวณราคารวมหรือการสร้าง URL สำหรับดาวน์โหลดสินค้าดิจิทัล " +"โมเดลนี้ผสานรวมกับโมเดล Order และ Product " "และเก็บการอ้างอิงถึงโมเดลเหล่านี้ไว้" #: engine/core/models.py:1757 @@ -2619,14 +2687,14 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"แสดงถึงฟังก์ชันการดาวน์โหลดสำหรับสินทรัพย์ดิจิทัลที่เกี่ยวข้องกับคำสั่งซื้อ คลาส " -"DigitalAssetDownload " -"ให้ความสามารถในการจัดการและเข้าถึงการดาวน์โหลดที่เกี่ยวข้องกับผลิตภัณฑ์ในคำสั่งซื้อ " -"มันเก็บข้อมูลเกี่ยวกับผลิตภัณฑ์ในคำสั่งซื้อที่เกี่ยวข้อง จำนวนการดาวน์โหลด " +"แสดงถึงฟังก์ชันการดาวน์โหลดสำหรับสินทรัพย์ดิจิทัลที่เกี่ยวข้องกับคำสั่งซื้อ " +"คลาส DigitalAssetDownload " +"ให้ความสามารถในการจัดการและเข้าถึงการดาวน์โหลดที่เกี่ยวข้องกับผลิตภัณฑ์ในคำสั่งซื้อ" +" มันเก็บข้อมูลเกี่ยวกับผลิตภัณฑ์ในคำสั่งซื้อที่เกี่ยวข้อง จำนวนการดาวน์โหลด " "และว่าสินทรัพย์นั้นสามารถมองเห็นได้สาธารณะหรือไม่ รวมถึงวิธีการสร้าง URL " "สำหรับการดาวน์โหลดสินทรัพย์เมื่อคำสั่งซื้อที่เกี่ยวข้องอยู่ในสถานะเสร็จสมบูรณ์" @@ -2641,7 +2709,8 @@ msgstr "ดาวน์โหลด" #: engine/core/serializers/utility.py:89 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." -msgstr "คุณต้องแสดงความคิดเห็น, ให้คะแนน, และระบุ uuid ของสินค้าเพื่อเพิ่มคำแนะนำ" +msgstr "" +"คุณต้องแสดงความคิดเห็น, ให้คะแนน, และระบุ uuid ของสินค้าเพื่อเพิ่มคำแนะนำ" #: engine/core/sitemaps.py:25 msgid "Home" @@ -2672,8 +2741,8 @@ msgid "No customer activity in the last 30 days." msgstr "ไม่มีกิจกรรมของลูกค้าใน 30 วันที่ผ่านมา" #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "ยอดขายรายวัน (30 วัน)" +msgid "Daily sales" +msgstr "ยอดขายรายวัน" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2684,6 +2753,7 @@ msgid "Gross revenue" msgstr "รายได้รวม" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "คำสั่ง" @@ -2691,6 +2761,10 @@ msgstr "คำสั่ง" msgid "Gross" msgstr "กรอส" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "แดชบอร์ด" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "ภาพรวมรายได้" @@ -2719,20 +2793,32 @@ msgid "No data" msgstr "ไม่มีวันที่" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "รายได้ (รวม, 30 วัน)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "รายได้ (สุทธิ, 30 วัน)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "การคืนสินค้า (30 วัน)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "รายได้สุทธิ" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "คำสั่งซื้อที่ดำเนินการแล้ว (30 วัน)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "อัตราการคืนเงิน" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "ส่งคืน" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "สินค้าใกล้หมด" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "ไม่มีสินค้าคงคลังต่ำ" #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2747,11 +2833,11 @@ msgid "Most wished product" msgstr "สินค้าที่ลูกค้าต้องการมากที่สุด" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "ยังไม่มีข้อมูล" -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "สินค้าที่ได้รับความนิยมมากที่สุด" @@ -2787,10 +2873,6 @@ msgstr "ไม่มีการขายในหมวดหมู่ใดใ msgid "Django site admin" msgstr "ผู้ดูแลระบบเว็บไซต์ Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "แดชบอร์ด" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2820,12 +2902,12 @@ msgstr "สวัสดีครับ/ค่ะ %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "ขอบคุณสำหรับคำสั่งซื้อของคุณ #%(order.pk)s! " -"เราขอแจ้งให้คุณทราบว่าเราได้ดำเนินการตามคำสั่งซื้อของคุณแล้ว รายละเอียดของคำสั่งซื้อของคุณมีดังนี้:" +"เราขอแจ้งให้คุณทราบว่าเราได้ดำเนินการตามคำสั่งซื้อของคุณแล้ว " +"รายละเอียดของคำสั่งซื้อของคุณมีดังนี้:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2848,7 +2930,9 @@ msgstr "ราคาทั้งหมด" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "หากคุณมีคำถามใด ๆ โปรดติดต่อทีมสนับสนุนของเราได้ที่ %(config.EMAIL_HOST_USER)s" +msgstr "" +"หากคุณมีคำถามใด ๆ โปรดติดต่อทีมสนับสนุนของเราได้ที่ " +"%(config.EMAIL_HOST_USER)s" #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -2927,12 +3011,11 @@ msgstr "ขอบคุณที่เข้าพักกับเรา! เ #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" -"ขอบคุณสำหรับการสั่งซื้อของคุณ! เราขอแจ้งยืนยันการสั่งซื้อของคุณเรียบร้อยแล้ว " -"รายละเอียดการสั่งซื้อของคุณมีดังนี้:" +"ขอบคุณสำหรับการสั่งซื้อของคุณ! เราขอแจ้งยืนยันการสั่งซื้อของคุณเรียบร้อยแล้ว" +" รายละเอียดการสั่งซื้อของคุณมีดังนี้:" #: engine/core/templates/shipped_order_created_email.html:123 #: engine/core/templates/shipped_order_delivered_email.html:123 @@ -2998,7 +3081,7 @@ msgstr "ต้องกำหนดค่าพารามิเตอร์ NO msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "ขนาดของภาพไม่ควรเกิน w{max_width} x h{max_height} พิกเซล!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3006,111 +3089,110 @@ msgstr "" "จัดการคำขอสำหรับดัชนีแผนผังเว็บไซต์และส่งคืนการตอบสนองในรูปแบบ XML " "โดยตรวจสอบให้แน่ใจว่าการตอบสนองมีหัวข้อประเภทเนื้อหาที่เหมาะสมสำหรับ XML" -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"จัดการการตอบสนองมุมมองรายละเอียดสำหรับแผนผังเว็บไซต์ ฟังก์ชันนี้ประมวลผลคำขอ " -"ดึงการตอบสนองรายละเอียดแผนผังเว็บไซต์ที่เหมาะสม และตั้งค่าส่วนหัว Content-Type สำหรับ XML" +"จัดการการตอบสนองมุมมองรายละเอียดสำหรับแผนผังเว็บไซต์ ฟังก์ชันนี้ประมวลผลคำขอ" +" ดึงการตอบสนองรายละเอียดแผนผังเว็บไซต์ที่เหมาะสม และตั้งค่าส่วนหัว Content-" +"Type สำหรับ XML" -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "ส่งคืนรายการของภาษาที่รองรับและข้อมูลที่เกี่ยวข้อง" -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "ส่งคืนพารามิเตอร์ของเว็บไซต์ในรูปแบบอ็อบเจ็กต์ JSON" -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"จัดการการดำเนินการแคช เช่น การอ่านและการตั้งค่าข้อมูลแคชด้วยคีย์ที่กำหนดและเวลาหมดอายุ" +"จัดการการดำเนินการแคช เช่น " +"การอ่านและการตั้งค่าข้อมูลแคชด้วยคีย์ที่กำหนดและเวลาหมดอายุ" -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "จัดการการส่งแบบฟอร์ม 'ติดต่อเรา'" -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -"จัดการคำขอสำหรับการประมวลผลและตรวจสอบความถูกต้องของ URL จากคำขอ POST ที่เข้ามา" +"จัดการคำขอสำหรับการประมวลผลและตรวจสอบความถูกต้องของ URL จากคำขอ POST " +"ที่เข้ามา" -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "จัดการคำค้นหาทั่วโลก" -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "จัดการตรรกะของการซื้อในฐานะธุรกิจโดยไม่ต้องจดทะเบียน" -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "จัดการการดาวน์โหลดสินทรัพย์ดิจิทัลที่เกี่ยวข้องกับคำสั่งซื้อ " -"ฟังก์ชันนี้พยายามให้บริการไฟล์สินทรัพย์ดิจิทัลที่อยู่ในไดเรกทอรีจัดเก็บของโครงการ หากไม่พบไฟล์ " -"จะเกิดข้อผิดพลาด HTTP 404 เพื่อระบุว่าทรัพยากรไม่พร้อมใช้งาน" +"ฟังก์ชันนี้พยายามให้บริการไฟล์สินทรัพย์ดิจิทัลที่อยู่ในไดเรกทอรีจัดเก็บของโครงการ" +" หากไม่พบไฟล์ จะเกิดข้อผิดพลาด HTTP 404 เพื่อระบุว่าทรัพยากรไม่พร้อมใช้งาน" -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid เป็นข้อมูลที่จำเป็น" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "คำสั่งซื้อสินค้าไม่มีอยู่" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "คุณสามารถดาวน์โหลดสินทรัพย์ดิจิทัลได้เพียงครั้งเดียวเท่านั้น" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "คำสั่งซื้อจะต้องชำระเงินก่อนดาวน์โหลดสินทรัพย์ดิจิทัล" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "สินค้าตามคำสั่งซื้อไม่มีสินค้า" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "ไม่พบไอคอนเว็บไซต์" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"จัดการคำขอสำหรับไอคอนเว็บไซต์ (favicon) ฟังก์ชันนี้พยายามให้บริการไฟล์ favicon " -"ที่อยู่ในไดเรกทอรีแบบคงที่ของโปรเจกต์ หากไม่พบไฟล์ favicon จะเกิดข้อผิดพลาด HTTP 404 " -"เพื่อแสดงว่าทรัพยากรไม่พร้อมใช้งาน" +"จัดการคำขอสำหรับไอคอนเว็บไซต์ (favicon) ฟังก์ชันนี้พยายามให้บริการไฟล์ " +"favicon ที่อยู่ในไดเรกทอรีแบบคงที่ของโปรเจกต์ หากไม่พบไฟล์ favicon " +"จะเกิดข้อผิดพลาด HTTP 404 เพื่อแสดงว่าทรัพยากรไม่พร้อมใช้งาน" -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "เปลี่ยนเส้นทางคำขอไปยังหน้าดัชนีของผู้ดูแลระบบ ฟังก์ชันนี้จัดการคำขอ HTTP " -"ที่เข้ามาและเปลี่ยนเส้นทางไปยังหน้าดัชนีของอินเทอร์เฟซผู้ดูแลระบบ Django โดยใช้ฟังก์ชัน " -"`redirect` ของ Django สำหรับการเปลี่ยนเส้นทาง HTTP" +"ที่เข้ามาและเปลี่ยนเส้นทางไปยังหน้าดัชนีของอินเทอร์เฟซผู้ดูแลระบบ Django " +"โดยใช้ฟังก์ชัน `redirect` ของ Django สำหรับการเปลี่ยนเส้นทาง HTTP" -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "ส่งคืนเวอร์ชันปัจจุบันของ eVibes" -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "ส่งคืนตัวแปรที่กำหนดเองสำหรับแดชบอร์ด" @@ -3122,23 +3204,25 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"กำหนดชุดมุมมองสำหรับการจัดการการดำเนินการที่เกี่ยวข้องกับ Evibes คลาส EvibesViewSet " -"สืบทอดมาจาก ModelViewSet " -"และให้ฟังก์ชันการทำงานสำหรับการจัดการการกระทำและการดำเนินการบนเอนทิตีของ Evibes " -"รวมถึงการรองรับคลาสตัวแปลงแบบไดนามิกตามการกระทำปัจจุบัน การอนุญาตที่ปรับแต่งได้ " -"และรูปแบบการแสดงผล" +"กำหนดชุดมุมมองสำหรับการจัดการการดำเนินการที่เกี่ยวข้องกับ Evibes คลาส " +"EvibesViewSet สืบทอดมาจาก ModelViewSet " +"และให้ฟังก์ชันการทำงานสำหรับการจัดการการกระทำและการดำเนินการบนเอนทิตีของ " +"Evibes รวมถึงการรองรับคลาสตัวแปลงแบบไดนามิกตามการกระทำปัจจุบัน " +"การอนุญาตที่ปรับแต่งได้ และรูปแบบการแสดงผล" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"แสดงชุดมุมมองสำหรับการจัดการวัตถุ AttributeGroup ดำเนินการที่เกี่ยวข้องกับ AttributeGroup " -"รวมถึงการกรอง การแปลงข้อมูลเป็นรูปแบบที่ส่งผ่านได้ และการดึงข้อมูล คลาสนี้เป็นส่วนหนึ่งของชั้น " -"API ของแอปพลิเคชันและให้วิธีการมาตรฐานในการประมวลผลคำขอและการตอบสนองสำหรับข้อมูล " -"AttributeGroup" +"แสดงชุดมุมมองสำหรับการจัดการวัตถุ AttributeGroup ดำเนินการที่เกี่ยวข้องกับ " +"AttributeGroup รวมถึงการกรอง การแปลงข้อมูลเป็นรูปแบบที่ส่งผ่านได้ " +"และการดึงข้อมูล คลาสนี้เป็นส่วนหนึ่งของชั้น API " +"ของแอปพลิเคชันและให้วิธีการมาตรฐานในการประมวลผลคำขอและการตอบสนองสำหรับข้อมูล" +" AttributeGroup" #: engine/core/viewsets.py:175 msgid "" @@ -3149,24 +3233,26 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุ Attribute ภายในแอปพลิเคชัน ให้ชุดของจุดสิ้นสุด API " -"สำหรับการโต้ตอบกับข้อมูล Attribute คลาสนี้จัดการการค้นหา การกรอง และการแปลงวัตถุ " -"Attribute เป็นรูปแบบที่อ่านได้ ช่วยให้สามารถควบคุมข้อมูลที่ส่งคืนได้อย่างยืดหยุ่น เช่น " -"การกรองตามฟิลด์เฉพาะ หรือการดึงข้อมูลแบบละเอียดหรือแบบย่อ ขึ้นอยู่กับความต้องการของคำขอ" +"จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุ Attribute ภายในแอปพลิเคชัน " +"ให้ชุดของจุดสิ้นสุด API สำหรับการโต้ตอบกับข้อมูล Attribute " +"คลาสนี้จัดการการค้นหา การกรอง และการแปลงวัตถุ Attribute เป็นรูปแบบที่อ่านได้" +" ช่วยให้สามารถควบคุมข้อมูลที่ส่งคืนได้อย่างยืดหยุ่น เช่น " +"การกรองตามฟิลด์เฉพาะ หรือการดึงข้อมูลแบบละเอียดหรือแบบย่อ " +"ขึ้นอยู่กับความต้องการของคำขอ" #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "ชุดมุมมองสำหรับการจัดการวัตถุ AttributeValue " -"ชุดมุมมองนี้ให้ฟังก์ชันการทำงานสำหรับการแสดงรายการ การดึงข้อมูล การสร้าง การอัปเดต " -"และการลบวัตถุ AttributeValue มันผสานรวมกับกลไกชุดมุมมองของ Django REST Framework " -"และใช้ตัวแปลงข้อมูลที่เหมาะสมสำหรับแต่ละการกระทำ ความสามารถในการกรองข้อมูลมีให้ผ่าน " -"DjangoFilterBackend" +"ชุดมุมมองนี้ให้ฟังก์ชันการทำงานสำหรับการแสดงรายการ การดึงข้อมูล การสร้าง " +"การอัปเดต และการลบวัตถุ AttributeValue มันผสานรวมกับกลไกชุดมุมมองของ Django " +"REST Framework และใช้ตัวแปลงข้อมูลที่เหมาะสมสำหรับแต่ละการกระทำ " +"ความสามารถในการกรองข้อมูลมีให้ผ่าน DjangoFilterBackend" #: engine/core/viewsets.py:213 msgid "" @@ -3177,8 +3263,9 @@ msgid "" "can access specific data." msgstr "" "จัดการมุมมองสำหรับการดำเนินการที่เกี่ยวข้องกับหมวดหมู่ คลาส CategoryViewSet " -"รับผิดชอบในการจัดการการดำเนินการที่เกี่ยวข้องกับโมเดลหมวดหมู่ในระบบ มันรองรับการดึงข้อมูล " -"การกรอง และการแปลงข้อมูลหมวดหมู่เป็นรูปแบบที่ส่งต่อได้ " +"รับผิดชอบในการจัดการการดำเนินการที่เกี่ยวข้องกับโมเดลหมวดหมู่ในระบบ " +"มันรองรับการดึงข้อมูล การกรอง และการแปลงข้อมูลหมวดหมู่เป็นรูปแบบที่ส่งต่อได้" +" " "ชุดมุมมองนี้ยังบังคับใช้สิทธิ์การเข้าถึงเพื่อให้แน่ใจว่าเฉพาะผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่สามารถเข้าถึงข้อมูลเฉพาะได้" #: engine/core/viewsets.py:326 @@ -3188,9 +3275,11 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"แทนชุดมุมมองสำหรับการจัดการอินสแตนซ์ของแบรนด์ คลาสนี้ให้ฟังก์ชันการทำงานสำหรับการค้นหา " -"การกรอง และการแปลงออบเจ็กต์แบรนด์เป็นรูปแบบที่ส่งผ่านได้ โดยใช้เฟรมเวิร์ก ViewSet ของ " -"Django เพื่อทำให้การพัฒนาระบบจุดสิ้นสุด API สำหรับออบเจ็กต์แบรนด์เป็นเรื่องง่ายขึ้น" +"แทนชุดมุมมองสำหรับการจัดการอินสแตนซ์ของแบรนด์ " +"คลาสนี้ให้ฟังก์ชันการทำงานสำหรับการค้นหา การกรอง " +"และการแปลงออบเจ็กต์แบรนด์เป็นรูปแบบที่ส่งผ่านได้ โดยใช้เฟรมเวิร์ก ViewSet " +"ของ Django เพื่อทำให้การพัฒนาระบบจุดสิ้นสุด API " +"สำหรับออบเจ็กต์แบรนด์เป็นเรื่องง่ายขึ้น" #: engine/core/viewsets.py:438 msgid "" @@ -3205,8 +3294,8 @@ msgstr "" "จัดการการดำเนินงานที่เกี่ยวข้องกับโมเดล `Product` ในระบบ " "คลาสนี้ให้ชุดมุมมองสำหรับการจัดการผลิตภัณฑ์ รวมถึงการกรอง การแปลงเป็นลำดับ " "และปฏิบัติการบนอินสแตนซ์เฉพาะ มันขยายจาก `EvibesViewSet` " -"เพื่อใช้ฟังก์ชันทั่วไปและผสานรวมกับเฟรมเวิร์ก Django REST สำหรับการดำเนินการ API แบบ " -"RESTful รวมถึงวิธีการสำหรับการดึงรายละเอียดผลิตภัณฑ์ การใช้สิทธิ์ " +"เพื่อใช้ฟังก์ชันทั่วไปและผสานรวมกับเฟรมเวิร์ก Django REST สำหรับการดำเนินการ" +" API แบบ RESTful รวมถึงวิธีการสำหรับการดึงรายละเอียดผลิตภัณฑ์ การใช้สิทธิ์ " "และการเข้าถึงข้อเสนอแนะที่เกี่ยวข้องของผลิตภัณฑ์" #: engine/core/viewsets.py:574 @@ -3217,9 +3306,9 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"แสดงชุดมุมมองสำหรับการจัดการวัตถุ Vendor ชุดมุมมองนี้อนุญาตให้ดึงข้อมูล กรอง และแปลงข้อมูล " -"Vendor เป็นรูปแบบที่อ่านได้ ชุดมุมมองนี้กำหนด queryset การกำหนดค่าตัวกรอง และคลาส " -"serializer ที่ใช้จัดการการดำเนินการต่างๆ " +"แสดงชุดมุมมองสำหรับการจัดการวัตถุ Vendor ชุดมุมมองนี้อนุญาตให้ดึงข้อมูล กรอง" +" และแปลงข้อมูล Vendor เป็นรูปแบบที่อ่านได้ ชุดมุมมองนี้กำหนด queryset " +"การกำหนดค่าตัวกรอง และคลาส serializer ที่ใช้จัดการการดำเนินการต่างๆ " "วัตถุประสงค์ของคลาสนี้คือการให้การเข้าถึงทรัพยากรที่เกี่ยวข้องกับ Vendor " "อย่างมีประสิทธิภาพผ่านกรอบงาน Django REST" @@ -3228,29 +3317,32 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"การแสดงชุดมุมมองที่จัดการวัตถุข้อเสนอแนะ คลาสนี้จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุข้อเสนอแนะ " -"รวมถึงการแสดงรายการ การกรอง และการดึงรายละเอียด " -"วัตถุประสงค์ของชุดมุมมองนี้คือการจัดเตรียมตัวแปลงอนุกรมที่แตกต่างกันสำหรับการดำเนินการต่างๆ " -"และจัดการวัตถุข้อเสนอแนะที่เข้าถึงได้บนพื้นฐานของสิทธิ์ มันขยายคลาสพื้นฐาน `EvibesViewSet` " -"และใช้ระบบกรองของ Django สำหรับการสืบค้นข้อมูล" +"การแสดงชุดมุมมองที่จัดการวัตถุข้อเสนอแนะ " +"คลาสนี้จัดการการดำเนินการที่เกี่ยวข้องกับวัตถุข้อเสนอแนะ รวมถึงการแสดงรายการ" +" การกรอง และการดึงรายละเอียด " +"วัตถุประสงค์ของชุดมุมมองนี้คือการจัดเตรียมตัวแปลงอนุกรมที่แตกต่างกันสำหรับการดำเนินการต่างๆ" +" และจัดการวัตถุข้อเสนอแนะที่เข้าถึงได้บนพื้นฐานของสิทธิ์ มันขยายคลาสพื้นฐาน " +"`EvibesViewSet` และใช้ระบบกรองของ Django สำหรับการสืบค้นข้อมูล" #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet สำหรับการจัดการคำสั่งซื้อและกิจกรรมที่เกี่ยวข้อง คลาสนี้ให้ฟังก์ชันการทำงานในการดึงข้อมูล " -"แก้ไข และจัดการอ็อบเจ็กต์คำสั่งซื้อ รวมถึงจุดสิ้นสุดต่างๆ สำหรับการจัดการคำสั่งซื้อ เช่น " -"การเพิ่มหรือลบผลิตภัณฑ์ การดำเนินการซื้อสำหรับผู้ใช้ที่ลงทะเบียนและไม่ได้ลงทะเบียน " +"ViewSet สำหรับการจัดการคำสั่งซื้อและกิจกรรมที่เกี่ยวข้อง " +"คลาสนี้ให้ฟังก์ชันการทำงานในการดึงข้อมูล แก้ไข และจัดการอ็อบเจ็กต์คำสั่งซื้อ" +" รวมถึงจุดสิ้นสุดต่างๆ สำหรับการจัดการคำสั่งซื้อ เช่น " +"การเพิ่มหรือลบผลิตภัณฑ์ " +"การดำเนินการซื้อสำหรับผู้ใช้ที่ลงทะเบียนและไม่ได้ลงทะเบียน " "และการดึงคำสั่งซื้อที่รอดำเนินการของผู้ใช้ที่เข้าสู่ระบบปัจจุบัน ViewSet " "ใช้ตัวแปลงข้อมูลหลายแบบตามการกระทำที่เฉพาะเจาะจงและบังคับใช้สิทธิ์การเข้าถึงอย่างเหมาะสมขณะโต้ตอบกับข้อมูลคำสั่งซื้อ" @@ -3258,15 +3350,16 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"ให้ชุดมุมมองสำหรับการจัดการเอนทิตี OrderProduct ชุดมุมมองนี้ช่วยให้สามารถดำเนินการ CRUD " -"และดำเนินการเฉพาะที่เกี่ยวกับโมเดล OrderProduct รวมถึงการกรอง การตรวจสอบสิทธิ์ " +"ให้ชุดมุมมองสำหรับการจัดการเอนทิตี OrderProduct " +"ชุดมุมมองนี้ช่วยให้สามารถดำเนินการ CRUD และดำเนินการเฉพาะที่เกี่ยวกับโมเดล " +"OrderProduct รวมถึงการกรอง การตรวจสอบสิทธิ์ " "และการสลับตัวแปลงตามการดำเนินการที่ร้องขอ " -"นอกจากนี้ยังมีรายละเอียดการดำเนินการสำหรับการจัดการข้อเสนอแนะเกี่ยวกับอินสแตนซ์ของ " -"OrderProduct" +"นอกจากนี้ยังมีรายละเอียดการดำเนินการสำหรับการจัดการข้อเสนอแนะเกี่ยวกับอินสแตนซ์ของ" +" OrderProduct" #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " @@ -3276,7 +3369,8 @@ msgstr "จัดการการดำเนินงานที่เกี msgid "" "Manages the retrieval and handling of PromoCode instances through various " "API actions." -msgstr "จัดการการดึงและการจัดการของตัวอย่าง PromoCode ผ่านการกระทำของ API ต่าง ๆ" +msgstr "" +"จัดการการดึงและการจัดการของตัวอย่าง PromoCode ผ่านการกระทำของ API ต่าง ๆ" #: engine/core/viewsets.py:914 msgid "Represents a view set for managing promotions. " @@ -3290,18 +3384,19 @@ msgstr "จัดการการดำเนินงานที่เกี msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"ViewSet สำหรับการจัดการการดำเนินการในรายการที่ต้องการ (Wishlist) WishlistViewSet " -"ให้จุดเชื่อมต่อสำหรับการโต้ตอบกับรายการที่ต้องการของผู้ใช้ ซึ่งช่วยให้สามารถดึงข้อมูล แก้ไข " -"และปรับแต่งผลิตภัณฑ์ในรายการที่ต้องการได้ ViewSet นี้อำนวยความสะดวกในการทำงาน เช่น " -"การเพิ่ม การลบ และการดำเนินการแบบกลุ่มสำหรับผลิตภัณฑ์ในรายการที่ต้องการ " -"มีการตรวจสอบสิทธิ์เพื่อรับรองว่าผู้ใช้สามารถจัดการรายการที่ต้องการของตนเองเท่านั้น " -"เว้นแต่จะได้รับสิทธิ์อนุญาตอย่างชัดเจน" +"ViewSet สำหรับการจัดการการดำเนินการในรายการที่ต้องการ (Wishlist) " +"WishlistViewSet ให้จุดเชื่อมต่อสำหรับการโต้ตอบกับรายการที่ต้องการของผู้ใช้ " +"ซึ่งช่วยให้สามารถดึงข้อมูล แก้ไข และปรับแต่งผลิตภัณฑ์ในรายการที่ต้องการได้ " +"ViewSet นี้อำนวยความสะดวกในการทำงาน เช่น การเพิ่ม การลบ " +"และการดำเนินการแบบกลุ่มสำหรับผลิตภัณฑ์ในรายการที่ต้องการ " +"มีการตรวจสอบสิทธิ์เพื่อรับรองว่าผู้ใช้สามารถจัดการรายการที่ต้องการของตนเองเท่านั้น" +" เว้นแต่จะได้รับสิทธิ์อนุญาตอย่างชัดเจน" #: engine/core/viewsets.py:1056 msgid "" @@ -3313,8 +3408,9 @@ msgid "" msgstr "" "คลาสนี้ให้ฟังก์ชันการทำงานของ viewset สำหรับจัดการออบเจ็กต์ `Address` คลาส " "AddressViewSet ช่วยให้สามารถดำเนินการ CRUD การกรอง " -"และการดำเนินการที่กำหนดเองที่เกี่ยวข้องกับเอนทิตีที่อยู่ รวมถึงพฤติกรรมเฉพาะสำหรับวิธีการ HTTP " -"ที่แตกต่างกัน การแทนที่ตัวแปลงข้อมูล และการจัดการสิทธิ์ตามบริบทของคำขอ" +"และการดำเนินการที่กำหนดเองที่เกี่ยวข้องกับเอนทิตีที่อยู่ " +"รวมถึงพฤติกรรมเฉพาะสำหรับวิธีการ HTTP ที่แตกต่างกัน การแทนที่ตัวแปลงข้อมูล " +"และการจัดการสิทธิ์ตามบริบทของคำขอ" #: engine/core/viewsets.py:1123 #, python-brace-format diff --git a/engine/core/locale/tr_TR/LC_MESSAGES/django.mo b/engine/core/locale/tr_TR/LC_MESSAGES/django.mo index 37468013e23ed9ff6dfc74526d0905ab75b99d97..24c6bb27d0522cfc5d8b687fe8cd31ccc6e81ed2 100644 GIT binary patch delta 14883 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 B#rFUJ delta 14861 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 diff --git a/engine/core/locale/tr_TR/LC_MESSAGES/django.po b/engine/core/locale/tr_TR/LC_MESSAGES/django.po index 673893d0..c0ff4a25 100644 --- a/engine/core/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/core/locale/tr_TR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Aktif mi" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "false olarak ayarlanırsa, bu nesne gerekli izne sahip olmayan kullanıcılar " "tarafından görülemez" @@ -156,7 +157,8 @@ msgstr "Teslim edildi" msgid "canceled" msgstr "İptal edildi" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Başarısız" @@ -206,10 +208,8 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Önbellekten izin verilen verileri okumak için yalnızca bir anahtar " -"uygulayın.\n" -"Önbelleğe veri yazmak için kimlik doğrulama ile anahtar, veri ve zaman aşımı " -"uygulayın." +"Önbellekten izin verilen verileri okumak için yalnızca bir anahtar uygulayın.\n" +"Önbelleğe veri yazmak için kimlik doğrulama ile anahtar, veri ve zaman aşımı uygulayın." #: engine/core/docs/drf/views.py:62 msgid "get a list of supported languages" @@ -233,7 +233,8 @@ msgstr "Ürünler, kategoriler ve markalar arasında arama" #: engine/core/docs/drf/views.py:130 msgid "global search endpoint to query across project's tables" -msgstr "Proje tabloları arasında sorgulama yapmak için global arama uç noktası" +msgstr "" +"Proje tabloları arasında sorgulama yapmak için global arama uç noktası" #: engine/core/docs/drf/views.py:139 msgid "purchase an order as a business" @@ -273,10 +274,11 @@ msgstr "" "Düzenlenemeyenleri kaydederek mevcut bir öznitelik grubunu yeniden yazma" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" -"Mevcut bir öznitelik grubunun bazı alanlarını düzenlenemez olarak kaydederek " -"yeniden yazın" +"Mevcut bir öznitelik grubunun bazı alanlarını düzenlenemez olarak kaydederek" +" yeniden yazın" #: engine/core/docs/drf/viewsets.py:106 msgid "list all attributes (simple view)" @@ -326,10 +328,11 @@ msgstr "" "Düzenlenemeyenleri kaydederek mevcut bir öznitelik değerini yeniden yazma" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Mevcut bir öznitelik değerinin bazı alanlarını düzenlenemeyenleri kaydederek " -"yeniden yazın" +"Mevcut bir öznitelik değerinin bazı alanlarını düzenlenemeyenleri kaydederek" +" yeniden yazın" #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 msgid "list all categories (simple view)" @@ -384,11 +387,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"human_readable_id, order_products.product.name ve order_products.product." -"partnumber arasında büyük/küçük harfe duyarlı olmayan alt dize araması" +"human_readable_id, order_products.product.name ve " +"order_products.product.partnumber arasında büyük/küçük harfe duyarlı olmayan" +" alt dize araması" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -420,14 +424,14 @@ msgstr "Kullanıcının UUID'sine göre filtreleme" #: engine/core/docs/drf/viewsets.py:318 msgid "Filter by order status (case-insensitive substring match)" msgstr "" -"Sipariş durumuna göre filtreleme (büyük/küçük harfe duyarlı olmayan alt dize " -"eşleşmesi)" +"Sipariş durumuna göre filtreleme (büyük/küçük harfe duyarlı olmayan alt dize" +" eşleşmesi)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Şunlardan birine göre sıralayın: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Azalan için '-' ile önekleyin " @@ -473,8 +477,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Sipariş alımını sonuçlandırır. Eğer `force_balance` kullanılırsa, satın alma " -"işlemi kullanıcının bakiyesi kullanılarak tamamlanır; Eğer `force_payment` " +"Sipariş alımını sonuçlandırır. Eğer `force_balance` kullanılırsa, satın alma" +" işlemi kullanıcının bakiyesi kullanılarak tamamlanır; Eğer `force_payment` " "kullanılırsa, bir işlem başlatılır." #: engine/core/docs/drf/viewsets.py:397 @@ -549,7 +553,8 @@ msgstr "Tüm öznitelikleri listele (basit görünüm)" #: engine/core/docs/drf/viewsets.py:460 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -"Personel olmayan kullanıcılar için yalnızca kendi istek listeleri döndürülür." +"Personel olmayan kullanıcılar için yalnızca kendi istek listeleri " +"döndürülür." #: engine/core/docs/drf/viewsets.py:467 msgid "retrieve a single wishlist (detailed view)" @@ -630,28 +635,18 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Bir veya daha fazla öznitelik adı/değer çiftine göre filtreleyin. \n" "- Sözdizimi**: `attr_name=method-value[;attr2=method2-value2]...`\n" -"- **Metotlar** (atlanırsa varsayılan olarak `icontains` olur): `iexact`, " -"`exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, " -"`endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" -"- Değer tipleme**: JSON ilk olarak denenir (böylece listeleri/dicts'leri " -"geçirebilirsiniz), booleanlar, tamsayılar, floatlar için `true`/`false`; " -"aksi takdirde string olarak ele alınır. \n" -"- **Base64**: ham değeri URL güvenli base64 kodlamak için `b64-` ile " -"önekleyin. \n" +"- **Metotlar** (atlanırsa varsayılan olarak `icontains` olur): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`\n" +"- Değer tipleme**: JSON ilk olarak denenir (böylece listeleri/dicts'leri geçirebilirsiniz), booleanlar, tamsayılar, floatlar için `true`/`false`; aksi takdirde string olarak ele alınır. \n" +"- **Base64**: ham değeri URL güvenli base64 kodlamak için `b64-` ile önekleyin. \n" "Örnekler: \n" "color=exact-red`, `size=gt-10`, `features=in-[\"wifi\", \"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`" @@ -666,14 +661,11 @@ msgstr "(tam) Ürün UUID'si" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Sıralanacak alanların virgülle ayrılmış listesi. Azalan için `-` ile ön " -"ek. \n" -"**İzin verilenler:** uuid, derecelendirme, ad, slug, oluşturuldu, " -"değiştirildi, fiyat, rastgele" +"Sıralanacak alanların virgülle ayrılmış listesi. Azalan için `-` ile ön ek. \n" +"**İzin verilenler:** uuid, derecelendirme, ad, slug, oluşturuldu, değiştirildi, fiyat, rastgele" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -1142,7 +1134,7 @@ msgstr "Önbelleğe alınmış veriler" msgid "camelized JSON data from the requested URL" msgstr "İstenen URL'den kameleştirilmiş JSON verileri" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Yalnızca http(s):// ile başlayan URL'lere izin verilir" @@ -1171,8 +1163,8 @@ msgstr "Bir sipariş satın alın" #: engine/core/graphene/mutations.py:211 engine/core/graphene/mutations.py:265 msgid "please provide either order_uuid or order_hr_id - mutually exclusive" msgstr "" -"Lütfen order_uuid veya order_hr_id bilgilerinden birini sağlayın - birbirini " -"dışlayan bilgiler!" +"Lütfen order_uuid veya order_hr_id bilgilerinden birini sağlayın - birbirini" +" dışlayan bilgiler!" #: engine/core/graphene/mutations.py:236 engine/core/graphene/mutations.py:501 #: engine/core/graphene/mutations.py:543 engine/core/viewsets.py:712 @@ -1228,8 +1220,8 @@ msgstr "Bir sipariş satın alın" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Lütfen öznitelikleri attr1=value1,attr2=value2 şeklinde biçimlendirilmiş " "dize olarak gönderin" @@ -1307,7 +1299,8 @@ msgstr "" "Bu kategoriyi filtrelemek için hangi nitelikler ve değerler kullanılabilir." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "Varsa, bu kategorideki ürünler için minimum ve maksimum fiyatlar." #: engine/core/graphene/object_types.py:205 @@ -1578,9 +1571,9 @@ msgid "" msgstr "" "Hiyerarşik olabilen bir öznitelik grubunu temsil eder. Bu sınıf, öznitelik " "gruplarını yönetmek ve düzenlemek için kullanılır. Bir öznitelik grubu, " -"hiyerarşik bir yapı oluşturan bir üst gruba sahip olabilir. Bu, karmaşık bir " -"sistemde öznitelikleri daha etkili bir şekilde kategorize etmek ve yönetmek " -"için yararlı olabilir." +"hiyerarşik bir yapı oluşturan bir üst gruba sahip olabilir. Bu, karmaşık bir" +" sistemde öznitelikleri daha etkili bir şekilde kategorize etmek ve yönetmek" +" için yararlı olabilir." #: engine/core/models.py:91 msgid "parent of this group" @@ -1610,8 +1603,8 @@ msgid "" msgstr "" "Harici satıcılar ve bunların etkileşim gereksinimleri hakkında bilgi " "depolayabilen bir satıcı varlığını temsil eder. Satıcı sınıfı, harici bir " -"satıcıyla ilgili bilgileri tanımlamak ve yönetmek için kullanılır. Satıcının " -"adını, iletişim için gereken kimlik doğrulama ayrıntılarını ve satıcıdan " +"satıcıyla ilgili bilgileri tanımlamak ve yönetmek için kullanılır. Satıcının" +" adını, iletişim için gereken kimlik doğrulama ayrıntılarını ve satıcıdan " "alınan ürünlere uygulanan yüzde işaretlemesini saklar. Bu model ayrıca ek " "meta verileri ve kısıtlamaları da muhafaza ederek üçüncü taraf satıcılarla " "etkileşime giren sistemlerde kullanıma uygun hale getirir." @@ -1667,11 +1660,11 @@ msgid "" "metadata customization for administrative purposes." msgstr "" "Ürünleri sınıflandırmak veya tanımlamak için kullanılan bir ürün etiketini " -"temsil eder. ProductTag sınıfı, dahili bir etiket tanımlayıcısı ve kullanıcı " -"dostu bir ekran adı kombinasyonu aracılığıyla ürünleri benzersiz bir şekilde " -"tanımlamak ve sınıflandırmak için tasarlanmıştır. Mixin'ler aracılığıyla " -"dışa aktarılan işlemleri destekler ve yönetimsel amaçlar için meta veri " -"özelleştirmesi sağlar." +"temsil eder. ProductTag sınıfı, dahili bir etiket tanımlayıcısı ve kullanıcı" +" dostu bir ekran adı kombinasyonu aracılığıyla ürünleri benzersiz bir " +"şekilde tanımlamak ve sınıflandırmak için tasarlanmıştır. Mixin'ler " +"aracılığıyla dışa aktarılan işlemleri destekler ve yönetimsel amaçlar için " +"meta veri özelleştirmesi sağlar." #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1726,8 +1719,8 @@ msgid "" msgstr "" "İlgili öğeleri hiyerarşik bir yapıda düzenlemek ve gruplamak için bir " "kategori varlığını temsil eder. Kategoriler, ebeveyn-çocuk ilişkilerini " -"destekleyen diğer kategorilerle hiyerarşik ilişkilere sahip olabilir. Sınıf, " -"kategoriyle ilgili özellikler için bir temel görevi gören meta veri ve " +"destekleyen diğer kategorilerle hiyerarşik ilişkilere sahip olabilir. Sınıf," +" kategoriyle ilgili özellikler için bir temel görevi gören meta veri ve " "görsel temsil alanları içerir. Bu sınıf genellikle bir uygulama içinde ürün " "kategorilerini veya diğer benzer gruplamaları tanımlamak ve yönetmek için " "kullanılır ve kullanıcıların veya yöneticilerin kategorilerin adını, " @@ -1783,7 +1776,8 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" "Sistemdeki bir Marka nesnesini temsil eder. Bu sınıf, adı, logoları, " "açıklaması, ilişkili kategorileri, benzersiz bir slug ve öncelik sırası " @@ -1833,8 +1827,8 @@ msgstr "Kategoriler" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1843,8 +1837,8 @@ msgstr "" "Sistemde yönetilen bir ürünün stokunu temsil eder. Bu sınıf, satıcılar, " "ürünler ve bunların stok bilgileri arasındaki ilişkinin yanı sıra fiyat, " "satın alma fiyatı, miktar, SKU ve dijital varlıklar gibi envanterle ilgili " -"özellikler hakkında ayrıntılar sağlar. Çeşitli satıcılardan temin edilebilen " -"ürünlerin izlenmesine ve değerlendirilmesine olanak sağlamak için envanter " +"özellikler hakkında ayrıntılar sağlar. Çeşitli satıcılardan temin edilebilen" +" ürünlerin izlenmesine ve değerlendirilmesine olanak sağlamak için envanter " "yönetim sisteminin bir parçasıdır." #: engine/core/models.py:520 @@ -1986,8 +1980,8 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Sistemdeki bir özniteliği temsil eder. Bu sınıf, diğer varlıklarla " @@ -2057,9 +2051,9 @@ msgstr "Öznitelik" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" "Bir ürünle bağlantılı bir nitelik için belirli bir değeri temsil eder. " "'Niteliği' benzersiz bir 'değere' bağlayarak ürün özelliklerinin daha iyi " @@ -2080,14 +2074,14 @@ msgstr "Bu öznitelik için özel değer" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" "Sistemdeki bir ürünle ilişkilendirilmiş bir ürün resmini temsil eder. Bu " -"sınıf, görüntü dosyalarını yükleme, bunları belirli ürünlerle ilişkilendirme " -"ve görüntüleme sıralarını belirleme işlevleri dahil olmak üzere ürün " +"sınıf, görüntü dosyalarını yükleme, bunları belirli ürünlerle ilişkilendirme" +" ve görüntüleme sıralarını belirleme işlevleri dahil olmak üzere ürün " "görüntülerini yönetmek için tasarlanmıştır. Ayrıca görüntüler için " "alternatif metin içeren bir erişilebilirlik özelliği de içerir." @@ -2129,8 +2123,8 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" "İndirimli ürünler için bir promosyon kampanyasını temsil eder. Bu sınıf, " "ürünler için yüzdeye dayalı bir indirim sunan promosyon kampanyalarını " @@ -2178,10 +2172,10 @@ msgid "" "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." msgstr "" -"İstenen ürünleri depolamak ve yönetmek için bir kullanıcının istek listesini " -"temsil eder. Sınıf, bir ürün koleksiyonunu yönetmek için işlevsellik sağlar, " -"ürün ekleme ve kaldırma gibi işlemlerin yanı sıra aynı anda birden fazla " -"ürün ekleme ve kaldırma işlemlerini destekler." +"İstenen ürünleri depolamak ve yönetmek için bir kullanıcının istek listesini" +" temsil eder. Sınıf, bir ürün koleksiyonunu yönetmek için işlevsellik " +"sağlar, ürün ekleme ve kaldırma gibi işlemlerin yanı sıra aynı anda birden " +"fazla ürün ekleme ve kaldırma işlemlerini destekler." #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2205,14 +2199,14 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Bir ürüne bağlı bir belgesel kaydını temsil eder. Bu sınıf, dosya " "yüklemeleri ve meta verileri dahil olmak üzere belirli ürünlerle ilgili " "belgeseller hakkında bilgi depolamak için kullanılır. Belgesel dosyalarının " -"dosya türünü ve depolama yolunu işlemek için yöntemler ve özellikler içerir. " -"Belirli mixin'lerin işlevselliğini genişletir ve ek özel özellikler sağlar." +"dosya türünü ve depolama yolunu işlemek için yöntemler ve özellikler içerir." +" Belirli mixin'lerin işlevselliğini genişletir ve ek özel özellikler sağlar." #: engine/core/models.py:998 msgid "documentary" @@ -2228,19 +2222,19 @@ msgstr "Çözümlenmemiş" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Konum ayrıntılarını ve bir kullanıcıyla ilişkileri içeren bir adres " -"varlığını temsil eder. Coğrafi ve adres verilerinin depolanmasının yanı sıra " -"coğrafi kodlama hizmetleriyle entegrasyon için işlevsellik sağlar. Bu sınıf, " -"sokak, şehir, bölge, ülke ve coğrafi konum (enlem ve boylam) gibi " +"varlığını temsil eder. Coğrafi ve adres verilerinin depolanmasının yanı sıra" +" coğrafi kodlama hizmetleriyle entegrasyon için işlevsellik sağlar. Bu " +"sınıf, sokak, şehir, bölge, ülke ve coğrafi konum (enlem ve boylam) gibi " "bileşenleri içeren ayrıntılı adres bilgilerini depolamak için " "tasarlanmıştır. Coğrafi kodlama API'leri ile entegrasyonu destekler ve daha " "fazla işleme veya inceleme için ham API yanıtlarının depolanmasını sağlar. " @@ -2319,7 +2313,8 @@ msgstr "" #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" msgstr "" -"Bir kullanıcı tarafından indirimden yararlanmak için kullanılan benzersiz kod" +"Bir kullanıcı tarafından indirimden yararlanmak için kullanılan benzersiz " +"kod" #: engine/core/models.py:1088 msgid "promo code identifier" @@ -2403,16 +2398,16 @@ msgstr "Promosyon kodu {self.uuid} için geçersiz indirim türü!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Bir kullanıcı tarafından verilen bir siparişi temsil eder. Bu sınıf, fatura " "ve kargo bilgileri, durum, ilişkili kullanıcı, bildirimler ve ilgili " "işlemler gibi çeşitli öznitelikleri dahil olmak üzere uygulama içinde bir " -"siparişi modeller. Siparişler ilişkili ürünlere sahip olabilir, promosyonlar " -"uygulanabilir, adresler ayarlanabilir ve kargo veya fatura ayrıntıları " +"siparişi modeller. Siparişler ilişkili ürünlere sahip olabilir, promosyonlar" +" uygulanabilir, adresler ayarlanabilir ve kargo veya fatura ayrıntıları " "güncellenebilir. Aynı şekilde işlevsellik, sipariş yaşam döngüsündeki " "ürünlerin yönetilmesini de destekler." @@ -2523,7 +2518,8 @@ msgstr "Adres mevcut değil" #: engine/core/models.py:1494 engine/core/models.py:1563 msgid "you can not buy at this moment, please try again in a few minutes" -msgstr "Şu anda satın alamazsınız, lütfen birkaç dakika içinde tekrar deneyin." +msgstr "" +"Şu anda satın alamazsınız, lütfen birkaç dakika içinde tekrar deneyin." #: engine/core/models.py:1497 engine/core/models.py:1559 msgid "invalid force value" @@ -2572,8 +2568,8 @@ msgstr "" "aldıkları belirli ürünler için kullanıcı geri bildirimlerini yakalamak ve " "saklamak üzere tasarlanmıştır. Kullanıcı yorumlarını saklamak için " "öznitelikler, siparişteki ilgili ürüne bir referans ve kullanıcı tarafından " -"atanan bir derecelendirme içerir. Sınıf, geri bildirim verilerini etkili bir " -"şekilde modellemek ve yönetmek için veritabanı alanlarını kullanır." +"atanan bir derecelendirme içerir. Sınıf, geri bildirim verilerini etkili bir" +" şekilde modellemek ve yönetmek için veritabanı alanlarını kullanır." #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2585,9 +2581,11 @@ msgid "feedback comments" msgstr "Geri bildirim yorumları" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" -"Bu geri bildirimin ilgili olduğu siparişteki belirli bir ürüne atıfta bulunur" +"Bu geri bildirimin ilgili olduğu siparişteki belirli bir ürüne atıfta " +"bulunur" #: engine/core/models.py:1720 msgid "related order product" @@ -2729,15 +2727,15 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Siparişlerle ilişkili dijital varlıklar için indirme işlevselliğini temsil " "eder. DigitalAssetDownload sınıfı, sipariş ürünleriyle ilgili indirmeleri " "yönetme ve bunlara erişme olanağı sağlar. İlişkili sipariş ürünü, indirme " -"sayısı ve varlığın herkese açık olup olmadığı hakkında bilgi tutar. İlişkili " -"sipariş tamamlandı durumundayken varlığın indirilmesi için bir URL " +"sayısı ve varlığın herkese açık olup olmadığı hakkında bilgi tutar. İlişkili" +" sipariş tamamlandı durumundayken varlığın indirilmesi için bir URL " "oluşturmaya yönelik bir yöntem içerir." #: engine/core/models.py:1961 @@ -2752,8 +2750,8 @@ msgstr "İndirmeler" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"geri̇ bi̇ldi̇ri̇m eklemek i̇çi̇n bi̇r yorum, puan ve si̇pari̇ş ürün uuid'si̇ " -"sağlamalisiniz." +"geri̇ bi̇ldi̇ri̇m eklemek i̇çi̇n bi̇r yorum, puan ve si̇pari̇ş ürün uuid'si̇" +" sağlamalisiniz." #: engine/core/sitemaps.py:25 msgid "Home" @@ -2784,8 +2782,8 @@ msgid "No customer activity in the last 30 days." msgstr "Son 30 gün içinde müşteri faaliyeti yok." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Günlük satışlar (30d)" +msgid "Daily sales" +msgstr "Günlük satışlar" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2796,6 +2794,7 @@ msgid "Gross revenue" msgstr "Brüt gelir" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Siparişler" @@ -2803,6 +2802,10 @@ msgstr "Siparişler" msgid "Gross" msgstr "Brüt" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Gösterge Tablosu" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Gelire genel bakış" @@ -2831,20 +2834,32 @@ msgid "No data" msgstr "Tarih yok" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Gelir (brüt, 30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Gelir (net, 30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "İadeler (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Net gelir" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "İşlenmiş siparişler (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Geri ödeme oranı" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "İade edildi" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Düşük stok" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Düşük stoklu ürün yok." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2859,11 +2874,11 @@ msgid "Most wished product" msgstr "En çok istenen ürün" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "No data yet." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "En popüler ürün" @@ -2899,10 +2914,6 @@ msgstr "Son 30 gün içinde kategori satışı yok." msgid "Django site admin" msgstr "Django site yöneticisi" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Gösterge Tablosu" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2932,8 +2943,7 @@ msgstr "Merhaba %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Siparişiniz için teşekkür ederiz #%(order.pk)s! Siparişinizi işleme " @@ -2992,8 +3002,8 @@ msgid "" "we have successfully processed your order №%(order_uuid)s! below are the\n" " details of your order:" msgstr "" -"Siparişinizi başarıyla işleme aldık №%(order_uuid)s! Siparişinizin detayları " -"aşağıdadır:" +"Siparişinizi başarıyla işleme aldık №%(order_uuid)s! Siparişinizin detayları" +" aşağıdadır:" #: engine/core/templates/digital_order_delivered_email.html:128 msgid "" @@ -3048,8 +3058,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Siparişiniz için teşekkür ederiz! Satın alma işleminizi onaylamaktan " @@ -3121,7 +3130,7 @@ msgstr "NOMINATIM_URL parametresi yapılandırılmalıdır!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "Resim boyutları w{max_width} x h{max_height} pikseli geçmemelidir!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3129,40 +3138,40 @@ msgstr "" "Site haritası dizini için isteği işler ve bir XML yanıtı döndürür. Yanıtın " "XML için uygun içerik türü başlığını içermesini sağlar." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -"Bir site haritası için ayrıntılı görünüm yanıtını işler. Bu fonksiyon isteği " -"işler, uygun site haritası ayrıntı yanıtını getirir ve XML için Content-Type " -"başlığını ayarlar." +"Bir site haritası için ayrıntılı görünüm yanıtını işler. Bu fonksiyon isteği" +" işler, uygun site haritası ayrıntı yanıtını getirir ve XML için Content-" +"Type başlığını ayarlar." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Desteklenen dillerin bir listesini ve bunlara karşılık gelen bilgileri " "döndürür." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Web sitesinin parametrelerini bir JSON nesnesi olarak döndürür." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -"Belirli bir anahtar ve zaman aşımı ile önbellek verilerini okuma ve ayarlama " -"gibi önbellek işlemlerini gerçekleştirir." +"Belirli bir anahtar ve zaman aşımı ile önbellek verilerini okuma ve ayarlama" +" gibi önbellek işlemlerini gerçekleştirir." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Bize ulaşın` form gönderimlerini işler." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3170,66 +3179,58 @@ msgstr "" "Gelen POST isteklerinden gelen URL'leri işleme ve doğrulama isteklerini " "işler." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Küresel arama sorgularını işler." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "Kayıt olmadan bir işletme olarak satın alma mantığını ele alır." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Bir siparişle ilişkili bir dijital varlığın indirilmesini yönetir.\n" -"Bu fonksiyon, projenin depolama dizininde bulunan dijital varlık dosyasını " -"sunmaya çalışır. Dosya bulunamazsa, kaynağın kullanılamadığını belirtmek " -"için bir HTTP 404 hatası verilir." +"Bu fonksiyon, projenin depolama dizininde bulunan dijital varlık dosyasını sunmaya çalışır. Dosya bulunamazsa, kaynağın kullanılamadığını belirtmek için bir HTTP 404 hatası verilir." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid gereklidir" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "sipariş ürünü mevcut değil" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Dijital varlığı yalnızca bir kez indirebilirsiniz" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "dijital varlık indirilmeden önce siparişin ödenmesi gerekir" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Sipariş ürününün bir ürünü yok" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "favicon bulunamadı" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Bir web sitesinin favicon'u için istekleri işler.\n" -"Bu fonksiyon, projenin statik dizininde bulunan favicon dosyasını sunmaya " -"çalışır. Favicon dosyası bulunamazsa, kaynağın kullanılamadığını belirtmek " -"için bir HTTP 404 hatası verilir." +"Bu fonksiyon, projenin statik dizininde bulunan favicon dosyasını sunmaya çalışır. Favicon dosyası bulunamazsa, kaynağın kullanılamadığını belirtmek için bir HTTP 404 hatası verilir." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" "İsteği yönetici dizin sayfasına yönlendirir. Bu fonksiyon gelen HTTP " @@ -3237,11 +3238,11 @@ msgstr "" "yönlendirir. HTTP yönlendirmesini işlemek için Django'nun `redirect` " "fonksiyonunu kullanır." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "eVibes'in geçerli sürümünü döndürür." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Gösterge Tablosu için özel değişkenleri döndürür." @@ -3256,15 +3257,16 @@ msgstr "" "Evibes ile ilgili işlemleri yönetmek için bir görünüm kümesi tanımlar. " "EvibesViewSet sınıfı ModelViewSet'ten miras alınır ve Evibes varlıkları " "üzerindeki eylemleri ve işlemleri yönetmek için işlevsellik sağlar. Geçerli " -"eyleme dayalı dinamik serileştirici sınıfları, özelleştirilebilir izinler ve " -"işleme biçimleri için destek içerir." +"eyleme dayalı dinamik serileştirici sınıfları, özelleştirilebilir izinler ve" +" işleme biçimleri için destek içerir." #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "AttributeGroup nesnelerini yönetmek için bir görünüm kümesini temsil eder. " "Filtreleme, serileştirme ve veri alma dahil olmak üzere AttributeGroup ile " @@ -3293,8 +3295,8 @@ msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "AttributeValue nesnelerini yönetmek için bir görünüm kümesi. Bu görünüm " "kümesi, AttributeValue nesnelerini listelemek, almak, oluşturmak, " @@ -3341,10 +3343,10 @@ msgid "" "product." msgstr "" "Sistemdeki `Product` modeliyle ilgili işlemleri yönetir. Bu sınıf, " -"filtreleme, serileştirme ve belirli örnekler üzerindeki işlemler dahil olmak " -"üzere ürünleri yönetmek için bir görünüm kümesi sağlar. Ortak işlevselliği " -"kullanmak için `EvibesViewSet`ten genişletilir ve RESTful API işlemleri için " -"Django REST çerçevesi ile entegre olur. Ürün ayrıntılarını almak, izinleri " +"filtreleme, serileştirme ve belirli örnekler üzerindeki işlemler dahil olmak" +" üzere ürünleri yönetmek için bir görünüm kümesi sağlar. Ortak işlevselliği " +"kullanmak için `EvibesViewSet`ten genişletilir ve RESTful API işlemleri için" +" Django REST çerçevesi ile entegre olur. Ürün ayrıntılarını almak, izinleri " "uygulamak ve bir ürünün ilgili geri bildirimlerine erişmek için yöntemler " "içerir." @@ -3368,15 +3370,15 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Geri Bildirim nesnelerini işleyen bir görünüm kümesinin temsili. Bu sınıf, " "listeleme, filtreleme ve ayrıntıları alma dahil olmak üzere Geri Bildirim " "nesneleriyle ilgili işlemleri yönetir. Bu görünüm kümesinin amacı, farklı " -"eylemler için farklı serileştiriciler sağlamak ve erişilebilir Geri Bildirim " -"nesnelerinin izin tabanlı kullanımını uygulamaktır. Temel `EvibesViewSet`i " +"eylemler için farklı serileştiriciler sağlamak ve erişilebilir Geri Bildirim" +" nesnelerinin izin tabanlı kullanımını uygulamaktır. Temel `EvibesViewSet`i " "genişletir ve verileri sorgulamak için Django'nun filtreleme sistemini " "kullanır." @@ -3385,17 +3387,17 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" "Siparişleri ve ilgili işlemleri yönetmek için ViewSet. Bu sınıf, sipariş " "nesnelerini almak, değiştirmek ve yönetmek için işlevsellik sağlar. Ürün " "ekleme veya kaldırma, kayıtlı ve kayıtsız kullanıcılar için satın alma " -"işlemleri gerçekleştirme ve mevcut kimliği doğrulanmış kullanıcının bekleyen " -"siparişlerini alma gibi sipariş işlemlerini gerçekleştirmek için çeşitli uç " -"noktalar içerir. ViewSet, gerçekleştirilen belirli eyleme bağlı olarak " +"işlemleri gerçekleştirme ve mevcut kimliği doğrulanmış kullanıcının bekleyen" +" siparişlerini alma gibi sipariş işlemlerini gerçekleştirmek için çeşitli uç" +" noktalar içerir. ViewSet, gerçekleştirilen belirli eyleme bağlı olarak " "birden fazla serileştirici kullanır ve sipariş verileriyle etkileşime " "girerken izinleri buna göre zorlar." @@ -3403,14 +3405,14 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "OrderProduct varlıklarını yönetmek için bir görünüm kümesi sağlar. Bu " "görünüm kümesi, CRUD işlemlerini ve OrderProduct modeline özgü özel " -"eylemleri etkinleştirir. Filtreleme, izin kontrolleri ve istenen eyleme göre " -"serileştirici değiştirme içerir. Ayrıca, OrderProduct örnekleriyle ilgili " +"eylemleri etkinleştirir. Filtreleme, izin kontrolleri ve istenen eyleme göre" +" serileştirici değiştirme içerir. Ayrıca, OrderProduct örnekleriyle ilgili " "geri bildirimleri işlemek için ayrıntılı bir eylem sağlar" #: engine/core/viewsets.py:879 @@ -3437,8 +3439,8 @@ msgstr "Sistemdeki Stok verileri ile ilgili işlemleri yürütür." msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3479,7 +3481,7 @@ msgid "" "serializers based on the action being performed." msgstr "" "Uygulama içinde Ürün Etiketleri ile ilgili işlemleri gerçekleştirir. Bu " -"sınıf, Ürün Etiketi nesnelerinin alınması, filtrelenmesi ve serileştirilmesi " -"için işlevsellik sağlar. Belirtilen filtre arka ucunu kullanarak belirli " +"sınıf, Ürün Etiketi nesnelerinin alınması, filtrelenmesi ve serileştirilmesi" +" için işlevsellik sağlar. Belirtilen filtre arka ucunu kullanarak belirli " "nitelikler üzerinde esnek filtrelemeyi destekler ve gerçekleştirilen eyleme " "göre dinamik olarak farklı serileştiriciler kullanır." diff --git a/engine/core/locale/vi_VN/LC_MESSAGES/django.mo b/engine/core/locale/vi_VN/LC_MESSAGES/django.mo index e9f23b242894c5b286cc34d888a9ea4e8cf7a52f..ab8b94483105990e6f94fd1b53aba2a0670583b9 100644 GIT binary patch delta 14990 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 JnBv(T_J5-=C`JGP diff --git a/engine/core/locale/vi_VN/LC_MESSAGES/django.po b/engine/core/locale/vi_VN/LC_MESSAGES/django.po index a2b9df92..82afbffe 100644 --- a/engine/core/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/core/locale/vi_VN/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,7 +29,8 @@ msgstr "Đang hoạt động" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "" "Nếu được đặt thành false, đối tượng này sẽ không hiển thị cho người dùng " "không có quyền truy cập cần thiết." @@ -156,7 +157,8 @@ msgstr "Đã giao" msgid "canceled" msgstr "Đã hủy" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "Thất bại" @@ -243,8 +245,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Mua hàng với tư cách là doanh nghiệp, sử dụng các sản phẩm được cung cấp với " -"`product_uuid` và `attributes`." +"Mua hàng với tư cách là doanh nghiệp, sử dụng các sản phẩm được cung cấp với" +" `product_uuid` và `attributes`." #: engine/core/docs/drf/views.py:164 msgid "download a digital asset from purchased digital order" @@ -273,7 +275,8 @@ msgstr "" "chỉnh sửa." #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Cập nhật một số trường trong nhóm thuộc tính hiện có, giữ nguyên các trường " "không thể chỉnh sửa." @@ -328,10 +331,11 @@ msgstr "" "không thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Cập nhật một số trường của giá trị thuộc tính hiện có, giữ nguyên các trường " -"không thể chỉnh sửa." +"Cập nhật một số trường của giá trị thuộc tính hiện có, giữ nguyên các trường" +" không thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 msgid "list all categories (simple view)" @@ -362,8 +366,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:244 engine/core/docs/drf/viewsets.py:245 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:252 engine/core/docs/drf/viewsets.py:704 #: engine/core/docs/drf/viewsets.py:988 @@ -389,12 +393,12 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" "Tìm kiếm chuỗi con không phân biệt chữ hoa chữ thường trên các trường " -"human_readable_id, order_products.product.name và order_products.product." -"partnumber." +"human_readable_id, order_products.product.name và " +"order_products.product.partnumber." #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -430,9 +434,9 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" "Sắp xếp theo một trong các trường sau: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Thêm tiền tố '-' để sắp " @@ -467,8 +471,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:373 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:380 msgid "purchase an order" @@ -639,29 +643,15 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" -"Lọc theo một hoặc nhiều cặp tên/giá trị thuộc tính. • **Cú pháp**: " -"`attr_name=method-value[;attr2=method2-value2]…` • **Phương thức** (mặc định " -"là `icontains` nếu không được chỉ định): `iexact`, `exact`, `icontains`, " -"`contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, " -"`regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` • **Kiểu giá trị**: JSON " -"được ưu tiên (nên bạn có thể truyền danh sách/đối tượng), `true`/`false` cho " -"boolean, số nguyên, số thực; nếu không sẽ được xử lý như chuỗi. • " -"**Base64**: thêm tiền tố `b64-` để mã hóa Base64 an toàn cho URL giá trị " -"thô. \n" -"Ví dụ: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" +"Lọc theo một hoặc nhiều cặp tên/giá trị thuộc tính. • **Cú pháp**: `attr_name=method-value[;attr2=method2-value2]…` • **Phương thức** (mặc định là `icontains` nếu không được chỉ định): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` • **Kiểu giá trị**: JSON được ưu tiên (nên bạn có thể truyền danh sách/đối tượng), `true`/`false` cho boolean, số nguyên, số thực; nếu không sẽ được xử lý như chuỗi. • **Base64**: thêm tiền tố `b64-` để mã hóa Base64 an toàn cho URL giá trị thô. \n" +"Ví dụ: `color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, `b64-description=icontains-aGVhdC1jb2xk`" #: engine/core/docs/drf/viewsets.py:568 engine/core/docs/drf/viewsets.py:569 msgid "list all products (simple view)" @@ -673,13 +663,12 @@ msgstr "(chính xác) Mã định danh duy nhất của sản phẩm (UUID)" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Danh sách các trường được phân tách bằng dấu phẩy để sắp xếp. Thêm tiền tố `-" -"` để sắp xếp theo thứ tự giảm dần. **Được phép:** uuid, rating, name, slug, " -"created, modified, price, random" +"Danh sách các trường được phân tách bằng dấu phẩy để sắp xếp. Thêm tiền tố " +"`-` để sắp xếp theo thứ tự giảm dần. **Được phép:** uuid, rating, name, " +"slug, created, modified, price, random" #: engine/core/docs/drf/viewsets.py:598 engine/core/docs/drf/viewsets.py:599 msgid "retrieve a single product (detailed view)" @@ -707,8 +696,8 @@ msgstr "" msgid "" "update some fields of an existing product, preserving non-editable fields" msgstr "" -"Cập nhật một số trường của sản phẩm hiện có, giữ nguyên các trường không thể " -"chỉnh sửa." +"Cập nhật một số trường của sản phẩm hiện có, giữ nguyên các trường không thể" +" chỉnh sửa." #: engine/core/docs/drf/viewsets.py:666 engine/core/docs/drf/viewsets.py:667 msgid "delete a product" @@ -782,8 +771,8 @@ msgstr "Viết lại phản hồi hiện có để lưu các trường không th #: engine/core/docs/drf/viewsets.py:851 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Cập nhật một số trường của một phản hồi hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một phản hồi hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:861 msgid "list all order–product relations (simple view)" @@ -847,8 +836,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:981 msgid "rewrite some fields of an existing brand saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1006 msgid "list all vendors (simple view)" @@ -875,8 +864,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1041 msgid "rewrite some fields of an existing vendor saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1051 msgid "list all product images (simple view)" @@ -903,8 +892,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1086 msgid "rewrite some fields of an existing product image saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1096 msgid "list all promo codes (simple view)" @@ -931,8 +920,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1131 msgid "rewrite some fields of an existing promo code saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1141 msgid "list all promotions (simple view)" @@ -959,8 +948,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1176 msgid "rewrite some fields of an existing promotion saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1186 msgid "list all stocks (simple view)" @@ -987,8 +976,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1221 msgid "rewrite some fields of an existing stock record saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/docs/drf/viewsets.py:1231 msgid "list all product tags (simple view)" @@ -1015,8 +1004,8 @@ msgstr "" #: engine/core/docs/drf/viewsets.py:1266 msgid "rewrite some fields of an existing product tag saving non-editables" msgstr "" -"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không " -"thể chỉnh sửa." +"Cập nhật một số trường của một danh mục hiện có, giữ nguyên các trường không" +" thể chỉnh sửa." #: engine/core/elasticsearch/__init__.py:122 #: engine/core/elasticsearch/__init__.py:570 @@ -1167,7 +1156,7 @@ msgid "camelized JSON data from the requested URL" msgstr "" "Dữ liệu JSON đã được chuyển đổi sang định dạng JSON từ URL được yêu cầu." -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "Chỉ các URL bắt đầu bằng http(s):// mới được phép." @@ -1202,7 +1191,8 @@ msgstr "" #: engine/core/graphene/mutations.py:236 engine/core/graphene/mutations.py:501 #: engine/core/graphene/mutations.py:543 engine/core/viewsets.py:712 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "Loại sai đã được trả về từ phương thức order.buy(): {type(instance)!s}" +msgstr "" +"Loại sai đã được trả về từ phương thức order.buy(): {type(instance)!s}" #: engine/core/graphene/mutations.py:245 msgid "perform an action on a list of products in the order" @@ -1254,8 +1244,8 @@ msgstr "Đặt hàng" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "" "Vui lòng gửi các thuộc tính dưới dạng chuỗi được định dạng như sau: " "attr1=value1,attr2=value2" @@ -1329,10 +1319,12 @@ msgstr "Tỷ lệ phần trăm đánh dấu" #: engine/core/graphene/object_types.py:199 msgid "which attributes and values can be used for filtering this category." -msgstr "Các thuộc tính và giá trị nào có thể được sử dụng để lọc danh mục này." +msgstr "" +"Các thuộc tính và giá trị nào có thể được sử dụng để lọc danh mục này." #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "" "Giá tối thiểu và tối đa cho các sản phẩm trong danh mục này, nếu có sẵn." @@ -1608,9 +1600,9 @@ msgid "" msgstr "" "Đại diện cho một nhóm các thuộc tính, có thể có cấu trúc phân cấp. Lớp này " "được sử dụng để quản lý và tổ chức các nhóm thuộc tính. Một nhóm thuộc tính " -"có thể có nhóm cha, tạo thành cấu trúc phân cấp. Điều này có thể hữu ích cho " -"việc phân loại và quản lý các thuộc tính một cách hiệu quả hơn trong một hệ " -"thống phức tạp." +"có thể có nhóm cha, tạo thành cấu trúc phân cấp. Điều này có thể hữu ích cho" +" việc phân loại và quản lý các thuộc tính một cách hiệu quả hơn trong một hệ" +" thống phức tạp." #: engine/core/models.py:91 msgid "parent of this group" @@ -1643,8 +1635,8 @@ msgstr "" "dụng để định nghĩa và quản lý thông tin liên quan đến một nhà cung cấp bên " "ngoài. Nó lưu trữ tên của nhà cung cấp, thông tin xác thực cần thiết cho " "việc giao tiếp và tỷ lệ phần trăm chênh lệch giá áp dụng cho các sản phẩm " -"được lấy từ nhà cung cấp. Mô hình này cũng duy trì các metadata và ràng buộc " -"bổ sung, khiến nó phù hợp để sử dụng trong các hệ thống tương tác với các " +"được lấy từ nhà cung cấp. Mô hình này cũng duy trì các metadata và ràng buộc" +" bổ sung, khiến nó phù hợp để sử dụng trong các hệ thống tương tác với các " "nhà cung cấp bên thứ ba." #: engine/core/models.py:124 @@ -1698,11 +1690,11 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"Đại diện cho thẻ sản phẩm được sử dụng để phân loại hoặc nhận dạng sản phẩm. " -"Lớp ProductTag được thiết kế để nhận dạng và phân loại sản phẩm một cách duy " -"nhất thông qua sự kết hợp giữa mã định danh thẻ nội bộ và tên hiển thị thân " -"thiện với người dùng. Nó hỗ trợ các thao tác được xuất qua mixins và cung " -"cấp tùy chỉnh metadata cho mục đích quản trị." +"Đại diện cho thẻ sản phẩm được sử dụng để phân loại hoặc nhận dạng sản phẩm." +" Lớp ProductTag được thiết kế để nhận dạng và phân loại sản phẩm một cách " +"duy nhất thông qua sự kết hợp giữa mã định danh thẻ nội bộ và tên hiển thị " +"thân thiện với người dùng. Nó hỗ trợ các thao tác được xuất qua mixins và " +"cung cấp tùy chỉnh metadata cho mục đích quản trị." #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1730,8 +1722,8 @@ msgid "" "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." msgstr "" -"Đại diện cho thẻ danh mục được sử dụng cho sản phẩm. Lớp này mô hình hóa một " -"thẻ danh mục có thể được sử dụng để liên kết và phân loại sản phẩm. Nó bao " +"Đại diện cho thẻ danh mục được sử dụng cho sản phẩm. Lớp này mô hình hóa một" +" thẻ danh mục có thể được sử dụng để liên kết và phân loại sản phẩm. Nó bao " "gồm các thuộc tính cho mã định danh thẻ nội bộ và tên hiển thị thân thiện " "với người dùng." @@ -1755,13 +1747,13 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"Đại diện cho một thực thể danh mục để tổ chức và nhóm các mục liên quan theo " -"cấu trúc phân cấp. Các danh mục có thể có mối quan hệ phân cấp với các danh " -"mục khác, hỗ trợ mối quan hệ cha-con. Lớp này bao gồm các trường cho " +"Đại diện cho một thực thể danh mục để tổ chức và nhóm các mục liên quan theo" +" cấu trúc phân cấp. Các danh mục có thể có mối quan hệ phân cấp với các danh" +" mục khác, hỗ trợ mối quan hệ cha-con. Lớp này bao gồm các trường cho " "metadata và biểu diễn trực quan, làm nền tảng cho các tính năng liên quan " "đến danh mục. Lớp này thường được sử dụng để định nghĩa và quản lý các danh " -"mục sản phẩm hoặc các nhóm tương tự khác trong ứng dụng, cho phép người dùng " -"hoặc quản trị viên xác định tên, mô tả và cấu trúc phân cấp của các danh " +"mục sản phẩm hoặc các nhóm tương tự khác trong ứng dụng, cho phép người dùng" +" hoặc quản trị viên xác định tên, mô tả và cấu trúc phân cấp của các danh " "mục, cũng như gán các thuộc tính như hình ảnh, thẻ hoặc ưu tiên." #: engine/core/models.py:274 @@ -1814,10 +1806,11 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"Đại diện cho một đối tượng Thương hiệu trong hệ thống. Lớp này quản lý thông " -"tin và thuộc tính liên quan đến một thương hiệu, bao gồm tên, logo, mô tả, " +"Đại diện cho một đối tượng Thương hiệu trong hệ thống. Lớp này quản lý thông" +" tin và thuộc tính liên quan đến một thương hiệu, bao gồm tên, logo, mô tả, " "các danh mục liên quan, một slug duy nhất và thứ tự ưu tiên. Nó cho phép tổ " "chức và hiển thị dữ liệu liên quan đến thương hiệu trong ứng dụng." @@ -1863,8 +1856,8 @@ msgstr "Các danh mục" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " @@ -1954,14 +1947,14 @@ msgid "" "product data and its associated information within an application." msgstr "" "Đại diện cho một sản phẩm có các thuộc tính như danh mục, thương hiệu, thẻ, " -"trạng thái kỹ thuật số, tên, mô tả, số phần và slug. Cung cấp các thuộc tính " -"tiện ích liên quan để truy xuất đánh giá, số lượng phản hồi, giá, số lượng " +"trạng thái kỹ thuật số, tên, mô tả, số phần và slug. Cung cấp các thuộc tính" +" tiện ích liên quan để truy xuất đánh giá, số lượng phản hồi, giá, số lượng " "và tổng số đơn hàng. Được thiết kế để sử dụng trong hệ thống quản lý thương " "mại điện tử hoặc quản lý kho hàng. Lớp này tương tác với các mô hình liên " "quan (như Danh mục, Thương hiệu và Thẻ Sản phẩm) và quản lý bộ nhớ đệm cho " -"các thuộc tính được truy cập thường xuyên để cải thiện hiệu suất. Nó được sử " -"dụng để định nghĩa và thao tác dữ liệu sản phẩm và thông tin liên quan trong " -"ứng dụng." +"các thuộc tính được truy cập thường xuyên để cải thiện hiệu suất. Nó được sử" +" dụng để định nghĩa và thao tác dữ liệu sản phẩm và thông tin liên quan " +"trong ứng dụng." #: engine/core/models.py:585 msgid "category this product belongs to" @@ -2017,16 +2010,16 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" "Đại diện cho một thuộc tính trong hệ thống. Lớp này được sử dụng để định " -"nghĩa và quản lý các thuộc tính, là các phần dữ liệu có thể tùy chỉnh có thể " -"được liên kết với các thực thể khác. Các thuộc tính có các danh mục, nhóm, " +"nghĩa và quản lý các thuộc tính, là các phần dữ liệu có thể tùy chỉnh có thể" +" được liên kết với các thực thể khác. Các thuộc tính có các danh mục, nhóm, " "loại giá trị và tên liên quan. Mô hình hỗ trợ nhiều loại giá trị, bao gồm " -"chuỗi, số nguyên, số thực, boolean, mảng và đối tượng. Điều này cho phép cấu " -"trúc dữ liệu động và linh hoạt." +"chuỗi, số nguyên, số thực, boolean, mảng và đối tượng. Điều này cho phép cấu" +" trúc dữ liệu động và linh hoạt." #: engine/core/models.py:733 msgid "group of this attribute" @@ -2087,13 +2080,13 @@ msgstr "Thuộc tính" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." msgstr "" -"Đại diện cho một giá trị cụ thể của một thuộc tính được liên kết với một sản " -"phẩm. Nó liên kết 'thuộc tính' với một 'giá trị' duy nhất, cho phép tổ chức " -"tốt hơn và thể hiện động các đặc điểm của sản phẩm." +"Đại diện cho một giá trị cụ thể của một thuộc tính được liên kết với một sản" +" phẩm. Nó liên kết 'thuộc tính' với một 'giá trị' duy nhất, cho phép tổ chức" +" tốt hơn và thể hiện động các đặc điểm của sản phẩm." #: engine/core/models.py:788 msgid "attribute of this value" @@ -2110,8 +2103,8 @@ msgstr "Giá trị cụ thể cho thuộc tính này" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" @@ -2159,11 +2152,11 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"Đại diện cho một chiến dịch khuyến mãi cho các sản phẩm có giảm giá. Lớp này " -"được sử dụng để định nghĩa và quản lý các chiến dịch khuyến mãi cung cấp " +"Đại diện cho một chiến dịch khuyến mãi cho các sản phẩm có giảm giá. Lớp này" +" được sử dụng để định nghĩa và quản lý các chiến dịch khuyến mãi cung cấp " "giảm giá theo tỷ lệ phần trăm cho các sản phẩm. Lớp này bao gồm các thuộc " "tính để thiết lập tỷ lệ giảm giá, cung cấp chi tiết về chương trình khuyến " "mãi và liên kết nó với các sản phẩm áp dụng. Nó tích hợp với danh mục sản " @@ -2209,9 +2202,9 @@ msgid "" "operations for adding and removing multiple products at once." msgstr "" "Đại diện cho danh sách mong muốn của người dùng để lưu trữ và quản lý các " -"sản phẩm mong muốn. Lớp này cung cấp các chức năng để quản lý bộ sưu tập sản " -"phẩm, hỗ trợ các thao tác như thêm và xóa sản phẩm, cũng như hỗ trợ các thao " -"tác thêm và xóa nhiều sản phẩm cùng lúc." +"sản phẩm mong muốn. Lớp này cung cấp các chức năng để quản lý bộ sưu tập sản" +" phẩm, hỗ trợ các thao tác như thêm và xóa sản phẩm, cũng như hỗ trợ các " +"thao tác thêm và xóa nhiều sản phẩm cùng lúc." #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2235,15 +2228,15 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" "Đại diện cho một bản ghi tài liệu liên quan đến một sản phẩm. Lớp này được " "sử dụng để lưu trữ thông tin về các tài liệu liên quan đến các sản phẩm cụ " -"thể, bao gồm việc tải lên tệp và metadata của chúng. Nó chứa các phương thức " -"và thuộc tính để xử lý loại tệp và đường dẫn lưu trữ cho các tệp tài liệu. " -"Nó mở rộng chức năng từ các mixin cụ thể và cung cấp các tính năng tùy chỉnh " -"bổ sung." +"thể, bao gồm việc tải lên tệp và metadata của chúng. Nó chứa các phương thức" +" và thuộc tính để xử lý loại tệp và đường dẫn lưu trữ cho các tệp tài liệu. " +"Nó mở rộng chức năng từ các mixin cụ thể và cung cấp các tính năng tùy chỉnh" +" bổ sung." #: engine/core/models.py:998 msgid "documentary" @@ -2259,14 +2252,14 @@ msgstr "Chưa được giải quyết" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" "Đại diện cho một thực thể địa chỉ bao gồm thông tin vị trí và mối quan hệ " "với người dùng. Cung cấp chức năng lưu trữ dữ liệu địa lý và địa chỉ, cũng " @@ -2338,12 +2331,12 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"Đại diện cho một mã khuyến mãi có thể được sử dụng để giảm giá, quản lý thời " -"hạn hiệu lực, loại giảm giá và cách áp dụng. Lớp PromoCode lưu trữ thông tin " -"chi tiết về mã khuyến mãi, bao gồm mã định danh duy nhất, thuộc tính giảm " -"giá (số tiền hoặc phần trăm), thời hạn hiệu lực, người dùng liên kết (nếu " -"có) và trạng thái sử dụng. Nó bao gồm chức năng để xác thực và áp dụng mã " -"khuyến mãi vào đơn hàng đồng thời đảm bảo các điều kiện được đáp ứng." +"Đại diện cho một mã khuyến mãi có thể được sử dụng để giảm giá, quản lý thời" +" hạn hiệu lực, loại giảm giá và cách áp dụng. Lớp PromoCode lưu trữ thông " +"tin chi tiết về mã khuyến mãi, bao gồm mã định danh duy nhất, thuộc tính " +"giảm giá (số tiền hoặc phần trăm), thời hạn hiệu lực, người dùng liên kết " +"(nếu có) và trạng thái sử dụng. Nó bao gồm chức năng để xác thực và áp dụng " +"mã khuyến mãi vào đơn hàng đồng thời đảm bảo các điều kiện được đáp ứng." #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" @@ -2431,15 +2424,15 @@ msgstr "Loại giảm giá không hợp lệ cho mã khuyến mãi {self.uuid}!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" "Đại diện cho một đơn hàng được đặt bởi người dùng. Lớp này mô hình hóa một " "đơn hàng trong ứng dụng, bao gồm các thuộc tính khác nhau như thông tin " -"thanh toán và vận chuyển, trạng thái, người dùng liên quan, thông báo và các " -"thao tác liên quan. Đơn hàng có thể có các sản phẩm liên quan, áp dụng " +"thanh toán và vận chuyển, trạng thái, người dùng liên quan, thông báo và các" +" thao tác liên quan. Đơn hàng có thể có các sản phẩm liên quan, áp dụng " "khuyến mãi, thiết lập địa chỉ và cập nhật chi tiết vận chuyển hoặc thanh " "toán. Đồng thời, chức năng hỗ trợ quản lý các sản phẩm trong chu kỳ đời của " "đơn hàng." @@ -2533,8 +2526,8 @@ msgstr "Bạn không thể thêm nhiều sản phẩm hơn số lượng hiện #: engine/core/models.py:1428 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"Bạn không thể xóa sản phẩm khỏi một đơn hàng không phải là đơn hàng đang chờ " -"xử lý." +"Bạn không thể xóa sản phẩm khỏi một đơn hàng không phải là đơn hàng đang chờ" +" xử lý." #: engine/core/models.py:1416 #, python-brace-format @@ -2604,11 +2597,11 @@ msgid "" "fields to effectively model and manage feedback data." msgstr "" "Quản lý phản hồi của người dùng về sản phẩm. Lớp này được thiết kế để thu " -"thập và lưu trữ phản hồi của người dùng về các sản phẩm cụ thể mà họ đã mua. " -"Nó bao gồm các thuộc tính để lưu trữ bình luận của người dùng, tham chiếu " -"đến sản phẩm liên quan trong đơn hàng và đánh giá do người dùng gán. Lớp này " -"sử dụng các trường cơ sở dữ liệu để mô hình hóa và quản lý dữ liệu phản hồi " -"một cách hiệu quả." +"thập và lưu trữ phản hồi của người dùng về các sản phẩm cụ thể mà họ đã mua." +" Nó bao gồm các thuộc tính để lưu trữ bình luận của người dùng, tham chiếu " +"đến sản phẩm liên quan trong đơn hàng và đánh giá do người dùng gán. Lớp này" +" sử dụng các trường cơ sở dữ liệu để mô hình hóa và quản lý dữ liệu phản hồi" +" một cách hiệu quả." #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2620,7 +2613,8 @@ msgid "feedback comments" msgstr "Phản hồi" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "" "Tham chiếu đến sản phẩm cụ thể trong đơn hàng mà phản hồi này đề cập đến." @@ -2764,16 +2758,16 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" "Đại diện cho chức năng tải xuống các tài sản kỹ thuật số liên quan đến đơn " -"hàng. Lớp DigitalAssetDownload cung cấp khả năng quản lý và truy cập các tệp " -"tải xuống liên quan đến sản phẩm trong đơn hàng. Nó lưu trữ thông tin về sản " -"phẩm trong đơn hàng liên quan, số lần tải xuống và liệu tài sản có hiển thị " -"công khai hay không. Nó bao gồm một phương thức để tạo URL tải xuống tài sản " -"khi đơn hàng liên quan ở trạng thái đã hoàn thành." +"hàng. Lớp DigitalAssetDownload cung cấp khả năng quản lý và truy cập các tệp" +" tải xuống liên quan đến sản phẩm trong đơn hàng. Nó lưu trữ thông tin về " +"sản phẩm trong đơn hàng liên quan, số lần tải xuống và liệu tài sản có hiển " +"thị công khai hay không. Nó bao gồm một phương thức để tạo URL tải xuống tài" +" sản khi đơn hàng liên quan ở trạng thái đã hoàn thành." #: engine/core/models.py:1961 msgid "download" @@ -2819,8 +2813,8 @@ msgid "No customer activity in the last 30 days." msgstr "Không có hoạt động của khách hàng trong 30 ngày qua." #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "Doanh số hàng ngày (30 ngày)" +msgid "Daily sales" +msgstr "Doanh số hàng ngày" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2831,6 +2825,7 @@ msgid "Gross revenue" msgstr "Doanh thu tổng" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "Đơn hàng" @@ -2838,6 +2833,10 @@ msgstr "Đơn hàng" msgid "Gross" msgstr "Gross" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "Bảng điều khiển" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "Tổng quan về thu nhập" @@ -2866,20 +2865,32 @@ msgid "No data" msgstr "Không có dữ liệu" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "Doanh thu (tổng, 30 ngày)" +msgid "GMV" +msgstr "Tổng giá trị giao dịch" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "Doanh thu (ròng, 30 ngày)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "Giá trị đơn hàng trung bình" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "Hoàn trả (30 ngày)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "Doanh thu ròng" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "Đơn hàng đã xử lý (30 ngày)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "Tỷ lệ hoàn tiền" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "Đã trả lại" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "Hàng tồn kho thấp" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "Không có sản phẩm nào trong tình trạng tồn kho thấp." #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2894,11 +2905,11 @@ msgid "Most wished product" msgstr "Sản phẩm được mong đợi nhất" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "Chưa có dữ liệu." -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "Sản phẩm phổ biến nhất" @@ -2935,10 +2946,6 @@ msgstr "" msgid "Django site admin" msgstr "Quản trị viên trang web Django" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "Bảng điều khiển" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2968,8 +2975,7 @@ msgstr "Xin chào %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" msgstr "" "Cảm ơn quý khách đã đặt hàng #%(order.pk)s! Chúng tôi vui mừng thông báo " @@ -2998,8 +3004,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." msgstr "" -"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng " -"tôi tại %(config.EMAIL_HOST_USER)s." +"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng" +" tôi tại %(config.EMAIL_HOST_USER)s." #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -3049,8 +3055,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng " -"tôi tại %(contact_email)s." +"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng" +" tôi tại %(contact_email)s." #: engine/core/templates/digital_order_delivered_email.html:165 #: engine/core/templates/promocode_granted_email.html:108 @@ -3076,14 +3082,13 @@ msgid "" "Thank you for staying with us! We have granted you with a promocode\n" " for " msgstr "" -"Cảm ơn quý khách đã đồng hành cùng chúng tôi! Chúng tôi đã cấp cho quý khách " -"một mã khuyến mãi cho" +"Cảm ơn quý khách đã đồng hành cùng chúng tôi! Chúng tôi đã cấp cho quý khách" +" một mã khuyến mãi cho" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "" "Cảm ơn quý khách đã đặt hàng! Chúng tôi rất vui được xác nhận đơn hàng của " @@ -3156,7 +3161,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Kích thước hình ảnh không được vượt quá w{max_width} x h{max_height} pixel!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3164,7 +3169,7 @@ msgstr "" "Xử lý yêu cầu về sơ đồ trang web (sitemap index) và trả về phản hồi XML. Nó " "đảm bảo rằng phản hồi bao gồm tiêu đề loại nội dung XML phù hợp." -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3174,17 +3179,17 @@ msgstr "" "lấy phản hồi chi tiết phù hợp của sơ đồ trang web và đặt tiêu đề Content-" "Type cho XML." -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Trả về danh sách các ngôn ngữ được hỗ trợ và thông tin tương ứng của chúng." -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "Trả về các tham số của trang web dưới dạng đối tượng JSON." -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3192,89 +3197,87 @@ msgstr "" "Xử lý các thao tác bộ nhớ đệm như đọc và ghi dữ liệu bộ nhớ đệm với khóa và " "thời gian chờ được chỉ định." -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "Xử lý các biểu mẫu liên hệ." -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "Xử lý các yêu cầu xử lý và xác thực URL từ các yêu cầu POST đến." -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "Xử lý các truy vấn tìm kiếm toàn cầu." -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "" -"Xử lý logic của việc mua hàng như một hoạt động kinh doanh mà không cần đăng " -"ký." +"Xử lý logic của việc mua hàng như một hoạt động kinh doanh mà không cần đăng" +" ký." -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "Xử lý việc tải xuống tài sản kỹ thuật số liên quan đến một đơn hàng. Chức " -"năng này cố gắng cung cấp tệp tài sản kỹ thuật số được lưu trữ trong thư mục " -"lưu trữ của dự án. Nếu tệp không được tìm thấy, một lỗi HTTP 404 sẽ được trả " -"về để thông báo rằng tài nguyên không khả dụng." +"năng này cố gắng cung cấp tệp tài sản kỹ thuật số được lưu trữ trong thư mục" +" lưu trữ của dự án. Nếu tệp không được tìm thấy, một lỗi HTTP 404 sẽ được " +"trả về để thông báo rằng tài nguyên không khả dụng." -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid là trường bắt buộc." -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "Sản phẩm không tồn tại" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "Bạn chỉ có thể tải xuống tài sản kỹ thuật số một lần." -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" -msgstr "Đơn hàng phải được thanh toán trước khi tải xuống tài sản kỹ thuật số." +msgstr "" +"Đơn hàng phải được thanh toán trước khi tải xuống tài sản kỹ thuật số." -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "Sản phẩm đặt hàng không có sản phẩm." -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "Biểu tượng trang web không tìm thấy" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" -"Xử lý yêu cầu về biểu tượng favicon của một trang web. Chức năng này cố gắng " -"cung cấp tệp favicon nằm trong thư mục tĩnh của dự án. Nếu tệp favicon không " -"được tìm thấy, một lỗi HTTP 404 sẽ được trả về để thông báo rằng tài nguyên " -"không khả dụng." +"Xử lý yêu cầu về biểu tượng favicon của một trang web. Chức năng này cố gắng" +" cung cấp tệp favicon nằm trong thư mục tĩnh của dự án. Nếu tệp favicon " +"không được tìm thấy, một lỗi HTTP 404 sẽ được trả về để thông báo rằng tài " +"nguyên không khả dụng." -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"Chuyển hướng yêu cầu đến trang chỉ mục quản trị. Chức năng này xử lý các yêu " -"cầu HTTP đến và chuyển hướng chúng đến trang chỉ mục giao diện quản trị " -"Django. Nó sử dụng hàm `redirect` của Django để xử lý việc chuyển hướng HTTP." +"Chuyển hướng yêu cầu đến trang chỉ mục quản trị. Chức năng này xử lý các yêu" +" cầu HTTP đến và chuyển hướng chúng đến trang chỉ mục giao diện quản trị " +"Django. Nó sử dụng hàm `redirect` của Django để xử lý việc chuyển hướng " +"HTTP." -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "Trả về phiên bản hiện tại của eVibes." -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "Trả về các biến tùy chỉnh cho Bảng điều khiển." @@ -3294,16 +3297,17 @@ msgstr "" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" "Đại diện cho một tập hợp các đối tượng để quản lý các đối tượng " "AttributeGroup. Xử lý các thao tác liên quan đến AttributeGroup, bao gồm " -"lọc, serialization và truy xuất dữ liệu. Lớp này là một phần của lớp API của " -"ứng dụng và cung cấp một cách chuẩn hóa để xử lý yêu cầu và phản hồi cho dữ " -"liệu AttributeGroup." +"lọc, serialization và truy xuất dữ liệu. Lớp này là một phần của lớp API của" +" ứng dụng và cung cấp một cách chuẩn hóa để xử lý yêu cầu và phản hồi cho dữ" +" liệu AttributeGroup." #: engine/core/viewsets.py:175 msgid "" @@ -3317,17 +3321,17 @@ msgstr "" "Quản lý các thao tác liên quan đến các đối tượng thuộc tính (Attribute) " "trong ứng dụng. Cung cấp một bộ các điểm cuối API để tương tác với dữ liệu " "thuộc tính. Lớp này quản lý việc truy vấn, lọc và serialization của các đối " -"tượng thuộc tính, cho phép kiểm soát động đối với dữ liệu được trả về, chẳng " -"hạn như lọc theo các trường cụ thể hoặc lấy thông tin chi tiết so với thông " -"tin đơn giản tùy thuộc vào yêu cầu." +"tượng thuộc tính, cho phép kiểm soát động đối với dữ liệu được trả về, chẳng" +" hạn như lọc theo các trường cụ thể hoặc lấy thông tin chi tiết so với thông" +" tin đơn giản tùy thuộc vào yêu cầu." #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" "Bộ xem (viewset) để quản lý các đối tượng AttributeValue. Bộ xem này cung " "cấp các chức năng để liệt kê, truy xuất, tạo, cập nhật và xóa các đối tượng " @@ -3399,8 +3403,8 @@ msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" "Đại diện cho tập hợp các đối tượng Feedback. Lớp này quản lý các thao tác " @@ -3415,13 +3419,13 @@ msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"ViewSet để quản lý đơn hàng và các hoạt động liên quan. Lớp này cung cấp các " -"chức năng để truy xuất, sửa đổi và quản lý các đối tượng đơn hàng. Nó bao " +"ViewSet để quản lý đơn hàng và các hoạt động liên quan. Lớp này cung cấp các" +" chức năng để truy xuất, sửa đổi và quản lý các đối tượng đơn hàng. Nó bao " "gồm các điểm cuối (endpoint) khác nhau để xử lý các hoạt động liên quan đến " "đơn hàng như thêm hoặc xóa sản phẩm, thực hiện giao dịch mua hàng cho cả " "người dùng đã đăng ký và chưa đăng ký, cũng như truy xuất các đơn hàng đang " @@ -3433,8 +3437,8 @@ msgstr "" msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" "Cung cấp một bộ xem (viewset) để quản lý các thực thể OrderProduct. Bộ xem " @@ -3468,8 +3472,8 @@ msgstr "Quản lý các hoạt động liên quan đến dữ liệu kho trong h msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." @@ -3477,10 +3481,10 @@ msgstr "" "Bộ công cụ ViewSet để quản lý các thao tác liên quan đến Danh sách mong " "muốn. Bộ công cụ WishlistViewSet cung cấp các điểm cuối để tương tác với " "danh sách mong muốn của người dùng, cho phép truy xuất, chỉnh sửa và tùy " -"chỉnh các sản phẩm trong danh sách mong muốn. Bộ công cụ này hỗ trợ các chức " -"năng như thêm, xóa và thực hiện các thao tác hàng loạt đối với các sản phẩm " -"trong danh sách mong muốn. Các kiểm tra quyền truy cập được tích hợp để đảm " -"bảo rằng người dùng chỉ có thể quản lý danh sách mong muốn của chính mình " +"chỉnh các sản phẩm trong danh sách mong muốn. Bộ công cụ này hỗ trợ các chức" +" năng như thêm, xóa và thực hiện các thao tác hàng loạt đối với các sản phẩm" +" trong danh sách mong muốn. Các kiểm tra quyền truy cập được tích hợp để đảm" +" bảo rằng người dùng chỉ có thể quản lý danh sách mong muốn của chính mình " "trừ khi được cấp quyền rõ ràng." #: engine/core/viewsets.py:1056 @@ -3492,8 +3496,8 @@ msgid "" "on the request context." msgstr "" "Lớp này cung cấp chức năng viewset để quản lý các đối tượng `Address`. Lớp " -"AddressViewSet cho phép thực hiện các thao tác CRUD, lọc dữ liệu và các hành " -"động tùy chỉnh liên quan đến các thực thể địa chỉ. Nó bao gồm các hành vi " +"AddressViewSet cho phép thực hiện các thao tác CRUD, lọc dữ liệu và các hành" +" động tùy chỉnh liên quan đến các thực thể địa chỉ. Nó bao gồm các hành vi " "chuyên biệt cho các phương thức HTTP khác nhau, các tùy chỉnh serializer và " "xử lý quyền truy cập dựa trên bối cảnh yêu cầu." @@ -3510,8 +3514,8 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"Xử lý các tác vụ liên quan đến Thẻ Sản phẩm trong ứng dụng. Lớp này cung cấp " -"chức năng để truy xuất, lọc và serialize các đối tượng Thẻ Sản phẩm. Nó hỗ " +"Xử lý các tác vụ liên quan đến Thẻ Sản phẩm trong ứng dụng. Lớp này cung cấp" +" chức năng để truy xuất, lọc và serialize các đối tượng Thẻ Sản phẩm. Nó hỗ " "trợ lọc linh hoạt trên các thuộc tính cụ thể bằng cách sử dụng backend lọc " "được chỉ định và động sử dụng các serializer khác nhau tùy thuộc vào hành " "động đang thực hiện." diff --git a/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo index 072505f2e1bbb0f190d5fdd6e6881545eb5dc7dd..a5045f045ddf6182d9fc86889fd754f9523ceedd 100644 GIT binary patch delta 14853 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 diff --git a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po index 4daf7213..9145e04e 100644 --- a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,7 +27,8 @@ msgstr "处于活动状态" #: engine/core/abstract.py:21 msgid "" -"if set to false, this object can't be seen by users without needed permission" +"if set to false, this object can't be seen by users without needed " +"permission" msgstr "如果设置为 false,则没有必要权限的用户无法查看此对象" #: engine/core/abstract.py:23 engine/core/choices.py:18 @@ -152,7 +153,8 @@ msgstr "已交付" msgid "canceled" msgstr "已取消" -#: engine/core/choices.py:8 engine/core/choices.py:16 engine/core/choices.py:24 +#: engine/core/choices.py:8 engine/core/choices.py:16 +#: engine/core/choices.py:24 msgid "failed" msgstr "失败" @@ -189,9 +191,7 @@ msgid "" "OpenApi3 schema for this API. Format can be selected via content " "negotiation. Language can be selected with Accept-Language and query " "parameter both." -msgstr "" -"该 API 的 OpenApi3 模式。可通过内容协商选择格式。可通过 Accept-Language 和查" -"询参数选择语言。" +msgstr "该 API 的 OpenApi3 模式。可通过内容协商选择格式。可通过 Accept-Language 和查询参数选择语言。" #: engine/core/docs/drf/views.py:44 engine/core/graphene/mutations.py:37 msgid "cache I/O" @@ -237,9 +237,7 @@ msgstr "以企业身份购买订单" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "" -"使用提供的带有 `product_uuid` 和 `attributes` 的 `products` 作为企业购买订" -"单。" +msgstr "使用提供的带有 `product_uuid` 和 `attributes` 的 `products` 作为企业购买订单。" #: engine/core/docs/drf/views.py:164 msgid "download a digital asset from purchased digital order" @@ -266,7 +264,8 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "重写保存不可编辑的现有属性组" #: engine/core/docs/drf/viewsets.py:96 -msgid "rewrite some fields of an existing attribute group saving non-editables" +msgid "" +"rewrite some fields of an existing attribute group saving non-editables" msgstr "重写现有属性组的某些字段,保存不可编辑的内容" #: engine/core/docs/drf/viewsets.py:106 @@ -314,7 +313,8 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "重写现有属性值,保存不可编辑属性" #: engine/core/docs/drf/viewsets.py:186 -msgid "rewrite some fields of an existing attribute value saving non-editables" +msgid "" +"rewrite some fields of an existing attribute value saving non-editables" msgstr "重写现有属性值的某些字段,保存不可编辑的属性值" #: engine/core/docs/drf/viewsets.py:196 engine/core/docs/drf/viewsets.py:197 @@ -367,11 +367,11 @@ msgstr "对于非工作人员用户,只有他们自己的订单才会被退回 #: engine/core/docs/drf/viewsets.py:281 msgid "" -"Case-insensitive substring search across human_readable_id, order_products." -"product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, " +"order_products.product.name, and order_products.product.partnumber" msgstr "" -"在 human_readable_id、order_products.product.name 和 order_products.product." -"partnumber 中进行不区分大小写的子串搜索" +"在 human_readable_id、order_products.product.name 和 " +"order_products.product.partnumber 中进行不区分大小写的子串搜索" #: engine/core/docs/drf/viewsets.py:288 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -403,12 +403,11 @@ msgstr "按订单状态筛选(不区分大小写的子串匹配)" #: engine/core/docs/drf/viewsets.py:324 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created, " -"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" -"buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created," +" modified, buy_time, random. Prefix with '-' for descending (e.g. " +"'-buy_time')." msgstr "" -"按以下一项排序:uuid、human_readable_id、user_email、user、status、created、" -"modified、buy_time、random。前缀\"-\"表示降序(例如\"-buy_time\")。" +"按以下一项排序:uuid、human_readable_id、user_email、user、status、created、modified、buy_time、random。前缀\"-\"表示降序(例如\"-buy_time\")。" #: engine/core/docs/drf/viewsets.py:336 msgid "retrieve a single order (detailed view)" @@ -447,9 +446,7 @@ msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." -msgstr "" -"完成订单购买。如果使用 \"force_balance\",则使用用户的余额完成购买;如果使用 " -"\"force_payment\",则启动交易。" +msgstr "完成订单购买。如果使用 \"force_balance\",则使用用户的余额完成购买;如果使用 \"force_payment\",则启动交易。" #: engine/core/docs/drf/viewsets.py:397 msgid "retrieve current pending order of a user" @@ -584,25 +581,17 @@ msgstr "使用提供的 `product_uuids` 从愿望清单中删除多个产品" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " -"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " -"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " -"`true`/`false` for booleans, integers, floats; otherwise treated as " -"string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," -"\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "根据一个或多个属性名/值对进行筛选。 \n" "- 语法**:`attr_name=method-value[;attr2=method2-value2]...`\n" -"- 方法**(如果省略,默认为 `icontains`):iexact`、`exact`、`icontains`、" -"`contains`、`isnull`、`startswith`、`istartswith`、`endswith`、`iendswith`、" -"`regex`、`iregex`、`lt`、`lte`、`gt`、`gte`、`in`。\n" -"- 值键入**:首先尝试使用 JSON(因此可以传递列表/字段),布尔、整数、浮点数使" -"用 `true`/`false`,否则视为字符串。 \n" +"- 方法**(如果省略,默认为 `icontains`):iexact`、`exact`、`icontains`、`contains`、`isnull`、`startswith`、`istartswith`、`endswith`、`iendswith`、`regex`、`iregex`、`lt`、`lte`、`gt`、`gte`、`in`。\n" +"- 值键入**:首先尝试使用 JSON(因此可以传递列表/字段),布尔、整数、浮点数使用 `true`/`false`,否则视为字符串。 \n" "- **Base64**:以 `b64-` 作为前缀,对原始值进行 URL 安全的 base64 编码。 \n" "示例 \n" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\"、\"bluetooth\"]`、\n" @@ -618,8 +607,7 @@ msgstr "(产品 UUID" #: engine/core/docs/drf/viewsets.py:581 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for " -"descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" "用逗号分隔的要排序的字段列表。前缀为 `-` 表示降序。 \n" @@ -1071,7 +1059,7 @@ msgstr "缓存数据" msgid "camelized JSON data from the requested URL" msgstr "从请求的 URL 中获取驼峰化 JSON 数据" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:256 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:257 msgid "only URLs starting with http(s):// are allowed" msgstr "只允许使用以 http(s):// 开头的 URL" @@ -1155,8 +1143,8 @@ msgstr "购买订单" #: engine/core/graphene/mutations.py:516 msgid "" -"please send the attributes as the string formatted like attr1=value1," -"attr2=value2" +"please send the attributes as the string formatted like " +"attr1=value1,attr2=value2" msgstr "请以字符串形式发送属性,格式如 attr1=value1,attr2=value2" #: engine/core/graphene/mutations.py:549 @@ -1231,7 +1219,8 @@ msgid "which attributes and values can be used for filtering this category." msgstr "哪些属性和值可用于筛选该类别。" #: engine/core/graphene/object_types.py:203 -msgid "minimum and maximum prices for products in this category, if available." +msgid "" +"minimum and maximum prices for products in this category, if available." msgstr "该类别产品的最低和最高价格(如有)。" #: engine/core/graphene/object_types.py:205 @@ -1498,8 +1487,7 @@ msgid "" "parent group, forming a hierarchical structure. This can be useful for " "categorizing and managing attributes more effectively in acomplex system." msgstr "" -"代表一组属性,可以是分层的。该类用于管理和组织属性组。一个属性组可以有一个父" -"组,从而形成一个层次结构。这有助于在复杂的系统中更有效地分类和管理属性。" +"代表一组属性,可以是分层的。该类用于管理和组织属性组。一个属性组可以有一个父组,从而形成一个层次结构。这有助于在复杂的系统中更有效地分类和管理属性。" #: engine/core/models.py:91 msgid "parent of this group" @@ -1527,10 +1515,7 @@ msgid "" "also maintains additional metadata and constraints, making it suitable for " "use in systems that interact with third-party vendors." msgstr "" -"代表一个供应商实体,能够存储有关外部供应商及其交互要求的信息。供应商类用于定" -"义和管理与外部供应商相关的信息。它存储供应商的名称、通信所需的身份验证详细信" -"息,以及从供应商处检索产品时所应用的百分比标记。该模型还维护附加的元数据和约" -"束,使其适用于与第三方供应商交互的系统。" +"代表一个供应商实体,能够存储有关外部供应商及其交互要求的信息。供应商类用于定义和管理与外部供应商相关的信息。它存储供应商的名称、通信所需的身份验证详细信息,以及从供应商处检索产品时所应用的百分比标记。该模型还维护附加的元数据和约束,使其适用于与第三方供应商交互的系统。" #: engine/core/models.py:124 msgid "stores credentials and endpoints required for vendor communication" @@ -1580,9 +1565,8 @@ msgid "" "display name. It supports operations exported through mixins and provides " "metadata customization for administrative purposes." msgstr "" -"代表用于分类或识别产品的产品标签。ProductTag 类旨在通过内部标签标识符和用户友" -"好显示名称的组合,对产品进行唯一标识和分类。它支持通过混合功能导出的操作,并" -"为管理目的提供元数据定制功能。" +"代表用于分类或识别产品的产品标签。ProductTag " +"类旨在通过内部标签标识符和用户友好显示名称的组合,对产品进行唯一标识和分类。它支持通过混合功能导出的操作,并为管理目的提供元数据定制功能。" #: engine/core/models.py:209 engine/core/models.py:240 msgid "internal tag identifier for the product tag" @@ -1609,9 +1593,7 @@ msgid "" "Represents a category tag used for products. This class models a category " "tag that can be used to associate and classify products. It includes " "attributes for an internal tag identifier and a user-friendly display name." -msgstr "" -"代表用于产品的类别标签。该类是类别标签的模型,可用于关联和分类产品。它包括内" -"部标签标识符和用户友好显示名称的属性。" +msgstr "代表用于产品的类别标签。该类是类别标签的模型,可用于关联和分类产品。它包括内部标签标识符和用户友好显示名称的属性。" #: engine/core/models.py:254 msgid "category tag" @@ -1633,10 +1615,7 @@ msgid "" "hierarchy of categories, as well as assign attributes like images, tags, or " "priority." msgstr "" -"代表类别实体,用于在分层结构中组织和分组相关项目。类别可与其他类别建立层次关" -"系,支持父子关系。该类包括元数据和可视化表示字段,是类别相关功能的基础。该类" -"通常用于定义和管理应用程序中的产品类别或其他类似分组,允许用户或管理员指定类" -"别的名称、描述和层次结构,以及分配图像、标记或优先级等属性。" +"代表类别实体,用于在分层结构中组织和分组相关项目。类别可与其他类别建立层次关系,支持父子关系。该类包括元数据和可视化表示字段,是类别相关功能的基础。该类通常用于定义和管理应用程序中的产品类别或其他类似分组,允许用户或管理员指定类别的名称、描述和层次结构,以及分配图像、标记或优先级等属性。" #: engine/core/models.py:274 msgid "upload an image representing this category" @@ -1687,11 +1666,10 @@ msgid "" "Represents a Brand object in the system. This class handles information and " "attributes related to a brand, including its name, logos, description, " "associated categories, a unique slug, and priority order. It allows for the " -"organization and representation of brand-related data within the application." +"organization and representation of brand-related data within the " +"application." msgstr "" -"代表系统中的品牌对象。该类用于处理与品牌相关的信息和属性,包括名称、徽标、描" -"述、相关类别、唯一标签和优先顺序。它允许在应用程序中组织和表示与品牌相关的数" -"据。" +"代表系统中的品牌对象。该类用于处理与品牌相关的信息和属性,包括名称、徽标、描述、相关类别、唯一标签和优先顺序。它允许在应用程序中组织和表示与品牌相关的数据。" #: engine/core/models.py:448 msgid "name of this brand" @@ -1735,16 +1713,15 @@ msgstr "类别" #: engine/core/models.py:508 msgid "" -"Represents the stock of a product managed in the system. This class provides " -"details about the relationship between vendors, products, and their stock " +"Represents the stock of a product managed in the system. This class provides" +" details about the relationship between vendors, products, and their stock " "information, as well as inventory-related properties like price, purchase " "price, quantity, SKU, and digital assets. It is part of the inventory " "management system to allow tracking and evaluation of products available " "from various vendors." msgstr "" -"代表系统中管理的产品库存。该类提供有关供应商、产品及其库存信息之间关系的详细" -"信息,以及与库存相关的属性,如价格、购买价格、数量、SKU 和数字资产。它是库存" -"管理系统的一部分,用于跟踪和评估不同供应商提供的产品。" +"代表系统中管理的产品库存。该类提供有关供应商、产品及其库存信息之间关系的详细信息,以及与库存相关的属性,如价格、购买价格、数量、SKU " +"和数字资产。它是库存管理系统的一部分,用于跟踪和评估不同供应商提供的产品。" #: engine/core/models.py:520 msgid "the vendor supplying this product stock" @@ -1822,11 +1799,8 @@ msgid "" "properties to improve performance. It is used to define and manipulate " "product data and its associated information within an application." msgstr "" -"代表产品的属性,如类别、品牌、标签、数字状态、名称、描述、零件编号和标签。提" -"供相关的实用属性,以检索评级、反馈计数、价格、数量和订单总数。设计用于处理电" -"子商务或库存管理的系统。该类可与相关模型(如类别、品牌和 ProductTag)交互,并" -"对频繁访问的属性进行缓存管理,以提高性能。它用于在应用程序中定义和操作产品数" -"据及其相关信息。" +"代表产品的属性,如类别、品牌、标签、数字状态、名称、描述、零件编号和标签。提供相关的实用属性,以检索评级、反馈计数、价格、数量和订单总数。设计用于处理电子商务或库存管理的系统。该类可与相关模型(如类别、品牌和" +" ProductTag)交互,并对频繁访问的属性进行缓存管理,以提高性能。它用于在应用程序中定义和操作产品数据及其相关信息。" #: engine/core/models.py:585 msgid "category this product belongs to" @@ -1881,13 +1855,11 @@ msgid "" "Represents an attribute in the system. This class is used to define and " "manage attributes, which are customizable pieces of data that can be " "associated with other entities. Attributes have associated categories, " -"groups, value types, and names. The model supports multiple types of values, " -"including string, integer, float, boolean, array, and object. This allows " +"groups, value types, and names. The model supports multiple types of values," +" including string, integer, float, boolean, array, and object. This allows " "for dynamic and flexible data structuring." msgstr "" -"代表系统中的一个属性。该类用于定义和管理属性,属性是可与其他实体关联的自定义" -"数据块。属性有相关的类别、组、值类型和名称。该模型支持多种类型的值,包括字符" -"串、整数、浮点数、布尔值、数组和对象。这样就可以实现动态、灵活的数据结构。" +"代表系统中的一个属性。该类用于定义和管理属性,属性是可与其他实体关联的自定义数据块。属性有相关的类别、组、值类型和名称。该模型支持多种类型的值,包括字符串、整数、浮点数、布尔值、数组和对象。这样就可以实现动态、灵活的数据结构。" #: engine/core/models.py:733 msgid "group of this attribute" @@ -1948,12 +1920,10 @@ msgstr "属性" #: engine/core/models.py:777 msgid "" -"Represents a specific value for an attribute that is linked to a product. It " -"links the 'attribute' to a unique 'value', allowing better organization and " -"dynamic representation of product characteristics." -msgstr "" -"代表与产品相关联的属性的特定值。它将 \"属性 \"与唯一的 \"值 \"联系起来,从而" -"更好地组织和动态呈现产品特征。" +"Represents a specific value for an attribute that is linked to a product. It" +" links the 'attribute' to a unique 'value', allowing better organization and" +" dynamic representation of product characteristics." +msgstr "代表与产品相关联的属性的特定值。它将 \"属性 \"与唯一的 \"值 \"联系起来,从而更好地组织和动态呈现产品特征。" #: engine/core/models.py:788 msgid "attribute of this value" @@ -1970,14 +1940,12 @@ msgstr "该属性的具体值" #: engine/core/models.py:815 msgid "" "Represents a product image associated with a product in the system. This " -"class is designed to manage images for products, including functionality for " -"uploading image files, associating them with specific products, and " +"class is designed to manage images for products, including functionality for" +" uploading image files, associating them with specific products, and " "determining their display order. It also includes an accessibility feature " "with alternative text for the images." msgstr "" -"代表与系统中产品相关联的产品图片。该类用于管理产品图片,包括上传图片文件、将" -"图片与特定产品关联以及确定图片显示顺序等功能。它还包括一个为图像提供替代文本" -"的可访问性功能。" +"代表与系统中产品相关联的产品图片。该类用于管理产品图片,包括上传图片文件、将图片与特定产品关联以及确定图片显示顺序等功能。它还包括一个为图像提供替代文本的可访问性功能。" #: engine/core/models.py:826 msgid "provide alternative text for the image for accessibility" @@ -2017,12 +1985,10 @@ msgid "" "is used to define and manage promotional campaigns that offer a percentage-" "based discount for products. The class includes attributes for setting the " "discount rate, providing details about the promotion, and linking it to the " -"applicable products. It integrates with the product catalog to determine the " -"affected items in the campaign." +"applicable products. It integrates with the product catalog to determine the" +" affected items in the campaign." msgstr "" -"代表有折扣的产品促销活动。该类用于定义和管理为产品提供百分比折扣的促销活动。" -"该类包括用于设置折扣率、提供促销详情以及将其链接到适用产品的属性。它与产品目" -"录集成,以确定促销活动中受影响的产品。" +"代表有折扣的产品促销活动。该类用于定义和管理为产品提供百分比折扣的促销活动。该类包括用于设置折扣率、提供促销详情以及将其链接到适用产品的属性。它与产品目录集成,以确定促销活动中受影响的产品。" #: engine/core/models.py:880 msgid "percentage discount for the selected products" @@ -2062,9 +2028,7 @@ msgid "" "class provides functionality to manage a collection of products, supporting " "operations such as adding and removing products, as well as supporting " "operations for adding and removing multiple products at once." -msgstr "" -"代表用户用于存储和管理所需产品的愿望清单。该类提供管理产品集合的功能,支持添" -"加和删除产品等操作,还支持同时添加和删除多个产品的操作。" +msgstr "代表用户用于存储和管理所需产品的愿望清单。该类提供管理产品集合的功能,支持添加和删除产品等操作,还支持同时添加和删除多个产品的操作。" #: engine/core/models.py:926 msgid "products that the user has marked as wanted" @@ -2088,12 +2052,10 @@ msgid "" "store information about documentaries related to specific products, " "including file uploads and their metadata. It contains methods and " "properties to handle the file type and storage path for the documentary " -"files. It extends functionality from specific mixins and provides additional " -"custom features." +"files. It extends functionality from specific mixins and provides additional" +" custom features." msgstr "" -"代表与产品相关的文档记录。该类用于存储与特定产品相关的文档信息,包括文件上传" -"及其元数据。它包含处理文件类型和文档文件存储路径的方法和属性。它扩展了特定混" -"合类的功能,并提供了额外的自定义功能。" +"代表与产品相关的文档记录。该类用于存储与特定产品相关的文档信息,包括文件上传及其元数据。它包含处理文件类型和文档文件存储路径的方法和属性。它扩展了特定混合类的功能,并提供了额外的自定义功能。" #: engine/core/models.py:998 msgid "documentary" @@ -2109,20 +2071,17 @@ msgstr "未解决" #: engine/core/models.py:1014 msgid "" -"Represents an address entity that includes location details and associations " -"with a user. Provides functionality for geographic and address data storage, " -"as well as integration with geocoding services. This class is designed to " -"store detailed address information including components like street, city, " -"region, country, and geolocation (longitude and latitude). It supports " -"integration with geocoding APIs, enabling the storage of raw API responses " -"for further processing or inspection. The class also allows associating an " -"address with a user, facilitating personalized data handling." +"Represents an address entity that includes location details and associations" +" with a user. Provides functionality for geographic and address data " +"storage, as well as integration with geocoding services. This class is " +"designed to store detailed address information including components like " +"street, city, region, country, and geolocation (longitude and latitude). It " +"supports integration with geocoding APIs, enabling the storage of raw API " +"responses for further processing or inspection. The class also allows " +"associating an address with a user, facilitating personalized data handling." msgstr "" -"代表一个地址实体,其中包括位置详情以及与用户的关联。提供地理和地址数据存储功" -"能,以及与地理编码服务集成的功能。该类旨在存储详细的地址信息,包括街道、城" -"市、地区、国家和地理位置(经度和纬度)等组件。它支持与地理编码 API 集成,可存" -"储原始 API 响应,以便进一步处理或检查。该类还可以将地址与用户关联起来,方便个" -"性化数据处理。" +"代表一个地址实体,其中包括位置详情以及与用户的关联。提供地理和地址数据存储功能,以及与地理编码服务集成的功能。该类旨在存储详细的地址信息,包括街道、城市、地区、国家和地理位置(经度和纬度)等组件。它支持与地理编码" +" API 集成,可存储原始 API 响应,以便进一步处理或检查。该类还可以将地址与用户关联起来,方便个性化数据处理。" #: engine/core/models.py:1029 msgid "address line for the customer" @@ -2185,10 +2144,8 @@ msgid "" "any), and status of its usage. It includes functionality to validate and " "apply the promo code to an order while ensuring constraints are met." msgstr "" -"代表可用于折扣的促销代码,管理其有效期、折扣类型和应用。PromoCode 类存储促销" -"代码的详细信息,包括其唯一标识符、折扣属性(金额或百分比)、有效期、关联用户" -"(如有)及其使用状态。该类包含验证促销代码并将其应用于订单的功能,同时确保符" -"合约束条件。" +"代表可用于折扣的促销代码,管理其有效期、折扣类型和应用。PromoCode " +"类存储促销代码的详细信息,包括其唯一标识符、折扣属性(金额或百分比)、有效期、关联用户(如有)及其使用状态。该类包含验证促销代码并将其应用于订单的功能,同时确保符合约束条件。" #: engine/core/models.py:1087 msgid "unique code used by a user to redeem a discount" @@ -2258,8 +2215,7 @@ msgstr "促销代码" msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "" -"只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" +msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" #: engine/core/models.py:1171 msgid "promocode already used" @@ -2274,15 +2230,12 @@ msgstr "促销代码 {self.uuid} 的折扣类型无效!" msgid "" "Represents an order placed by a user. This class models an order within the " "application, including its various attributes such as billing and shipping " -"information, status, associated user, notifications, and related operations. " -"Orders can have associated products, promotions can be applied, addresses " +"information, status, associated user, notifications, and related operations." +" Orders can have associated products, promotions can be applied, addresses " "set, and shipping or billing details updated. Equally, functionality " "supports managing the products in the order lifecycle." msgstr "" -"代表用户下达的订单。该类在应用程序中模拟订单,包括订单的各种属性,如账单和发" -"货信息、状态、关联用户、通知和相关操作。订单可以有关联的产品,可以应用促销活" -"动,设置地址,更新发货或账单详情。同样,该功能还支持在订单生命周期中管理产" -"品。" +"代表用户下达的订单。该类在应用程序中模拟订单,包括订单的各种属性,如账单和发货信息、状态、关联用户、通知和相关操作。订单可以有关联的产品,可以应用促销活动,设置地址,更新发货或账单详情。同样,该功能还支持在订单生命周期中管理产品。" #: engine/core/models.py:1213 msgid "the billing address used for this order" @@ -2430,9 +2383,7 @@ msgid "" "product in the order, and a user-assigned rating. The class uses database " "fields to effectively model and manage feedback data." msgstr "" -"管理产品的用户反馈。该类用于捕获和存储用户对其购买的特定产品的反馈。它包含用" -"于存储用户评论的属性、订单中相关产品的引用以及用户指定的评分。该类使用数据库" -"字段对反馈数据进行有效建模和管理。" +"管理产品的用户反馈。该类用于捕获和存储用户对其购买的特定产品的反馈。它包含用于存储用户评论的属性、订单中相关产品的引用以及用户指定的评分。该类使用数据库字段对反馈数据进行有效建模和管理。" #: engine/core/models.py:1711 msgid "user-provided comments about their experience with the product" @@ -2443,7 +2394,8 @@ msgid "feedback comments" msgstr "反馈意见" #: engine/core/models.py:1719 -msgid "references the specific product in an order that this feedback is about" +msgid "" +"references the specific product in an order that this feedback is about" msgstr "引用该反馈意见涉及的订单中的具体产品" #: engine/core/models.py:1720 @@ -2470,10 +2422,9 @@ msgid "" "download URL for digital products. The model integrates with the Order and " "Product models and stores a reference to them." msgstr "" -"代表与订单及其属性相关联的产品。OrderProduct 模型维护订单中产品的相关信息,包" -"括购买价格、数量、产品属性和状态等详细信息。它为用户和管理员管理通知,并处理" -"返回产品余额或添加反馈等操作。该模型还提供支持业务逻辑的方法和属性,如计算总" -"价或为数字产品生成下载 URL。该模型与订单和产品模型集成,并存储对它们的引用。" +"代表与订单及其属性相关联的产品。OrderProduct " +"模型维护订单中产品的相关信息,包括购买价格、数量、产品属性和状态等详细信息。它为用户和管理员管理通知,并处理返回产品余额或添加反馈等操作。该模型还提供支持业务逻辑的方法和属性,如计算总价或为数字产品生成下载" +" URL。该模型与订单和产品模型集成,并存储对它们的引用。" #: engine/core/models.py:1757 msgid "the price paid by the customer for this product at purchase time" @@ -2581,13 +2532,13 @@ msgid "" "Represents the downloading functionality for digital assets associated with " "orders. The DigitalAssetDownload class provides the ability to manage and " "access downloads related to order products. It maintains information about " -"the associated order product, the number of downloads, and whether the asset " -"is publicly visible. It includes a method to generate a URL for downloading " -"the asset when the associated order is in a completed status." +"the associated order product, the number of downloads, and whether the asset" +" is publicly visible. It includes a method to generate a URL for downloading" +" the asset when the associated order is in a completed status." msgstr "" -"代表与订单相关的数字资产的下载功能。DigitalAssetDownload 类提供了管理和访问与" -"订单产品相关的下载的功能。该类维护相关订单产品的信息、下载次数以及资产是否公" -"开可见。当相关订单处于完成状态时,该类包含一个生成用于下载资产的 URL 的方法。" +"代表与订单相关的数字资产的下载功能。DigitalAssetDownload " +"类提供了管理和访问与订单产品相关的下载的功能。该类维护相关订单产品的信息、下载次数以及资产是否公开可见。当相关订单处于完成状态时,该类包含一个生成用于下载资产的" +" URL 的方法。" #: engine/core/models.py:1961 msgid "download" @@ -2631,8 +2582,8 @@ msgid "No customer activity in the last 30 days." msgstr "过去 30 天内没有客户活动。" #: engine/core/templates/admin/dashboard/_daily_sales.html:5 -msgid "Daily sales (30d)" -msgstr "每日销售额 (30d)" +msgid "Daily sales" +msgstr "每日销售额" #: engine/core/templates/admin/dashboard/_daily_sales.html:59 msgid "Orders (FINISHED)" @@ -2643,6 +2594,7 @@ msgid "Gross revenue" msgstr "总收入" #: engine/core/templates/admin/dashboard/_daily_sales.html:106 +#: engine/core/templates/admin/dashboard/_kpis.html:20 msgid "Orders" msgstr "订单" @@ -2650,6 +2602,10 @@ msgstr "订单" msgid "Gross" msgstr "毛额" +#: engine/core/templates/admin/dashboard/_header.html:3 +msgid "Dashboard" +msgstr "仪表板" + #: engine/core/templates/admin/dashboard/_income_overview.html:7 msgid "Income overview" msgstr "收入概览" @@ -2678,20 +2634,32 @@ msgid "No data" msgstr "无日期" #: engine/core/templates/admin/dashboard/_kpis.html:6 -msgid "Revenue (gross, 30d)" -msgstr "收入(毛额,30d)" +msgid "GMV" +msgstr "GMV" -#: engine/core/templates/admin/dashboard/_kpis.html:15 -msgid "Revenue (net, 30d)" -msgstr "收入(净额,30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:34 +msgid "AOV" +msgstr "AOV" -#: engine/core/templates/admin/dashboard/_kpis.html:24 -msgid "Returns (30d)" -msgstr "返回 (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:48 +msgid "Net revenue" +msgstr "净收入" -#: engine/core/templates/admin/dashboard/_kpis.html:33 -msgid "Processed orders (30d)" -msgstr "已处理订单 (30d)" +#: engine/core/templates/admin/dashboard/_kpis.html:62 +msgid "Refund rate" +msgstr "退款率" + +#: engine/core/templates/admin/dashboard/_kpis.html:73 +msgid "returned" +msgstr "已返回" + +#: engine/core/templates/admin/dashboard/_low_stock.html:5 +msgid "Low stock" +msgstr "低库存" + +#: engine/core/templates/admin/dashboard/_low_stock.html:29 +msgid "No low stock items." +msgstr "无低价商品。" #: engine/core/templates/admin/dashboard/_most_returned.html:5 msgid "Most returned products (30d)" @@ -2706,11 +2674,11 @@ msgid "Most wished product" msgstr "最希望的产品" #: engine/core/templates/admin/dashboard/_product_lists.html:33 -#: engine/core/templates/admin/dashboard/_product_lists.html:67 +#: engine/core/templates/admin/dashboard/_product_lists.html:68 msgid "No data yet." msgstr "尚无数据。" -#: engine/core/templates/admin/dashboard/_product_lists.html:40 +#: engine/core/templates/admin/dashboard/_product_lists.html:41 msgid "Most popular product" msgstr "最受欢迎的产品" @@ -2746,10 +2714,6 @@ msgstr "最近 30 天内无类别销售。" msgid "Django site admin" msgstr "Django 网站管理员" -#: engine/core/templates/admin/index.html:20 -msgid "Dashboard" -msgstr "仪表板" - #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2779,12 +2743,9 @@ msgstr "你好%(order.user.first_name)s_、" #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are " -"the details of your\n" +" we have taken your order into work. below are the details of your\n" " order:" -msgstr "" -"感谢您的订单 #%(order.pk)s!我们很高兴地通知您,我们已将您的订单付诸实施。以" -"下是您的订单详情:" +msgstr "感谢您的订单 #%(order.pk)s!我们很高兴地通知您,我们已将您的订单付诸实施。以下是您的订单详情:" #: engine/core/templates/digital_order_created_email.html:112 #: engine/core/templates/digital_order_delivered_email.html:110 @@ -2807,8 +2768,7 @@ msgstr "总价" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "" -"如果您有任何问题,请随时通过 %(config.EMAIL_HOST_USER)s 联系我们的支持人员。" +msgstr "如果您有任何问题,请随时通过 %(config.EMAIL_HOST_USER)s 联系我们的支持人员。" #: engine/core/templates/digital_order_created_email.html:133 #, python-format @@ -2889,8 +2849,7 @@ msgstr "" #: engine/core/templates/shipped_order_created_email.html:101 #: engine/core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below " -"are\n" +"thank you for your order! we are pleased to confirm your purchase. below are\n" " the details of your order:" msgstr "感谢您的订购!我们很高兴确认您的购买。以下是您的订单详情:" @@ -2960,115 +2919,106 @@ msgstr "必须配置 NOMINATIM_URL 参数!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "图像尺寸不应超过 w{max_width} x h{max_height} 像素!" -#: engine/core/views.py:90 +#: engine/core/views.py:91 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." -msgstr "" -"处理网站地图索引请求并返回 XML 响应。它确保响应包含适当的 XML 内容类型标头。" +msgstr "处理网站地图索引请求并返回 XML 响应。它确保响应包含适当的 XML 内容类型标头。" -#: engine/core/views.py:105 +#: engine/core/views.py:106 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." -msgstr "" -"处理网站地图的详细视图响应。该函数处理请求,获取相应的网站地图详细响应,并将 " -"Content-Type 标头设置为 XML。" +msgstr "处理网站地图的详细视图响应。该函数处理请求,获取相应的网站地图详细响应,并将 Content-Type 标头设置为 XML。" -#: engine/core/views.py:140 +#: engine/core/views.py:141 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "返回支持语言及其相应信息的列表。" -#: engine/core/views.py:172 +#: engine/core/views.py:173 msgid "Returns the parameters of the website as a JSON object." msgstr "以 JSON 对象形式返回网站参数。" -#: engine/core/views.py:191 +#: engine/core/views.py:192 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "处理缓存操作,如使用指定的键和超时读取和设置缓存数据。" -#: engine/core/views.py:218 +#: engine/core/views.py:219 msgid "Handles `contact us` form submissions." msgstr "处理 \"联系我们 \"表单提交。" -#: engine/core/views.py:239 +#: engine/core/views.py:240 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "处理来自传入 POST 请求的处理和验证 URL 的请求。" -#: engine/core/views.py:279 +#: engine/core/views.py:280 msgid "Handles global search queries." msgstr "处理全局搜索查询。" -#: engine/core/views.py:294 +#: engine/core/views.py:295 msgid "Handles the logic of buying as a business without registration." msgstr "处理未注册企业的购买逻辑。" -#: engine/core/views.py:331 +#: engine/core/views.py:332 msgid "" "Handles the downloading of a digital asset associated with an order.\n" -"This function attempts to serve the digital asset file located in the " -"storage directory of the project. If the file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "处理与订单相关的数字资产的下载。\n" -"此函数会尝试为位于项目存储目录中的数字资产文件提供服务。如果未找到文件,则会" -"出现 HTTP 404 错误,表示资源不可用。" +"此函数会尝试为位于项目存储目录中的数字资产文件提供服务。如果未找到文件,则会出现 HTTP 404 错误,表示资源不可用。" -#: engine/core/views.py:342 +#: engine/core/views.py:343 msgid "order_product_uuid is required" msgstr "order_product_uuid 为必填项" -#: engine/core/views.py:349 +#: engine/core/views.py:350 msgid "order product does not exist" msgstr "订单产品不存在" -#: engine/core/views.py:352 +#: engine/core/views.py:353 msgid "you can only download the digital asset once" msgstr "您只能下载一次数字资产" -#: engine/core/views.py:355 +#: engine/core/views.py:356 msgid "the order must be paid before downloading the digital asset" msgstr "在下载数字资产前必须支付订单费用" -#: engine/core/views.py:361 +#: engine/core/views.py:362 msgid "the order product does not have a product" msgstr "订单产品没有产品" -#: engine/core/views.py:398 +#: engine/core/views.py:399 msgid "favicon not found" msgstr "未找到 favicon" -#: engine/core/views.py:403 +#: engine/core/views.py:404 msgid "" "Handles requests for the favicon of a website.\n" -"This function attempts to serve the favicon file located in the static " -"directory of the project. If the favicon file is not found, an HTTP 404 " -"error is raised to indicate the resource is unavailable." +"This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." msgstr "" "处理网站的 favicon 请求。\n" -"该函数会尝试为位于项目静态目录中的 favicon 文件提供服务。如果找不到 favicon " -"文件,就会出现 HTTP 404 错误,表示资源不可用。" +"该函数会尝试为位于项目静态目录中的 favicon 文件提供服务。如果找不到 favicon 文件,就会出现 HTTP 404 错误,表示资源不可用。" -#: engine/core/views.py:415 +#: engine/core/views.py:416 msgid "" -"Redirects the request to the admin index page. The function handles incoming " -"HTTP requests and redirects them to the Django admin interface index page. " +"Redirects the request to the admin index page. The function handles incoming" +" HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -"将请求重定向到管理索引页面。该函数处理传入的 HTTP 请求并将其重定向到 Django " -"管理界面索引页面。它使用 Django 的 `redirect` 函数来处理 HTTP 重定向。" +"将请求重定向到管理索引页面。该函数处理传入的 HTTP 请求并将其重定向到 Django 管理界面索引页面。它使用 Django 的 " +"`redirect` 函数来处理 HTTP 重定向。" -#: engine/core/views.py:428 +#: engine/core/views.py:429 msgid "Returns current version of the eVibes. " msgstr "返回 eVibes 的当前版本。" -#: engine/core/views.py:637 +#: engine/core/views.py:793 msgid "Returns custom variables for Dashboard. " msgstr "返回 Dashboard 的自定义变量。" @@ -3080,20 +3030,19 @@ msgid "" "serializer classes based on the current action, customizable permissions, " "and rendering formats." msgstr "" -"定义用于管理 Evibes 相关操作的视图集。EvibesViewSet 类继承于 ModelViewSet,提" -"供了处理 Evibes 实体上的操作和运行的功能。它包括支持基于当前操作的动态序列化" -"类、可定制的权限和渲染格式。" +"定义用于管理 Evibes 相关操作的视图集。EvibesViewSet 类继承于 ModelViewSet,提供了处理 Evibes " +"实体上的操作和运行的功能。它包括支持基于当前操作的动态序列化类、可定制的权限和渲染格式。" #: engine/core/viewsets.py:156 msgid "" -"Represents a viewset for managing AttributeGroup objects. Handles operations " -"related to AttributeGroup, including filtering, serialization, and retrieval " -"of data. This class is part of the application's API layer and provides a " -"standardized way to process requests and responses for AttributeGroup data." +"Represents a viewset for managing AttributeGroup objects. Handles operations" +" related to AttributeGroup, including filtering, serialization, and " +"retrieval of data. This class is part of the application's API layer and " +"provides a standardized way to process requests and responses for " +"AttributeGroup data." msgstr "" -"代表用于管理属性组对象的视图集。处理与 AttributeGroup 相关的操作,包括过滤、" -"序列化和检索数据。该类是应用程序 API 层的一部分,为处理 AttributeGroup 数据的" -"请求和响应提供了标准化方法。" +"代表用于管理属性组对象的视图集。处理与 AttributeGroup 相关的操作,包括过滤、序列化和检索数据。该类是应用程序 API 层的一部分,为处理" +" AttributeGroup 数据的请求和响应提供了标准化方法。" #: engine/core/viewsets.py:175 msgid "" @@ -3104,21 +3053,19 @@ msgid "" "specific fields or retrieving detailed versus simplified information " "depending on the request." msgstr "" -"在应用程序中处理与属性对象相关的操作。提供一组 API 端点,用于与属性数据交互。" -"该类管理属性对象的查询、过滤和序列化,允许对返回的数据进行动态控制,例如根据" -"请求按特定字段进行过滤或检索详细信息与简化信息。" +"在应用程序中处理与属性对象相关的操作。提供一组 API " +"端点,用于与属性数据交互。该类管理属性对象的查询、过滤和序列化,允许对返回的数据进行动态控制,例如根据请求按特定字段进行过滤或检索详细信息与简化信息。" #: engine/core/viewsets.py:194 msgid "" "A viewset for managing AttributeValue objects. This viewset provides " "functionality for listing, retrieving, creating, updating, and deleting " "AttributeValue objects. It integrates with Django REST Framework's viewset " -"mechanisms and uses appropriate serializers for different actions. Filtering " -"capabilities are provided through the DjangoFilterBackend." +"mechanisms and uses appropriate serializers for different actions. Filtering" +" capabilities are provided through the DjangoFilterBackend." msgstr "" -"用于管理 AttributeValue 对象的视图集。该视图集提供了用于列出、检索、创建、更" -"新和删除 AttributeValue 对象的功能。它与 Django REST 框架的视图集机制集成,并" -"为不同的操作使用适当的序列化器。过滤功能通过 DjangoFilterBackend 提供。" +"用于管理 AttributeValue 对象的视图集。该视图集提供了用于列出、检索、创建、更新和删除 AttributeValue 对象的功能。它与 " +"Django REST 框架的视图集机制集成,并为不同的操作使用适当的序列化器。过滤功能通过 DjangoFilterBackend 提供。" #: engine/core/viewsets.py:213 msgid "" @@ -3128,9 +3075,8 @@ msgid "" "The viewset also enforces permissions to ensure that only authorized users " "can access specific data." msgstr "" -"管理类别相关操作的视图。CategoryViewSet 类负责处理系统中与类别模型相关的操" -"作。它支持类别数据的检索、过滤和序列化。视图集还强制执行权限,确保只有授权用" -"户才能访问特定数据。" +"管理类别相关操作的视图。CategoryViewSet " +"类负责处理系统中与类别模型相关的操作。它支持类别数据的检索、过滤和序列化。视图集还强制执行权限,确保只有授权用户才能访问特定数据。" #: engine/core/viewsets.py:326 msgid "" @@ -3139,8 +3085,8 @@ msgid "" "uses Django's ViewSet framework to simplify the implementation of API " "endpoints for Brand objects." msgstr "" -"代表用于管理品牌实例的视图集。该类提供了查询、过滤和序列化品牌对象的功能。它" -"使用 Django 的 ViewSet 框架来简化品牌对象 API 端点的实现。" +"代表用于管理品牌实例的视图集。该类提供了查询、过滤和序列化品牌对象的功能。它使用 Django 的 ViewSet 框架来简化品牌对象 API " +"端点的实现。" #: engine/core/viewsets.py:438 msgid "" @@ -3152,10 +3098,9 @@ msgid "" "product details, applying permissions, and accessing related feedback of a " "product." msgstr "" -"管理与系统中的 \"产品 \"模型相关的操作。该类为管理产品提供了一个视图集,包括" -"产品的筛选、序列化和对特定实例的操作。该类从 `EvibesViewSet` 扩展而来,使用通" -"用功能,并与 Django REST 框架集成,用于 RESTful API 操作。包括检索产品详细信" -"息、应用权限和访问产品相关反馈的方法。" +"管理与系统中的 \"产品 \"模型相关的操作。该类为管理产品提供了一个视图集,包括产品的筛选、序列化和对特定实例的操作。该类从 " +"`EvibesViewSet` 扩展而来,使用通用功能,并与 Django REST 框架集成,用于 RESTful API " +"操作。包括检索产品详细信息、应用权限和访问产品相关反馈的方法。" #: engine/core/viewsets.py:574 msgid "" @@ -3165,50 +3110,46 @@ msgid "" "actions. The purpose of this class is to provide streamlined access to " "Vendor-related resources through the Django REST framework." msgstr "" -"代表用于管理供应商对象的视图集。该视图集允许获取、过滤和序列化 Vendor 数据。" -"它定义了用于处理不同操作的查询集、过滤器配置和序列化器类。该类的目的是通过 " -"Django REST 框架提供对 Vendor 相关资源的简化访问。" +"代表用于管理供应商对象的视图集。该视图集允许获取、过滤和序列化 Vendor " +"数据。它定义了用于处理不同操作的查询集、过滤器配置和序列化器类。该类的目的是通过 Django REST 框架提供对 Vendor 相关资源的简化访问。" #: engine/core/viewsets.py:594 msgid "" "Representation of a view set handling Feedback objects. This class manages " "operations related to Feedback objects, including listing, filtering, and " "retrieving details. The purpose of this view set is to provide different " -"serializers for different actions and implement permission-based handling of " -"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " +"serializers for different actions and implement permission-based handling of" +" accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "use of Django's filtering system for querying data." msgstr "" -"处理反馈对象的视图集的表示。该类管理与反馈对象相关的操作,包括列出、筛选和检" -"索详细信息。该视图集的目的是为不同的操作提供不同的序列化器,并对可访问的反馈" -"对象实施基于权限的处理。它扩展了基本的 `EvibesViewSet` 并使用 Django 的过滤系" -"统来查询数据。" +"处理反馈对象的视图集的表示。该类管理与反馈对象相关的操作,包括列出、筛选和检索详细信息。该视图集的目的是为不同的操作提供不同的序列化器,并对可访问的反馈对象实施基于权限的处理。它扩展了基本的" +" `EvibesViewSet` 并使用 Django 的过滤系统来查询数据。" #: engine/core/viewsets.py:621 msgid "" "ViewSet for managing orders and related operations. This class provides " "functionality to retrieve, modify, and manage order objects. It includes " "various endpoints for handling order operations such as adding or removing " -"products, performing purchases for registered as well as unregistered users, " -"and retrieving the current authenticated user's pending orders. The ViewSet " -"uses multiple serializers based on the specific action being performed and " +"products, performing purchases for registered as well as unregistered users," +" and retrieving the current authenticated user's pending orders. The ViewSet" +" uses multiple serializers based on the specific action being performed and " "enforces permissions accordingly while interacting with order data." msgstr "" -"用于管理订单和相关操作的 ViewSet。该类提供了检索、修改和管理订单对象的功能。" -"它包括用于处理订单操作的各种端点,如添加或删除产品、为注册用户和未注册用户执" -"行购买操作,以及检索当前已验证用户的待处理订单。ViewSet 根据正在执行的特定操" -"作使用多个序列化器,并在与订单数据交互时执行相应的权限。" +"用于管理订单和相关操作的 " +"ViewSet。该类提供了检索、修改和管理订单对象的功能。它包括用于处理订单操作的各种端点,如添加或删除产品、为注册用户和未注册用户执行购买操作,以及检索当前已验证用户的待处理订单。ViewSet" +" 根据正在执行的特定操作使用多个序列化器,并在与订单数据交互时执行相应的权限。" #: engine/core/viewsets.py:825 msgid "" "Provides a viewset for managing OrderProduct entities. This viewset enables " "CRUD operations and custom actions specific to the OrderProduct model. It " -"includes filtering, permission checks, and serializer switching based on the " -"requested action. Additionally, it provides a detailed action for handling " +"includes filtering, permission checks, and serializer switching based on the" +" requested action. Additionally, it provides a detailed action for handling " "feedback on OrderProduct instances" msgstr "" -"提供用于管理 OrderProduct 实体的视图集。该视图集可进行 CRUD 操作和特定于 " -"OrderProduct 模型的自定义操作。它包括过滤、权限检查和根据请求的操作切换序列化" -"器。此外,它还提供了一个详细的操作,用于处理有关 OrderProduct 实例的反馈信息" +"提供用于管理 OrderProduct 实体的视图集。该视图集可进行 CRUD 操作和特定于 OrderProduct " +"模型的自定义操作。它包括过滤、权限检查和根据请求的操作切换序列化器。此外,它还提供了一个详细的操作,用于处理有关 OrderProduct " +"实例的反馈信息" #: engine/core/viewsets.py:879 msgid "Manages operations related to Product images in the application. " @@ -3232,16 +3173,14 @@ msgstr "处理系统中与库存数据有关的操作。" msgid "" "ViewSet for managing Wishlist operations. The WishlistViewSet provides " "endpoints for interacting with a user's wish list, allowing for the " -"retrieval, modification, and customization of products within the wish list. " -"This ViewSet facilitates functionality such as adding, removing, and bulk " +"retrieval, modification, and customization of products within the wish list." +" This ViewSet facilitates functionality such as adding, removing, and bulk " "actions for wishlist products. Permission checks are integrated to ensure " "that users can only manage their own wishlists unless explicit permissions " "are granted." msgstr "" -"用于管理愿望清单操作的 ViewSet。WishlistViewSet 提供了与用户愿望清单交互的端" -"点,允许检索、修改和定制愿望清单中的产品。该 ViewSet 支持添加、删除和批量操作" -"愿望清单产品等功能。此外,还集成了权限检查功能,以确保用户只能管理自己的愿望" -"清单,除非获得明确的权限。" +"用于管理愿望清单操作的 ViewSet。WishlistViewSet 提供了与用户愿望清单交互的端点,允许检索、修改和定制愿望清单中的产品。该 " +"ViewSet 支持添加、删除和批量操作愿望清单产品等功能。此外,还集成了权限检查功能,以确保用户只能管理自己的愿望清单,除非获得明确的权限。" #: engine/core/viewsets.py:1056 msgid "" @@ -3251,9 +3190,8 @@ msgid "" "different HTTP methods, serializer overrides, and permission handling based " "on the request context." msgstr "" -"该类为管理 \"地址 \"对象提供了视图集功能。AddressViewSet 类支持与地址实体相关" -"的 CRUD 操作、过滤和自定义操作。它包括针对不同 HTTP 方法的专门行为、序列化器" -"重载以及基于请求上下文的权限处理。" +"该类为管理 \"地址 \"对象提供了视图集功能。AddressViewSet 类支持与地址实体相关的 CRUD 操作、过滤和自定义操作。它包括针对不同 " +"HTTP 方法的专门行为、序列化器重载以及基于请求上下文的权限处理。" #: engine/core/viewsets.py:1123 #, python-brace-format @@ -3268,6 +3206,4 @@ msgid "" "using the specified filter backend and dynamically uses different " "serializers based on the action being performed." msgstr "" -"在应用程序中处理与产品标签相关的操作。该类提供了检索、筛选和序列化产品标签对" -"象的功能。它支持使用指定的过滤后端对特定属性进行灵活过滤,并根据正在执行的操" -"作动态使用不同的序列化器。" +"在应用程序中处理与产品标签相关的操作。该类提供了检索、筛选和序列化产品标签对象的功能。它支持使用指定的过滤后端对特定属性进行灵活过滤,并根据正在执行的操作动态使用不同的序列化器。" diff --git a/engine/payments/locale/ar_AR/LC_MESSAGES/django.po b/engine/payments/locale/ar_AR/LC_MESSAGES/django.po index 4b95a15a..623b2c53 100644 --- a/engine/payments/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/payments/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -212,18 +212,28 @@ msgstr "{settings.PROJECT_NAME} | إيداع الرصيد" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "توفر هذه الفئة نقطة نهاية API للتعامل مع معاملات الإيداع.\n" -"وهي تدعم إنشاء معاملة إيداع بعد التحقق من صحة البيانات المقدمة. إذا لم تتم مصادقة المستخدم، يتم إرجاع استجابة مناسبة. عند التحقق والتنفيذ بنجاح، يتم توفير استجابة بتفاصيل المعاملة." +"وهي تدعم إنشاء معاملة إيداع بعد التحقق من صحة البيانات المقدمة. إذا لم تتم " +"مصادقة المستخدم، يتم إرجاع استجابة مناسبة. عند التحقق والتنفيذ بنجاح، يتم " +"توفير استجابة بتفاصيل المعاملة." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "يعالج طلبات رد الاتصال الواردة إلى واجهة برمجة التطبيقات.\n" -"يقوم هذا الصنف بمعالجة طلبات HTTP POST الواردة وتوجيهها إلى معالج pgateway المناسب بناءً على معلمة البوابة المقدمة. وهو مصمم للتعامل مع أحداث رد الاتصال الواردة من أنظمة خارجية وتوفير استجابة HTTP مناسبة تشير إلى النجاح أو الفشل." +"يقوم هذا الصنف بمعالجة طلبات HTTP POST الواردة وتوجيهها إلى معالج pgateway " +"المناسب بناءً على معلمة البوابة المقدمة. وهو مصمم للتعامل مع أحداث رد الاتصال " +"الواردة من أنظمة خارجية وتوفير استجابة HTTP مناسبة تشير إلى النجاح أو الفشل." #: engine/payments/views.py:61 #, python-brace-format @@ -240,8 +250,8 @@ msgid "" "This endpoint returns minimal and maximal allowed deposit amounts across " "available gateways." msgstr "" -"تقوم نقطة النهاية هذه بإرجاع الحد الأدنى والحد الأقصى لمبالغ الإيداع المسموح" -" بها عبر البوابات المتاحة." +"تقوم نقطة النهاية هذه بإرجاع الحد الأدنى والحد الأقصى لمبالغ الإيداع المسموح " +"بها عبر البوابات المتاحة." #: engine/payments/viewsets.py:14 msgid "" diff --git a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po index b5411c54..9da67146 100644 --- a/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/payments/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -54,8 +54,8 @@ msgid "" "retrieve minimal and maximal allowed deposit amounts across available " "gateways" msgstr "" -"Získání minimálních a maximálních povolených částek vkladů napříč dostupnými" -" branami." +"Získání minimálních a maximálních povolených částek vkladů napříč dostupnými " +"branami." #: engine/payments/docs/drf/viewsets.py:14 msgid "list all transactions (read-only)" @@ -212,18 +212,29 @@ msgstr "{settings.PROJECT_NAME} | zůstatek vkladu" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "Tato třída poskytuje koncový bod API pro zpracování vkladových transakcí.\n" -"Podporuje vytvoření vkladové transakce po ověření zadaných údajů. Pokud uživatel není ověřen, je vrácena odpovídající odpověď. Při úspěšném ověření a provedení je poskytnuta odpověď s údaji o transakci." +"Podporuje vytvoření vkladové transakce po ověření zadaných údajů. Pokud " +"uživatel není ověřen, je vrácena odpovídající odpověď. Při úspěšném ověření " +"a provedení je poskytnuta odpověď s údaji o transakci." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Zpracovává příchozí požadavky na zpětné volání rozhraní API.\n" -"Tato třída zpracovává a směruje příchozí požadavky HTTP POST na příslušnou obsluhu pgateway na základě zadaného parametru brány. Je navržena tak, aby zpracovávala události zpětného volání přicházející z externích systémů a poskytovala příslušnou odpověď HTTP označující úspěch nebo selhání." +"Tato třída zpracovává a směruje příchozí požadavky HTTP POST na příslušnou " +"obsluhu pgateway na základě zadaného parametru brány. Je navržena tak, aby " +"zpracovávala události zpětného volání přicházející z externích systémů a " +"poskytovala příslušnou odpověď HTTP označující úspěch nebo selhání." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/da_DK/LC_MESSAGES/django.po b/engine/payments/locale/da_DK/LC_MESSAGES/django.po index 5e97fb67..0cfed36a 100644 --- a/engine/payments/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/payments/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -99,8 +99,7 @@ msgstr "Valutaer" #: engine/payments/models.py:100 msgid "comma separated list of currencies supported by this gateway, " -msgstr "" -"kommasepareret liste over valutaer, der understøttes af denne gateway," +msgstr "kommasepareret liste over valutaer, der understøttes af denne gateway," #: engine/payments/models.py:106 msgid "minimum transaction amount" @@ -213,18 +212,31 @@ msgstr "{settings.PROJECT_NAME} | Saldoindbetaling" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Denne klasse indeholder et API-slutpunkt til håndtering af indbetalingstransaktioner.\n" -"Den understøtter oprettelsen af en indbetalingstransaktion efter validering af de angivne data. Hvis brugeren ikke er autentificeret, returneres et passende svar. Ved vellykket validering og udførelse leveres et svar med transaktionsoplysningerne." +"Denne klasse indeholder et API-slutpunkt til håndtering af " +"indbetalingstransaktioner.\n" +"Den understøtter oprettelsen af en indbetalingstransaktion efter validering " +"af de angivne data. Hvis brugeren ikke er autentificeret, returneres et " +"passende svar. Ved vellykket validering og udførelse leveres et svar med " +"transaktionsoplysningerne." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Håndterer indgående tilbagekaldsanmodninger til API'en.\n" -"Denne klasse behandler og dirigerer indgående HTTP POST-anmodninger til den relevante pgateway-handler baseret på den angivne gateway-parameter. Den er designet til at håndtere tilbagekaldshændelser, der kommer fra eksterne systemer, og give et passende HTTP-svar, der angiver succes eller fiasko." +"Denne klasse behandler og dirigerer indgående HTTP POST-anmodninger til den " +"relevante pgateway-handler baseret på den angivne gateway-parameter. Den er " +"designet til at håndtere tilbagekaldshændelser, der kommer fra eksterne " +"systemer, og give et passende HTTP-svar, der angiver succes eller fiasko." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/de_DE/LC_MESSAGES/django.po b/engine/payments/locale/de_DE/LC_MESSAGES/django.po index 4b080a18..31036a00 100644 --- a/engine/payments/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/payments/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -216,18 +216,32 @@ msgstr "{settings.PROJECT_NAME} | Saldoeinlage" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Diese Klasse bietet einen API-Endpunkt zur Abwicklung von Einzahlungstransaktionen.\n" -"Sie unterstützt die Erstellung einer Einzahlungstransaktion nach Validierung der angegebenen Daten. Wenn der Benutzer nicht authentifiziert ist, wird eine entsprechende Antwort zurückgegeben. Bei erfolgreicher Validierung und Ausführung wird eine Antwort mit den Transaktionsdetails geliefert." +"Diese Klasse bietet einen API-Endpunkt zur Abwicklung von " +"Einzahlungstransaktionen.\n" +"Sie unterstützt die Erstellung einer Einzahlungstransaktion nach Validierung " +"der angegebenen Daten. Wenn der Benutzer nicht authentifiziert ist, wird " +"eine entsprechende Antwort zurückgegeben. Bei erfolgreicher Validierung und " +"Ausführung wird eine Antwort mit den Transaktionsdetails geliefert." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Verarbeitet eingehende Callback-Anforderungen an die API.\n" -"Diese Klasse verarbeitet und leitet eingehende HTTP-POST-Anfragen an den entsprechenden pgateway-Handler auf der Grundlage des angegebenen Gateway-Parameters weiter. Sie wurde entwickelt, um Callback-Ereignisse von externen Systemen zu verarbeiten und eine entsprechende HTTP-Antwort zu liefern, die Erfolg oder Misserfolg anzeigt." +"Diese Klasse verarbeitet und leitet eingehende HTTP-POST-Anfragen an den " +"entsprechenden pgateway-Handler auf der Grundlage des angegebenen Gateway-" +"Parameters weiter. Sie wurde entwickelt, um Callback-Ereignisse von externen " +"Systemen zu verarbeiten und eine entsprechende HTTP-Antwort zu liefern, die " +"Erfolg oder Misserfolg anzeigt." #: engine/payments/views.py:61 #, python-brace-format @@ -256,8 +270,8 @@ msgid "" "permissions, can access the transactions." msgstr "" "ViewSet für die Handhabung von Nur-Lese-Operationen auf dem " -"Transaktionsmodell. Diese Klasse bietet eine schreibgeschützte Schnittstelle" -" für die Interaktion mit Transaktionsdaten. Sie verwendet den " -"TransactionSerializer zur Serialisierung und Deserialisierung der Daten. Die" -" Klasse stellt sicher, dass nur autorisierte Benutzer, die bestimmte " +"Transaktionsmodell. Diese Klasse bietet eine schreibgeschützte Schnittstelle " +"für die Interaktion mit Transaktionsdaten. Sie verwendet den " +"TransactionSerializer zur Serialisierung und Deserialisierung der Daten. Die " +"Klasse stellt sicher, dass nur autorisierte Benutzer, die bestimmte " "Berechtigungen erfüllen, auf die Transaktionen zugreifen können." diff --git a/engine/payments/locale/en_GB/LC_MESSAGES/django.po b/engine/payments/locale/en_GB/LC_MESSAGES/django.po index 536e4924..2262d8c0 100644 --- a/engine/payments/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/payments/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 Egor "fureunoir" Gorbunov # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -216,18 +216,30 @@ msgstr "{settings.PROJECT_NAME} | balance deposit" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/en_US/LC_MESSAGES/django.po b/engine/payments/locale/en_US/LC_MESSAGES/django.po index 9c62b30b..e8ba4040 100644 --- a/engine/payments/locale/en_US/LC_MESSAGES/django.po +++ b/engine/payments/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -212,18 +212,30 @@ msgstr "{settings.PROJECT_NAME} | balance deposit" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/es_ES/LC_MESSAGES/django.po b/engine/payments/locale/es_ES/LC_MESSAGES/django.po index 3bad14ba..a2619d5b 100644 --- a/engine/payments/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/payments/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -187,7 +187,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro servicio de asistencia en\n" +"Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro " +"servicio de asistencia en\n" " %(contact_email)s." #: engine/payments/templates/balance_deposit_email.html:100 @@ -216,18 +217,32 @@ msgstr "{settings.PROJECT_NAME} | depósito de saldo" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Esta clase proporciona un punto final de API para gestionar transacciones de depósito.\n" -"Admite la creación de una transacción de depósito tras validar los datos proporcionados. Si el usuario no está autenticado, se devuelve una respuesta apropiada. Si la validación y ejecución son correctas, se proporciona una respuesta con los detalles de la transacción." +"Esta clase proporciona un punto final de API para gestionar transacciones de " +"depósito.\n" +"Admite la creación de una transacción de depósito tras validar los datos " +"proporcionados. Si el usuario no está autenticado, se devuelve una respuesta " +"apropiada. Si la validación y ejecución son correctas, se proporciona una " +"respuesta con los detalles de la transacción." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Gestiona las solicitudes entrantes de devolución de llamada a la API.\n" -"Esta clase procesa y enruta las peticiones HTTP POST entrantes al manejador pgateway apropiado basado en el parámetro de puerta de enlace proporcionado. Está diseñada para gestionar eventos de devolución de llamada procedentes de sistemas externos y proporcionar una respuesta HTTP adecuada que indique el éxito o el fracaso." +"Esta clase procesa y enruta las peticiones HTTP POST entrantes al manejador " +"pgateway apropiado basado en el parámetro de puerta de enlace proporcionado. " +"Está diseñada para gestionar eventos de devolución de llamada procedentes de " +"sistemas externos y proporcionar una respuesta HTTP adecuada que indique el " +"éxito o el fracaso." #: engine/payments/views.py:61 #, python-brace-format @@ -256,8 +271,8 @@ msgid "" "permissions, can access the transactions." msgstr "" "ViewSet para manejar operaciones de sólo lectura en el modelo Transaction. " -"Esta clase proporciona una interfaz de sólo lectura para interactuar con los" -" datos de la transacción. Utiliza TransactionSerializer para serializar y " +"Esta clase proporciona una interfaz de sólo lectura para interactuar con los " +"datos de la transacción. Utiliza TransactionSerializer para serializar y " "deserializar los datos. La clase garantiza que sólo los usuarios " "autorizados, que cumplan determinados permisos, puedan acceder a las " "transacciones." diff --git a/engine/payments/locale/fa_IR/LC_MESSAGES/django.po b/engine/payments/locale/fa_IR/LC_MESSAGES/django.po index 6146e5ef..7a88150c 100644 --- a/engine/payments/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/payments/locale/fa_IR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/fr_FR/LC_MESSAGES/django.po b/engine/payments/locale/fr_FR/LC_MESSAGES/django.po index 8938b3ab..fd2779b8 100644 --- a/engine/payments/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/payments/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -118,8 +118,7 @@ msgstr "limite journalière" #: engine/payments/models.py:116 msgid "daily sum limit of transactions' amounts. 0 means no limit" msgstr "" -"la limite quotidienne des montants des transactions. 0 signifie aucune " -"limite" +"la limite quotidienne des montants des transactions. 0 signifie aucune limite" #: engine/payments/models.py:122 msgid "monthly limit" @@ -189,7 +188,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Si vous avez des questions, n'hésitez pas à contacter notre service d'assistance à l'adresse suivante\n" +"Si vous avez des questions, n'hésitez pas à contacter notre service " +"d'assistance à l'adresse suivante\n" " %(contact_email)s." #: engine/payments/templates/balance_deposit_email.html:100 @@ -203,8 +203,7 @@ msgstr "Tous droits réservés" #: engine/payments/utils/__init__.py:8 msgid "a provider to get rates from is required" -msgstr "" -"Il est nécessaire de disposer d'un fournisseur pour obtenir des tarifs" +msgstr "Il est nécessaire de disposer d'un fournisseur pour obtenir des tarifs" #: engine/payments/utils/__init__.py:15 #, python-brace-format @@ -219,18 +218,32 @@ msgstr "{settings.PROJECT_NAME} | dépôt de solde" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Cette classe fournit un point d'accès à l'API pour gérer les transactions de dépôt.\n" -"Elle prend en charge la création d'une transaction de dépôt après validation des données fournies. Si l'utilisateur n'est pas authentifié, une réponse appropriée est renvoyée. Si la validation et l'exécution sont réussies, une réponse contenant les détails de la transaction est fournie." +"Cette classe fournit un point d'accès à l'API pour gérer les transactions de " +"dépôt.\n" +"Elle prend en charge la création d'une transaction de dépôt après validation " +"des données fournies. Si l'utilisateur n'est pas authentifié, une réponse " +"appropriée est renvoyée. Si la validation et l'exécution sont réussies, une " +"réponse contenant les détails de la transaction est fournie." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Gère les demandes de rappel entrantes vers l'API.\n" -"Cette classe traite et achemine les demandes HTTP POST entrantes vers le gestionnaire pgateway approprié en fonction du paramètre de passerelle fourni. Elle est conçue pour gérer les événements de rappel provenant de systèmes externes et fournir une réponse HTTP appropriée indiquant le succès ou l'échec." +"Cette classe traite et achemine les demandes HTTP POST entrantes vers le " +"gestionnaire pgateway approprié en fonction du paramètre de passerelle " +"fourni. Elle est conçue pour gérer les événements de rappel provenant de " +"systèmes externes et fournir une réponse HTTP appropriée indiquant le succès " +"ou l'échec." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/he_IL/LC_MESSAGES/django.po b/engine/payments/locale/he_IL/LC_MESSAGES/django.po index 2c108500..60d4892b 100644 --- a/engine/payments/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/payments/locale/he_IL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -207,7 +207,10 @@ msgstr "{settings.PROJECT_NAME} | הפקדת יתרה" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "מחלקת זו מספקת נקודת קצה API לטיפול בעסקאות הפקדה. היא תומכת ביצירת עסקת " "הפקדה לאחר אימות הנתונים שנמסרו. אם המשתמש אינו מאומת, מתקבלת תגובה מתאימה. " @@ -216,11 +219,14 @@ msgstr "" #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" -"מטפל בבקשות החזרה נכנסות ל-API. מחלקה זו מעבדת ומנתבת בקשות HTTP POST נכנסות" -" למטפל pgateway המתאים על סמך פרמטר השער שסופק. היא נועדה לטפל באירועי החזרה" -" ממערכות חיצוניות ולספק תגובת HTTP מתאימה המציינת הצלחה או כישלון." +"מטפל בבקשות החזרה נכנסות ל-API. מחלקה זו מעבדת ומנתבת בקשות HTTP POST נכנסות " +"למטפל pgateway המתאים על סמך פרמטר השער שסופק. היא נועדה לטפל באירועי החזרה " +"ממערכות חיצוניות ולספק תגובת HTTP מתאימה המציינת הצלחה או כישלון." #: engine/payments/views.py:61 #, python-brace-format @@ -250,5 +256,5 @@ msgid "" msgstr "" "ViewSet לטיפול בפעולות לקריאה בלבד במודל העסקה. מחלקה זו מספקת ממשק לקריאה " "בלבד לצורך אינטראקציה עם נתוני העסקה. היא משתמשת ב-TransactionSerializer " -"לצורך סידור סדרתי ופירוק סדרתי של הנתונים. המחלקה מבטיחה שרק משתמשים מורשים," -" העומדים בהרשאות ספציפיות, יוכלו לגשת לעסקאות." +"לצורך סידור סדרתי ופירוק סדרתי של הנתונים. המחלקה מבטיחה שרק משתמשים מורשים, " +"העומדים בהרשאות ספציפיות, יוכלו לגשת לעסקאות." diff --git a/engine/payments/locale/hi_IN/LC_MESSAGES/django.po b/engine/payments/locale/hi_IN/LC_MESSAGES/django.po index aa5ef9d8..97802b25 100644 --- a/engine/payments/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/payments/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/hr_HR/LC_MESSAGES/django.po b/engine/payments/locale/hr_HR/LC_MESSAGES/django.po index 6146e5ef..7a88150c 100644 --- a/engine/payments/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/payments/locale/hr_HR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/id_ID/LC_MESSAGES/django.po b/engine/payments/locale/id_ID/LC_MESSAGES/django.po index 73628e6f..e5749ef9 100644 --- a/engine/payments/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/payments/locale/id_ID/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -175,7 +175,8 @@ msgid "" "we have successfully credited your account with %(amount)s. your current\n" " balance is %(balance)s." msgstr "" -"Kami telah berhasil mengkreditkan akun Anda dengan %(amount)s. Saldo Anda saat ini\n" +"Kami telah berhasil mengkreditkan akun Anda dengan %(amount)s. Saldo Anda " +"saat ini\n" " saldo Anda saat ini adalah %(balance)s." #: engine/payments/templates/balance_deposit_email.html:98 @@ -184,7 +185,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Jika Anda memiliki pertanyaan, jangan ragu untuk menghubungi tim dukungan kami di\n" +"Jika Anda memiliki pertanyaan, jangan ragu untuk menghubungi tim dukungan " +"kami di\n" " %(contact_email)s." #: engine/payments/templates/balance_deposit_email.html:100 @@ -213,18 +215,31 @@ msgstr "{settings.PROJECT_NAME} | setoran saldo" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "Kelas ini menyediakan endpoint API untuk menangani transaksi deposit.\n" -"Kelas ini mendukung pembuatan transaksi deposit setelah memvalidasi data yang disediakan. Jika pengguna tidak terautentikasi, respons yang sesuai akan dikembalikan. Pada validasi dan eksekusi yang berhasil, sebuah respons dengan detail transaksi disediakan." +"Kelas ini mendukung pembuatan transaksi deposit setelah memvalidasi data " +"yang disediakan. Jika pengguna tidak terautentikasi, respons yang sesuai " +"akan dikembalikan. Pada validasi dan eksekusi yang berhasil, sebuah respons " +"dengan detail transaksi disediakan." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Menangani permintaan panggilan balik yang masuk ke API.\n" -"Kelas ini memproses dan merutekan permintaan HTTP POST yang masuk ke penangan pgateway yang sesuai berdasarkan parameter gateway yang disediakan. Kelas ini dirancang untuk menangani peristiwa callback yang datang dari sistem eksternal dan memberikan respons HTTP yang sesuai yang mengindikasikan keberhasilan atau kegagalan." +"Kelas ini memproses dan merutekan permintaan HTTP POST yang masuk ke " +"penangan pgateway yang sesuai berdasarkan parameter gateway yang disediakan. " +"Kelas ini dirancang untuk menangani peristiwa callback yang datang dari " +"sistem eksternal dan memberikan respons HTTP yang sesuai yang " +"mengindikasikan keberhasilan atau kegagalan." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/it_IT/LC_MESSAGES/django.po b/engine/payments/locale/it_IT/LC_MESSAGES/django.po index 57332f54..0574c5b1 100644 --- a/engine/payments/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/payments/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -187,7 +187,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"In caso di domande, non esitate a contattare il nostro supporto all'indirizzo\n" +"In caso di domande, non esitate a contattare il nostro supporto " +"all'indirizzo\n" " %(contact_email)s." #: engine/payments/templates/balance_deposit_email.html:100 @@ -216,18 +217,31 @@ msgstr "{settings.PROJECT_NAME} | deposito a saldo" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Questa classe fornisce un endpoint API per gestire le transazioni di deposito.\n" -"Supporta la creazione di una transazione di deposito dopo la convalida dei dati forniti. Se l'utente non è autenticato, viene restituita una risposta appropriata. Se la convalida e l'esecuzione hanno esito positivo, viene fornita una risposta con i dettagli della transazione." +"Questa classe fornisce un endpoint API per gestire le transazioni di " +"deposito.\n" +"Supporta la creazione di una transazione di deposito dopo la convalida dei " +"dati forniti. Se l'utente non è autenticato, viene restituita una risposta " +"appropriata. Se la convalida e l'esecuzione hanno esito positivo, viene " +"fornita una risposta con i dettagli della transazione." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Gestisce le richieste di callback in arrivo all'API.\n" -"Questa classe elabora e instrada le richieste HTTP POST in arrivo al gestore pgateway appropriato, in base al parametro gateway fornito. È progettata per gestire gli eventi di callback provenienti da sistemi esterni e fornire una risposta HTTP appropriata che indichi il successo o il fallimento." +"Questa classe elabora e instrada le richieste HTTP POST in arrivo al gestore " +"pgateway appropriato, in base al parametro gateway fornito. È progettata per " +"gestire gli eventi di callback provenienti da sistemi esterni e fornire una " +"risposta HTTP appropriata che indichi il successo o il fallimento." #: engine/payments/views.py:61 #, python-brace-format @@ -259,5 +273,5 @@ msgstr "" "transazioni. Questa classe fornisce un'interfaccia di sola lettura per " "interagire con i dati delle transazioni. Utilizza TransactionSerializer per " "serializzare e deserializzare i dati. La classe garantisce che solo gli " -"utenti autorizzati, che soddisfano specifici permessi, possano accedere alle" -" transazioni." +"utenti autorizzati, che soddisfano specifici permessi, possano accedere alle " +"transazioni." diff --git a/engine/payments/locale/ja_JP/LC_MESSAGES/django.po b/engine/payments/locale/ja_JP/LC_MESSAGES/django.po index 681cfa79..10495734 100644 --- a/engine/payments/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/payments/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -210,18 +210,29 @@ msgstr "{settings.PROJECT_NAME}| 預金残高" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "このクラスは、預金取引を処理するための API エンドポイントを提供します。\n" -"提供されたデータを検証した後、入金トランザクションの作成をサポートします。ユーザが認証されていない場合は、適切なレスポンスが返されます。検証および実行に成功すると、トランザクションの詳細を含むレスポンスが提供されます。" +"提供されたデータを検証した後、入金トランザクションの作成をサポートします。" +"ユーザが認証されていない場合は、適切なレスポンスが返されます。検証および実行" +"に成功すると、トランザクションの詳細を含むレスポンスが提供されます。" #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "APIへの着信コールバック・リクエストを処理します。\n" -"このクラスは、入力された HTTP POST リクエストを処理し、提供されたゲートウェイパラメータに基づいて適切な pgateway ハンドラにルーティングします。外部システムから来るコールバック・イベントを処理し、成功または失敗を示す適切なHTTP応答を提供するように設計されています。" +"このクラスは、入力された HTTP POST リクエストを処理し、提供されたゲートウェイ" +"パラメータに基づいて適切な pgateway ハンドラにルーティングします。外部システ" +"ムから来るコールバック・イベントを処理し、成功または失敗を示す適切なHTTP応答" +"を提供するように設計されています。" #: engine/payments/views.py:61 #, python-brace-format @@ -237,7 +248,9 @@ msgstr "ゲートウェイ {transaction.gateway} は統合されていない" msgid "" "This endpoint returns minimal and maximal allowed deposit amounts across " "available gateways." -msgstr "このエンドポイントは、利用可能なゲートウェイ全体で許容される最小入金額と最大入金額を返す。" +msgstr "" +"このエンドポイントは、利用可能なゲートウェイ全体で許容される最小入金額と最大" +"入金額を返す。" #: engine/payments/viewsets.py:14 msgid "" @@ -247,6 +260,8 @@ msgid "" "data. The class ensures that only authorized users, who meet specific " "permissions, can access the transactions." msgstr "" -"Transactionモデルの読み取り専用操作を扱うためのViewSet。このクラスは、トランザクション・データを操作するための読み取り専用インタフェースを提供します。データのシリアライズとデシリアライズには" -" TransactionSerializer " -"を使用します。このクラスは、特定のパーミッションを満たす許可されたユーザのみがトランザクションにアクセスできることを保証します。" +"Transactionモデルの読み取り専用操作を扱うためのViewSet。このクラスは、トラン" +"ザクション・データを操作するための読み取り専用インタフェースを提供します。" +"データのシリアライズとデシリアライズには TransactionSerializer を使用します。" +"このクラスは、特定のパーミッションを満たす許可されたユーザのみがトランザク" +"ションにアクセスできることを保証します。" diff --git a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po index aa5ef9d8..97802b25 100644 --- a/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/payments/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/engine/payments/locale/ko_KR/LC_MESSAGES/django.po b/engine/payments/locale/ko_KR/LC_MESSAGES/django.po index a1799807..b5aa379f 100644 --- a/engine/payments/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/payments/locale/ko_KR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -210,18 +210,29 @@ msgstr "{settings.PROJECT_NAME} | 잔액 입금" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "이 클래스는 입금 트랜잭션을 처리하는 API 엔드포인트를 제공합니다.\n" -"제공된 데이터의 유효성을 검사한 후 입금 트랜잭션 생성을 지원합니다. 사용자가 인증되지 않은 경우 적절한 응답이 반환됩니다. 유효성 검사 및 실행에 성공하면 트랜잭션 세부 정보가 포함된 응답이 제공됩니다." +"제공된 데이터의 유효성을 검사한 후 입금 트랜잭션 생성을 지원합니다. 사용자가 " +"인증되지 않은 경우 적절한 응답이 반환됩니다. 유효성 검사 및 실행에 성공하면 " +"트랜잭션 세부 정보가 포함된 응답이 제공됩니다." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "API로 들어오는 콜백 요청을 처리합니다.\n" -"이 클래스는 제공된 게이트웨이 파라미터에 따라 들어오는 HTTP POST 요청을 처리하고 적절한 pgateway 핸들러로 라우팅합니다. 외부 시스템에서 들어오는 콜백 이벤트를 처리하고 성공 또는 실패를 나타내는 적절한 HTTP 응답을 제공하도록 설계되었습니다." +"이 클래스는 제공된 게이트웨이 파라미터에 따라 들어오는 HTTP POST 요청을 처리" +"하고 적절한 pgateway 핸들러로 라우팅합니다. 외부 시스템에서 들어오는 콜백 이" +"벤트를 처리하고 성공 또는 실패를 나타내는 적절한 HTTP 응답을 제공하도록 설계" +"되었습니다." #: engine/payments/views.py:61 #, python-brace-format @@ -237,7 +248,9 @@ msgstr "게이트웨이 {transaction.gateway}에 통합이 없습니다." msgid "" "This endpoint returns minimal and maximal allowed deposit amounts across " "available gateways." -msgstr "이 엔드포인트는 사용 가능한 게이트웨이에서 허용되는 최소 및 최대 입금액을 반환합니다." +msgstr "" +"이 엔드포인트는 사용 가능한 게이트웨이에서 허용되는 최소 및 최대 입금액을 반" +"환합니다." #: engine/payments/viewsets.py:14 msgid "" @@ -247,6 +260,8 @@ msgid "" "data. The class ensures that only authorized users, who meet specific " "permissions, can access the transactions." msgstr "" -"트랜잭션 모델에서 읽기 전용 작업을 처리하기 위한 뷰셋입니다. 이 클래스는 트랜잭션 데이터와 상호 작용하기 위한 읽기 전용 인터페이스를 " -"제공합니다. 데이터를 직렬화 및 역직렬화하기 위해 TransactionSerializer를 사용합니다. 이 클래스는 특정 권한을 충족하는" -" 권한이 있는 사용자만 트랜잭션에 액세스할 수 있도록 합니다." +"트랜잭션 모델에서 읽기 전용 작업을 처리하기 위한 뷰셋입니다. 이 클래스는 트랜" +"잭션 데이터와 상호 작용하기 위한 읽기 전용 인터페이스를 제공합니다. 데이터를 " +"직렬화 및 역직렬화하기 위해 TransactionSerializer를 사용합니다. 이 클래스는 " +"특정 권한을 충족하는 권한이 있는 사용자만 트랜잭션에 액세스할 수 있도록 합니" +"다." diff --git a/engine/payments/locale/nl_NL/LC_MESSAGES/django.po b/engine/payments/locale/nl_NL/LC_MESSAGES/django.po index d3213fd4..b3532f43 100644 --- a/engine/payments/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/payments/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -214,18 +214,31 @@ msgstr "{settings.PROJECT_NAME} | storting saldo" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Deze klasse biedt een API eindpunt voor het afhandelen van stortingstransacties.\n" -"Het ondersteunt het aanmaken van een stortingstransactie na het valideren van de verstrekte gegevens. Als de gebruiker niet geauthenticeerd is, wordt een passend antwoord teruggestuurd. Bij succesvolle validatie en uitvoering wordt een antwoord met de transactiedetails gegeven." +"Deze klasse biedt een API eindpunt voor het afhandelen van " +"stortingstransacties.\n" +"Het ondersteunt het aanmaken van een stortingstransactie na het valideren " +"van de verstrekte gegevens. Als de gebruiker niet geauthenticeerd is, wordt " +"een passend antwoord teruggestuurd. Bij succesvolle validatie en uitvoering " +"wordt een antwoord met de transactiedetails gegeven." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Handelt inkomende callback verzoeken naar de API af.\n" -"Deze klasse verwerkt en routeert inkomende HTTP POST verzoeken naar de juiste pgateway handler op basis van de opgegeven gateway parameter. Het is ontworpen om callback events af te handelen die van externe systemen komen en een passend HTTP antwoord te geven dat succes of mislukking aangeeft." +"Deze klasse verwerkt en routeert inkomende HTTP POST verzoeken naar de " +"juiste pgateway handler op basis van de opgegeven gateway parameter. Het is " +"ontworpen om callback events af te handelen die van externe systemen komen " +"en een passend HTTP antwoord te geven dat succes of mislukking aangeeft." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/no_NO/LC_MESSAGES/django.po b/engine/payments/locale/no_NO/LC_MESSAGES/django.po index 9d3680f2..24677fb9 100644 --- a/engine/payments/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/payments/locale/no_NO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -212,18 +212,32 @@ msgstr "{settings.PROJECT_NAME} | Saldo innskudd" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Denne klassen tilbyr et API-sluttpunkt for å håndtere innskuddstransaksjoner.\n" -"Den støtter opprettelsen av en innskuddstransaksjon etter validering av de oppgitte dataene. Hvis brukeren ikke er autentisert, returneres et passende svar. Ved vellykket validering og utførelse leveres et svar med transaksjonsdetaljer." +"Denne klassen tilbyr et API-sluttpunkt for å håndtere " +"innskuddstransaksjoner.\n" +"Den støtter opprettelsen av en innskuddstransaksjon etter validering av de " +"oppgitte dataene. Hvis brukeren ikke er autentisert, returneres et passende " +"svar. Ved vellykket validering og utførelse leveres et svar med " +"transaksjonsdetaljer." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Håndterer innkommende tilbakekallingsforespørsler til API-et.\n" -"Denne klassen behandler og ruter innkommende HTTP POST-forespørsler til riktig pgateway-håndterer basert på den angitte gateway-parameteren. Den er utformet for å håndtere tilbakeringingshendelser som kommer fra eksterne systemer, og gir et passende HTTP-svar som angir om forespørselen er vellykket eller mislykket." +"Denne klassen behandler og ruter innkommende HTTP POST-forespørsler til " +"riktig pgateway-håndterer basert på den angitte gateway-parameteren. Den er " +"utformet for å håndtere tilbakeringingshendelser som kommer fra eksterne " +"systemer, og gir et passende HTTP-svar som angir om forespørselen er " +"vellykket eller mislykket." #: engine/payments/views.py:61 #, python-brace-format @@ -253,6 +267,6 @@ msgid "" msgstr "" "ViewSet for håndtering av skrivebeskyttede operasjoner på " "transaksjonsmodellen. Denne klassen tilbyr et skrivebeskyttet grensesnitt " -"for interaksjon med transaksjonsdata. Den bruker TransactionSerializer til å" -" serialisere og deserialisere dataene. Klassen sikrer at bare autoriserte " +"for interaksjon med transaksjonsdata. Den bruker TransactionSerializer til å " +"serialisere og deserialisere dataene. Klassen sikrer at bare autoriserte " "brukere med bestemte rettigheter får tilgang til transaksjonene." diff --git a/engine/payments/locale/pl_PL/LC_MESSAGES/django.po b/engine/payments/locale/pl_PL/LC_MESSAGES/django.po index 81c550fb..4e9b2011 100644 --- a/engine/payments/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/payments/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -183,7 +183,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Jeśli masz jakiekolwiek pytania, skontaktuj się z naszym działem pomocy technicznej pod adresem\n" +"Jeśli masz jakiekolwiek pytania, skontaktuj się z naszym działem pomocy " +"technicznej pod adresem\n" " %(contact_email)s." #: engine/payments/templates/balance_deposit_email.html:100 @@ -212,18 +213,31 @@ msgstr "{settings.PROJECT_NAME} | depozyt salda" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "Ta klasa zapewnia punkt końcowy API do obsługi transakcji depozytowych.\n" -"Obsługuje tworzenie transakcji depozytowej po sprawdzeniu poprawności dostarczonych danych. Jeśli użytkownik nie jest uwierzytelniony, zwracana jest odpowiednia odpowiedź. Po pomyślnej walidacji i wykonaniu dostarczana jest odpowiedź ze szczegółami transakcji." +"Obsługuje tworzenie transakcji depozytowej po sprawdzeniu poprawności " +"dostarczonych danych. Jeśli użytkownik nie jest uwierzytelniony, zwracana " +"jest odpowiednia odpowiedź. Po pomyślnej walidacji i wykonaniu dostarczana " +"jest odpowiedź ze szczegółami transakcji." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Obsługuje przychodzące żądania zwrotne do API.\n" -"Ta klasa przetwarza i kieruje przychodzące żądania HTTP POST do odpowiedniej obsługi pgateway w oparciu o dostarczony parametr bramy. Została zaprojektowana do obsługi zdarzeń wywołania zwrotnego pochodzących z systemów zewnętrznych i dostarczania odpowiedniej odpowiedzi HTTP wskazującej na sukces lub niepowodzenie." +"Ta klasa przetwarza i kieruje przychodzące żądania HTTP POST do odpowiedniej " +"obsługi pgateway w oparciu o dostarczony parametr bramy. Została " +"zaprojektowana do obsługi zdarzeń wywołania zwrotnego pochodzących z " +"systemów zewnętrznych i dostarczania odpowiedniej odpowiedzi HTTP " +"wskazującej na sukces lub niepowodzenie." #: engine/payments/views.py:61 #, python-brace-format @@ -252,7 +266,7 @@ msgid "" "permissions, can access the transactions." msgstr "" "ViewSet do obsługi operacji tylko do odczytu na modelu transakcji. Ta klasa " -"zapewnia interfejs tylko do odczytu do interakcji z danymi transakcji. Używa" -" TransactionSerializer do serializacji i deserializacji danych. Klasa " +"zapewnia interfejs tylko do odczytu do interakcji z danymi transakcji. Używa " +"TransactionSerializer do serializacji i deserializacji danych. Klasa " "zapewnia, że tylko autoryzowani użytkownicy, którzy spełniają określone " "uprawnienia, mogą uzyskać dostęp do transakcji." diff --git a/engine/payments/locale/pt_BR/LC_MESSAGES/django.po b/engine/payments/locale/pt_BR/LC_MESSAGES/django.po index 993154d4..a211de32 100644 --- a/engine/payments/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/payments/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -215,18 +215,32 @@ msgstr "{settings.PROJECT_NAME} | depósito de saldo" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Essa classe fornece um ponto de extremidade da API para lidar com transações de depósito.\n" -"Ela oferece suporte à criação de uma transação de depósito após a validação dos dados fornecidos. Se o usuário não estiver autenticado, uma resposta apropriada será retornada. Em caso de validação e execução bem-sucedidas, é fornecida uma resposta com os detalhes da transação." +"Essa classe fornece um ponto de extremidade da API para lidar com transações " +"de depósito.\n" +"Ela oferece suporte à criação de uma transação de depósito após a validação " +"dos dados fornecidos. Se o usuário não estiver autenticado, uma resposta " +"apropriada será retornada. Em caso de validação e execução bem-sucedidas, é " +"fornecida uma resposta com os detalhes da transação." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Trata as solicitações de retorno de chamada recebidas para a API.\n" -"Essa classe processa e encaminha solicitações HTTP POST de entrada para o manipulador pgateway apropriado com base no parâmetro de gateway fornecido. Ela foi projetada para tratar eventos de retorno de chamada provenientes de sistemas externos e fornecer uma resposta HTTP apropriada indicando sucesso ou falha." +"Essa classe processa e encaminha solicitações HTTP POST de entrada para o " +"manipulador pgateway apropriado com base no parâmetro de gateway fornecido. " +"Ela foi projetada para tratar eventos de retorno de chamada provenientes de " +"sistemas externos e fornecer uma resposta HTTP apropriada indicando sucesso " +"ou falha." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/ro_RO/LC_MESSAGES/django.po b/engine/payments/locale/ro_RO/LC_MESSAGES/django.po index 8097953c..0c085abd 100644 --- a/engine/payments/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/payments/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -212,18 +212,32 @@ msgstr "{settings.PROJECT_NAME} | depozit sold" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Această clasă oferă un punct final API pentru gestionarea tranzacțiilor de depozit.\n" -"Aceasta acceptă crearea unei tranzacții de depunere după validarea datelor furnizate. Dacă utilizatorul nu este autentificat, este returnat un răspuns corespunzător. La validarea și executarea cu succes, este furnizat un răspuns cu detaliile tranzacției." +"Această clasă oferă un punct final API pentru gestionarea tranzacțiilor de " +"depozit.\n" +"Aceasta acceptă crearea unei tranzacții de depunere după validarea datelor " +"furnizate. Dacă utilizatorul nu este autentificat, este returnat un răspuns " +"corespunzător. La validarea și executarea cu succes, este furnizat un " +"răspuns cu detaliile tranzacției." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Gestionează cererile de callback primite la API.\n" -"Această clasă procesează și direcționează solicitările HTTP POST primite către gestionarul pgateway corespunzător, pe baza parametrului gateway furnizat. Este concepută pentru a gestiona evenimentele de callback provenite de la sisteme externe și pentru a furniza un răspuns HTTP adecvat care să indice succesul sau eșecul." +"Această clasă procesează și direcționează solicitările HTTP POST primite " +"către gestionarul pgateway corespunzător, pe baza parametrului gateway " +"furnizat. Este concepută pentru a gestiona evenimentele de callback " +"provenite de la sisteme externe și pentru a furniza un răspuns HTTP adecvat " +"care să indice succesul sau eșecul." #: engine/payments/views.py:61 #, python-brace-format @@ -240,8 +254,8 @@ msgid "" "This endpoint returns minimal and maximal allowed deposit amounts across " "available gateways." msgstr "" -"Acest punct final returnează sumele minime și maxime permise pentru depozite" -" pe toate gateway-urile disponibile." +"Acest punct final returnează sumele minime și maxime permise pentru depozite " +"pe toate gateway-urile disponibile." #: engine/payments/viewsets.py:14 msgid "" diff --git a/engine/payments/locale/ru_RU/LC_MESSAGES/django.po b/engine/payments/locale/ru_RU/LC_MESSAGES/django.po index 94a924d9..6e9af737 100644 --- a/engine/payments/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/payments/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -212,18 +212,32 @@ msgstr "{settings.PROJECT_NAME} | вклад в баланс" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Этот класс предоставляет конечную точку API для работы с депозитными транзакциями.\n" -"Он поддерживает создание депозитной транзакции после проверки предоставленных данных. Если пользователь не прошел проверку подлинности, возвращается соответствующий ответ. При успешной проверке и выполнении транзакции выдается ответ с деталями транзакции." +"Этот класс предоставляет конечную точку API для работы с депозитными " +"транзакциями.\n" +"Он поддерживает создание депозитной транзакции после проверки " +"предоставленных данных. Если пользователь не прошел проверку подлинности, " +"возвращается соответствующий ответ. При успешной проверке и выполнении " +"транзакции выдается ответ с деталями транзакции." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Обрабатывает входящие запросы обратного вызова к API.\n" -"Этот класс обрабатывает и направляет входящие HTTP POST-запросы к соответствующему обработчику pgateway на основе предоставленного параметра шлюза. Он предназначен для обработки событий обратного вызова, поступающих от внешних систем, и предоставления соответствующего HTTP-ответа, указывающего на успех или неудачу." +"Этот класс обрабатывает и направляет входящие HTTP POST-запросы к " +"соответствующему обработчику pgateway на основе предоставленного параметра " +"шлюза. Он предназначен для обработки событий обратного вызова, поступающих " +"от внешних систем, и предоставления соответствующего HTTP-ответа, " +"указывающего на успех или неудачу." #: engine/payments/views.py:61 #, python-brace-format @@ -251,8 +265,8 @@ msgid "" "data. The class ensures that only authorized users, who meet specific " "permissions, can access the transactions." msgstr "" -"ViewSet для обработки операций с моделью Transaction только для чтения. Этот" -" класс предоставляет интерфейс только для чтения для взаимодействия с " -"данными транзакции. Он использует TransactionSerializer для сериализации и " +"ViewSet для обработки операций с моделью Transaction только для чтения. Этот " +"класс предоставляет интерфейс только для чтения для взаимодействия с данными " +"транзакции. Он использует TransactionSerializer для сериализации и " "десериализации данных. Класс гарантирует, что доступ к транзакциям могут " "получить только авторизованные пользователи с определенными правами." diff --git a/engine/payments/locale/sv_SE/LC_MESSAGES/django.po b/engine/payments/locale/sv_SE/LC_MESSAGES/django.po index 0f8e7f83..45d157d7 100644 --- a/engine/payments/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/payments/locale/sv_SE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -214,18 +214,32 @@ msgstr "{settings.PROJECT_NAME} | saldo insättning" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" -"Denna klass tillhandahåller en API-slutpunkt för att hantera insättningstransaktioner.\n" -"Den stöder skapandet av en insättningstransaktion efter validering av de tillhandahållna uppgifterna. Om användaren inte är autentiserad returneras ett lämpligt svar. Vid lyckad validering och utförande ges ett svar med transaktionsdetaljerna." +"Denna klass tillhandahåller en API-slutpunkt för att hantera " +"insättningstransaktioner.\n" +"Den stöder skapandet av en insättningstransaktion efter validering av de " +"tillhandahållna uppgifterna. Om användaren inte är autentiserad returneras " +"ett lämpligt svar. Vid lyckad validering och utförande ges ett svar med " +"transaktionsdetaljerna." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Hanterar inkommande callback-förfrågningar till API:et.\n" -"Den här klassen bearbetar och dirigerar inkommande HTTP POST-begäranden till lämplig pgateway-hanterare baserat på den angivna gateway-parametern. Den är utformad för att hantera återuppringningshändelser som kommer från externa system och tillhandahålla ett lämpligt HTTP-svar som indikerar framgång eller misslyckande." +"Den här klassen bearbetar och dirigerar inkommande HTTP POST-begäranden till " +"lämplig pgateway-hanterare baserat på den angivna gateway-parametern. Den är " +"utformad för att hantera återuppringningshändelser som kommer från externa " +"system och tillhandahålla ett lämpligt HTTP-svar som indikerar framgång " +"eller misslyckande." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/th_TH/LC_MESSAGES/django.po b/engine/payments/locale/th_TH/LC_MESSAGES/django.po index 2edec2ec..e1ec1dce 100644 --- a/engine/payments/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/payments/locale/th_TH/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -53,8 +53,7 @@ msgstr "ขีดจำกัดการชำระเงิน" msgid "" "retrieve minimal and maximal allowed deposit amounts across available " "gateways" -msgstr "" -"ดึงข้อมูลจำนวนเงินฝากขั้นต่ำและขั้นสูงสุดที่อนุญาตผ่านช่องทางที่มีอยู่" +msgstr "ดึงข้อมูลจำนวนเงินฝากขั้นต่ำและขั้นสูงสุดที่อนุญาตผ่านช่องทางที่มีอยู่" #: engine/payments/docs/drf/viewsets.py:14 msgid "list all transactions (read-only)" @@ -209,7 +208,10 @@ msgstr "{settings.PROJECT_NAME} | ยอดเงินฝาก" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "คลาสนี้ให้บริการจุดเชื่อมต่อ API สำหรับจัดการธุรกรรมฝากเงิน " "โดยรองรับการสร้างธุรกรรมฝากเงินหลังจากตรวจสอบข้อมูลที่ส่งมาอย่างถูกต้อง " @@ -219,13 +221,15 @@ msgstr "" #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" -"จัดการคำขอการโทรกลับที่เข้ามาไปยัง API คลาสนี้ประมวลผลและส่งต่อคำขอ HTTP " -"POST ที่เข้ามาไปยังตัวจัดการ pgateway ที่เหมาะสมตามพารามิเตอร์ gateway " -"ที่ให้มา " -"มันถูกออกแบบมาเพื่อจัดการเหตุการณ์การโทรกลับที่มาจากระบบภายนอกและให้คำตอบ " -"HTTP ที่เหมาะสมซึ่งบ่งบอกถึงความสำเร็จหรือความล้มเหลว" +"จัดการคำขอการโทรกลับที่เข้ามาไปยัง API คลาสนี้ประมวลผลและส่งต่อคำขอ HTTP POST " +"ที่เข้ามาไปยังตัวจัดการ pgateway ที่เหมาะสมตามพารามิเตอร์ gateway ที่ให้มา " +"มันถูกออกแบบมาเพื่อจัดการเหตุการณ์การโทรกลับที่มาจากระบบภายนอกและให้คำตอบ HTTP " +"ที่เหมาะสมซึ่งบ่งบอกถึงความสำเร็จหรือความล้มเหลว" #: engine/payments/views.py:61 #, python-brace-format @@ -241,8 +245,7 @@ msgstr "เกตเวย์ {transaction.gateway} ไม่มีการร msgid "" "This endpoint returns minimal and maximal allowed deposit amounts across " "available gateways." -msgstr "" -"จุดสิ้นสุดนี้จะส่งคืนจำนวนเงินฝากขั้นต่ำและขั้นสูงสุดที่อนุญาตผ่านช่องทางที่มีอยู่ทั้งหมด" +msgstr "จุดสิ้นสุดนี้จะส่งคืนจำนวนเงินฝากขั้นต่ำและขั้นสูงสุดที่อนุญาตผ่านช่องทางที่มีอยู่ทั้งหมด" #: engine/payments/viewsets.py:14 msgid "" @@ -253,7 +256,6 @@ msgid "" "permissions, can access the transactions." msgstr "" "ViewSet สำหรับการจัดการการดำเนินการแบบอ่านอย่างเดียวบนโมเดล Transaction " -"คลาสนี้ให้อินเทอร์เฟซแบบอ่านอย่างเดียวสำหรับการโต้ตอบกับข้อมูลธุรกรรม โดยใช้" -" TransactionSerializer สำหรับการแปลงข้อมูลเป็นลำดับและถอดลำดับข้อมูล " -"คลาสนี้รับรองว่ามีเพียงผู้ใช้ที่ได้รับอนุญาตเท่านั้น ซึ่งตรงตามสิทธิ์เฉพาะ " -"สามารถเข้าถึงธุรกรรมได้" +"คลาสนี้ให้อินเทอร์เฟซแบบอ่านอย่างเดียวสำหรับการโต้ตอบกับข้อมูลธุรกรรม โดยใช้ " +"TransactionSerializer สำหรับการแปลงข้อมูลเป็นลำดับและถอดลำดับข้อมูล " +"คลาสนี้รับรองว่ามีเพียงผู้ใช้ที่ได้รับอนุญาตเท่านั้น ซึ่งตรงตามสิทธิ์เฉพาะ สามารถเข้าถึงธุรกรรมได้" diff --git a/engine/payments/locale/tr_TR/LC_MESSAGES/django.po b/engine/payments/locale/tr_TR/LC_MESSAGES/django.po index 33065425..0eb6fb28 100644 --- a/engine/payments/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/payments/locale/tr_TR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -185,7 +185,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Herhangi bir sorunuz varsa, destek ekibimizle iletişime geçmekten çekinmeyin\n" +"Herhangi bir sorunuz varsa, destek ekibimizle iletişime geçmekten " +"çekinmeyin\n" " %(contact_email)s." #: engine/payments/templates/balance_deposit_email.html:100 @@ -214,18 +215,30 @@ msgstr "{settings.PROJECT_NAME} | bakiye depozitosu" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "Bu sınıf, para yatırma işlemlerini işlemek için bir API uç noktası sağlar.\n" -"Sağlanan verileri doğruladıktan sonra bir para yatırma işleminin oluşturulmasını destekler. Kullanıcının kimliği doğrulanmamışsa, uygun bir yanıt döndürülür. Doğrulama ve yürütme başarılı olduğunda, işlem ayrıntılarını içeren bir yanıt sağlanır." +"Sağlanan verileri doğruladıktan sonra bir para yatırma işleminin " +"oluşturulmasını destekler. Kullanıcının kimliği doğrulanmamışsa, uygun bir " +"yanıt döndürülür. Doğrulama ve yürütme başarılı olduğunda, işlem " +"ayrıntılarını içeren bir yanıt sağlanır." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "API'ye gelen geri arama isteklerini işler.\n" -"Bu sınıf, sağlanan ağ geçidi parametresine göre gelen HTTP POST isteklerini işler ve uygun pgateway işleyicisine yönlendirir. Harici sistemlerden gelen geri arama olaylarını işlemek ve başarı veya başarısızlığı gösteren uygun bir HTTP yanıtı sağlamak için tasarlanmıştır." +"Bu sınıf, sağlanan ağ geçidi parametresine göre gelen HTTP POST isteklerini " +"işler ve uygun pgateway işleyicisine yönlendirir. Harici sistemlerden gelen " +"geri arama olaylarını işlemek ve başarı veya başarısızlığı gösteren uygun " +"bir HTTP yanıtı sağlamak için tasarlanmıştır." #: engine/payments/views.py:61 #, python-brace-format diff --git a/engine/payments/locale/vi_VN/LC_MESSAGES/django.po b/engine/payments/locale/vi_VN/LC_MESSAGES/django.po index 2f5c08b9..23500cb9 100644 --- a/engine/payments/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/payments/locale/vi_VN/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -187,8 +187,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(contact_email)s." msgstr "" -"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng" -" tôi tại %(contact_email)s." +"Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận hỗ trợ của chúng " +"tôi tại %(contact_email)s." #: engine/payments/templates/balance_deposit_email.html:100 #, python-format @@ -216,18 +216,24 @@ msgstr "{settings.PROJECT_NAME} | Số dư tiền gửi" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "Lớp này cung cấp một điểm cuối API để xử lý các giao dịch nạp tiền. Nó hỗ " -"trợ tạo giao dịch nạp tiền sau khi xác thực dữ liệu được cung cấp. Nếu người" -" dùng chưa được xác thực, một phản hồi phù hợp sẽ được trả về. Sau khi xác " +"trợ tạo giao dịch nạp tiền sau khi xác thực dữ liệu được cung cấp. Nếu người " +"dùng chưa được xác thực, một phản hồi phù hợp sẽ được trả về. Sau khi xác " "thực và thực thi thành công, một phản hồi chứa chi tiết giao dịch sẽ được " "cung cấp." #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "Xử lý các yêu cầu gọi lại (callback) đến API. Lớp này xử lý và định tuyến " "các yêu cầu HTTP POST đến trình xử lý pgateway phù hợp dựa trên tham số " @@ -250,8 +256,8 @@ msgid "" "This endpoint returns minimal and maximal allowed deposit amounts across " "available gateways." msgstr "" -"Điểm cuối này trả về các mức tiền gửi tối thiểu và tối đa được phép trên các" -" cổng thanh toán có sẵn." +"Điểm cuối này trả về các mức tiền gửi tối thiểu và tối đa được phép trên các " +"cổng thanh toán có sẵn." #: engine/payments/viewsets.py:14 msgid "" diff --git a/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po b/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po index 7b127830..0ef47948 100644 --- a/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/payments/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -210,18 +210,27 @@ msgstr "{settings.PROJECT_NAME}| 余额存款" #: engine/payments/views.py:24 msgid "" "This class provides an API endpoint to handle deposit transactions.\n" -"It supports the creation of a deposit transaction after validating the provided data. If the user is not authenticated, an appropriate response is returned. On successful validation and execution, a response with the transaction details is provided." +"It supports the creation of a deposit transaction after validating the " +"provided data. If the user is not authenticated, an appropriate response is " +"returned. On successful validation and execution, a response with the " +"transaction details is provided." msgstr "" "该类提供了处理存款交易的 API 端点。\n" -"它支持在验证所提供的数据后创建存款交易。如果用户未通过身份验证,则会返回相应的响应。如果验证和执行成功,则会提供包含交易详细信息的响应。" +"它支持在验证所提供的数据后创建存款交易。如果用户未通过身份验证,则会返回相应" +"的响应。如果验证和执行成功,则会提供包含交易详细信息的响应。" #: engine/payments/views.py:50 msgid "" "Handles incoming callback requests to the API.\n" -"This class processes and routes incoming HTTP POST requests to the appropriate pgateway handler based on the provided gateway parameter. It is designed to handle callback events coming from external systems and provide an appropriate HTTP response indicating success or failure." +"This class processes and routes incoming HTTP POST requests to the " +"appropriate pgateway handler based on the provided gateway parameter. It is " +"designed to handle callback events coming from external systems and provide " +"an appropriate HTTP response indicating success or failure." msgstr "" "处理传入的 API 回调请求。\n" -"该类根据提供的网关参数,将传入的 HTTP POST 请求处理并路由到相应的 pgateway 处理程序。该类旨在处理来自外部系统的回调事件,并提供适当的 HTTP 响应,说明成功或失败。" +"该类根据提供的网关参数,将传入的 HTTP POST 请求处理并路由到相应的 pgateway 处" +"理程序。该类旨在处理来自外部系统的回调事件,并提供适当的 HTTP 响应,说明成功" +"或失败。" #: engine/payments/views.py:61 #, python-brace-format @@ -247,5 +256,6 @@ msgid "" "data. The class ensures that only authorized users, who meet specific " "permissions, can access the transactions." msgstr "" -"ViewSet 用于处理对事务模型的只读操作。该类提供了与事务数据交互的只读接口。它使用 TransactionSerializer " -"对数据进行序列化和反序列化。该类确保只有符合特定权限的授权用户才能访问事务。" +"ViewSet 用于处理对事务模型的只读操作。该类提供了与事务数据交互的只读接口。它" +"使用 TransactionSerializer 对数据进行序列化和反序列化。该类确保只有符合特定权" +"限的授权用户才能访问事务。" diff --git a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po index 887dbac7..29ea7d82 100644 --- a/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "الرصيد" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "الطلب" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "الطلبات" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "معلومات شخصية" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "الأذونات" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "تواريخ مهمة" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "معلومات إضافية" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "لا يمكنك القفز فوق رأسك!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "إغلاق المواضيع المحددة" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "فتح المواضيع المحددة" @@ -245,7 +245,7 @@ msgstr "" "المنتجات التي شاهدها هذا المستخدم مؤخرًا (بحد أقصى 48)، بترتيب زمني عكسي." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "المجموعات" @@ -253,7 +253,7 @@ msgstr "المجموعات" msgid "wishlist" msgstr "قائمة الرغبات" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "الصورة الرمزية" @@ -288,7 +288,7 @@ msgstr "نحن نبحث عن عامل التشغيل للرد عليك بالف msgid "Assignee must be a staff user." msgstr "يجب أن يكون المعين مستخدمًا من الموظفين." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -305,119 +305,119 @@ msgstr "" "إلى الرمز المميز للتحقق من الحسابات. تم تصميم نموذج المستخدم للتعامل مع " "حالات استخدام محددة لإدارة المستخدم المحسنة." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "البريد الإلكتروني" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "عنوان البريد الإلكتروني للمستخدم" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "رقم الهاتف" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "رقم هاتف المستخدم" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "الاسم الأول" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "اسم العائلة" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "صورة ملف تعريف المستخدم" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "تم التحقق" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "حالة التحقق من المستخدم" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "نشط" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "قم بإلغاء تحديد هذا بدلاً من حذف الحسابات" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "مشترك" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "حالة اشتراك المستخدم في النشرة الإخبارية" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "رمز التفعيل" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "السمات" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "المستخدم" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "المستخدمون" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "بالنسبة للمواضيع المجهولة" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "موضوع المحادثة" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "خيوط الدردشة" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "توفير مستخدم أو بريد إلكتروني لموضوع مجهول." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "يجب أن يكون المُحال إليه مستخدمًا من الموظفين." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "رسالة الدردشة" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "رسائل المحادثة" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "المجموعة" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "الرمز المميز" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "الرموز المميزة المعلقة" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "الرمز المميز المدرج في القائمة السوداء" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "الرموز المميزة المدرجة في القائمة السوداء" diff --git a/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po b/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po index 182bde45..27286fd6 100644 --- a/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Bilance" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Objednávka" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Objednávky" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Osobní informace" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Oprávnění" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Důležitá data" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Další informace" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Nemůžete skákat přes hlavu!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Zavřít vybraná vlákna" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Otevřít vybraná vlákna" @@ -244,7 +244,7 @@ msgstr "" "opačném pořadí." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Skupiny" @@ -252,7 +252,7 @@ msgstr "Skupiny" msgid "wishlist" msgstr "Seznam přání" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -288,7 +288,7 @@ msgstr "Už hledáme operátora, který vám odpoví, vydržte!" msgid "Assignee must be a staff user." msgstr "Příjemce musí být zaměstnanecký uživatel." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -306,119 +306,119 @@ msgstr "" "User je navržen tak, aby zvládal specifické případy použití pro rozšířenou " "správu uživatelů." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "E-mailová adresa uživatele" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Telefonní číslo" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Telefonní číslo uživatele" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Křestní jméno" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Příjmení" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Obrázek profilu uživatele" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Je ověřeno" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Stav ověření uživatele" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Je aktivní" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Zrušení výběru této možnosti místo odstranění účtů" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Je přihlášena k odběru" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Stav odběru newsletteru uživatele" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Aktivační token" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Atributy" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Uživatel" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Uživatelé" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Pro anonymní vlákna" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Vlákno chatu" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Vlákna chatu" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "zadejte uživatele nebo e-mail pro anonymní vlákno." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "Příjemce musí být personálním uživatelem." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Zpráva na chatu" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Zprávy v chatu" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Skupina" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Vynikající žeton" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Nevyplacené žetony" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token na černé listině" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Tokeny na černé listině" diff --git a/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po b/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po index 42a33a43..eafa1628 100644 --- a/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Bestil" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Bestillinger" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Personlig information" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Tilladelser" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Vigtige datoer" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Yderligere information" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Du kan ikke hoppe over hovedet!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Luk udvalgte tråde" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Åbn udvalgte tråde" @@ -246,7 +246,7 @@ msgstr "" "kronologisk rækkefølge." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grupper" @@ -254,7 +254,7 @@ msgstr "Grupper" msgid "wishlist" msgstr "Ønskeliste" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -290,7 +290,7 @@ msgstr "Vi leder allerede efter en operatør, der kan svare dig, så vent!" msgid "Assignee must be a staff user." msgstr "Modtageren skal være en personalebruger." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -308,119 +308,119 @@ msgstr "" "aktivering til verificering af konti. User-modellen er designet til at " "håndtere specifikke brugsscenarier for forbedret brugeradministration." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Brugerens e-mailadresse" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Telefonnummer" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Brugerens telefonnummer" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Fornavn" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Efternavn" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Billede af brugerprofil" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Er verificeret" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Brugerens verifikationsstatus" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Er aktiv" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Fravælg dette i stedet for at slette konti" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Er tilmeldt" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Status for brugerens abonnement på nyhedsbrev" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Aktiveringstoken" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Egenskaber" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Bruger" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Brugere" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Til anonyme tråde" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Chat-tråd" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Chat-tråde" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "Angiv bruger eller e-mail for anonym tråd." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "modtageren skal være en personalebruger." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Chat-besked" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Chat-beskeder" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Gruppe" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Enestående token" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Udestående tokens" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Sortlistet token" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Sortlistede tokens" diff --git a/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po b/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po index 1dff0e6d..9cb64611 100644 --- a/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Waage" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Bestellung" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Bestellungen" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Persönliche Informationen" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Erlaubnisse" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Wichtige Termine" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Zusätzliche Informationen" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Sie können nicht über Ihren Kopf springen!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Ausgewählte Threads schließen" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Ausgewählte Themen öffnen" @@ -250,7 +250,7 @@ msgstr "" "umgekehrter chronologischer Reihenfolge." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Gruppen" @@ -258,7 +258,7 @@ msgstr "Gruppen" msgid "wishlist" msgstr "Wunschzettel" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -298,7 +298,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "Der Abtretungsempfänger muss ein Mitarbeiter sein." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -318,120 +318,120 @@ msgstr "" "entwickelt, um spezielle Anwendungsfälle für eine erweiterte " "Benutzerverwaltung zu behandeln." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-Mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "E-Mail Adresse des Benutzers" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Rufnummer" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Rufnummer des Benutzers" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Vornamen" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Nachname" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Bild des Benutzerprofils" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Wird überprüft" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Verifizierungsstatus des Benutzers" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Ist aktiv" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Deaktivieren Sie diese Option, anstatt Konten zu löschen" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Ist abonniert" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Status des Newsletter-Abonnements des Benutzers" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Aktivierungs-Token" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Attribute" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Benutzer" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Benutzer" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Für anonyme Themen" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Chat-Thread" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Chat-Themen" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "" "Geben Sie einen Benutzer oder eine E-Mail für einen anonymen Thread an." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "Der Beauftragte muss ein Mitarbeiter sein." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Chat-Nachricht" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Chat-Nachrichten" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Gruppe" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Hervorragende Wertmarke" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Ausstehende Wertmarken" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token auf der schwarzen Liste" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Token auf der schwarzen Liste" diff --git a/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po b/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po index aef31e4b..642bf8bc 100644 --- a/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -17,44 +17,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Order" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Orders" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Personal Info" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissions" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Important dates" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Additional Info" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "You cannot jump over your head!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Close selected threads" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Open selected threads" @@ -248,7 +248,7 @@ msgstr "" "chronological order." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Groups" @@ -256,7 +256,7 @@ msgstr "Groups" msgid "wishlist" msgstr "Wishlist" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -293,7 +293,7 @@ msgstr "We're searching for the operator to answer you already, hold by!" msgid "Assignee must be a staff user." msgstr "Assignee must be a staff user." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -311,119 +311,119 @@ msgstr "" "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "User's email address" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Phone Number" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "User phone number" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "First name" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Last name" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "User profile image" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Is verified" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "User's verification status" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Is active" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Unselect this instead of deleting accounts" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Is subscribed" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "User's newsletter subscription status" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Activation token" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Attributes" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "User" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Users" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "For anonymous threads" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Chat thread" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Chat threads" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "provide user or email for anonymous thread." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "assignee must be a staff user." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Chat message" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Chat messages" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Group" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Outstanding token" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Blacklisted token" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Blacklisted tokens" diff --git a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po index f6047211..c333ddf2 100644 --- a/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Order" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Orders" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Personal Info" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissions" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Important dates" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Additional Info" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "You cannot jump over your head!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Close selected threads" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Open selected threads" @@ -244,7 +244,7 @@ msgstr "" "chronological order." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Groups" @@ -252,7 +252,7 @@ msgstr "Groups" msgid "wishlist" msgstr "Wishlist" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -289,7 +289,7 @@ msgstr "We're searching for the operator to answer you already, hold by!" msgid "Assignee must be a staff user." msgstr "Assignee must be a staff user." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -307,119 +307,119 @@ msgstr "" "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "Email" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "User's email address" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Phone Number" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "User phone number" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "First name" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Last name" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "User profile image" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Is verified" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "User's verification status" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Is active" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Unselect this instead of deleting accounts" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Is subscribed" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "User's newsletter subscription status" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Activation token" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Attributes" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "User" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Users" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "For anonymous threads" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Chat thread" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Chat threads" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "provide user or email for anonymous thread." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "assignee must be a staff user." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Chat message" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Chat messages" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Group" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Outstanding token" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Blacklisted token" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Blacklisted tokens" diff --git a/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po b/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po index db4b6c48..845df14d 100644 --- a/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Saldo" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Pida" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Pedidos" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Información personal" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permisos" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Fechas importantes" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Información adicional" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "¡No puedes saltar por encima de tu cabeza!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Cerrar los hilos seleccionados" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Abrir los hilos seleccionados" @@ -247,7 +247,7 @@ msgstr "" "orden cronológico inverso." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grupos" @@ -255,7 +255,7 @@ msgstr "Grupos" msgid "wishlist" msgstr "Lista de deseos" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -292,7 +292,7 @@ msgstr "Ya estamos buscando al operador que le responda, ¡espera!" msgid "Assignee must be a staff user." msgstr "El cesionario debe ser un usuario del personal." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -311,119 +311,119 @@ msgstr "" "verificar las cuentas. El modelo User está diseñado para manejar casos de " "uso específicos para una gestión de usuarios mejorada." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "Correo electrónico" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Dirección de correo electrónico del usuario" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Número de teléfono" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Número de teléfono del usuario" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Nombre" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Apellido" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Imagen del perfil del usuario" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Se verifica" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Estado de verificación del usuario" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Está activo" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Deseleccione esta opción en lugar de eliminar cuentas" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Está suscrito" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Estado de suscripción del usuario al boletín" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Ficha de activación" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Atributos" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Usuario" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Usuarios" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Para hilos anónimos" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Hilo de conversación" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Hilos de chat" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "proporcionar usuario o email para hilo anónimo." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "El cesionario debe ser un usuario del personal." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Mensaje de chat" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Mensajes de chat" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Grupo" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Ficha pendiente" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Fichas pendientes" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Ficha en la lista negra" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Fichas en la lista negra" diff --git a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po index 8b1fa5eb..8952e39c 100644 --- a/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/fa_IR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,44 +16,44 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "" @@ -241,7 +241,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "" @@ -249,7 +249,7 @@ msgstr "" msgid "wishlist" msgstr "" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "" @@ -284,7 +284,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -295,119 +295,119 @@ msgid "" "for enhanced user management." msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po index bd0f2651..a80e9c04 100644 --- a/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Balance" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Commande" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Commandes" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Informations personnelles" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissions" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Important dates" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Informations complémentaires" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Vous ne pouvez pas sauter par-dessus votre tête !" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Fermer les fils sélectionnés" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Ouvrir les fils sélectionnés" @@ -251,7 +251,7 @@ msgstr "" "ordre chronologique inverse." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Groupes" @@ -259,7 +259,7 @@ msgstr "Groupes" msgid "wishlist" msgstr "Liste de souhaits" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -298,7 +298,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "Le destinataire doit être un utilisateur du personnel." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -318,121 +318,121 @@ msgstr "" "modèle User est conçu pour gérer des cas d'utilisation spécifiques en vue " "d'une gestion améliorée des utilisateurs." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "Courriel" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Adresse électronique de l'utilisateur" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Numéro de téléphone" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Numéro de téléphone de l'utilisateur" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Prénom" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Nom de famille" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Image du profil de l'utilisateur" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Est vérifié" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Statut de vérification de l'utilisateur" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Est actif" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Désélectionner cette option au lieu de supprimer des comptes" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Est abonné" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Statut de l'abonnement à la lettre d'information de l'utilisateur" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Jeton d'activation" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Attributs" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Utilisateur" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Utilisateurs" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Pour les fils de discussion anonymes" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Fil de discussion" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Fils de discussion" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "" "Indiquer l'utilisateur ou l'adresse électronique pour le fil de discussion " "anonyme." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "L'attributaire doit être un utilisateur du personnel." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Message de chat" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Messages de chat" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Groupe" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Jeton exceptionnel" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Jetons en circulation" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Jeton sur liste noire" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Jetons sur liste noire" diff --git a/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po index 0da0a07d..197945df 100644 --- a/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/he_IL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "מאזניים" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "הזמנה" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "הזמנות" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "מידע אישי" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "הרשאות" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "תאריכים חשובים" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "מידע נוסף" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "אי אפשר לקפוץ מעל הראש!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "סגור את השרשורים הנבחרים" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "פתח את השרשורים הנבחרים" @@ -242,7 +242,7 @@ msgid "" msgstr "המוצרים שהמשתמש צפה בהם לאחרונה (מקסימום 48), בסדר כרונולוגי הפוך." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "קבוצות" @@ -250,7 +250,7 @@ msgstr "קבוצות" msgid "wishlist" msgstr "רשימת משאלות" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "אוואטר" @@ -286,7 +286,7 @@ msgstr "אנו מחפשים את המפעיל שיענה לך, אנא המתן!" msgid "Assignee must be a staff user." msgstr "המקבל חייב להיות משתמש צוות." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -302,119 +302,119 @@ msgstr "" "עזר לניהול פריטים שנצפו לאחרונה והפעלה מבוססת אסימון לאימות חשבונות. המודל " "User נועד לטפל במקרי שימוש ספציפיים לניהול משתמשים משופר." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "דוא\"ל" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "כתובת הדוא\"ל של המשתמש" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "מספר טלפון" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "מספר הטלפון של המשתמש" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "שם פרטי" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "שם משפחה" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "תמונת פרופיל המשתמש" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "מאומת" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "סטטוס אימות המשתמש" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "פעיל" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "בטל את הבחירה במקום למחוק חשבונות" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "מנוי" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "סטטוס המנוי לניוזלטר של המשתמש" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "אסימון הפעלה" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "תכונות" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "משתמש" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "משתמשים" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "לשרשורים אנונימיים" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "שרשור צ'אט" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "שרשורי צ'אט" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "ציין משתמש או דוא\"ל עבור שרשור אנונימי." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "המקבל חייב להיות משתמש צוות." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "הודעת צ'אט" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "הודעות צ'אט" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "קבוצה" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "אסימון יוצא מן הכלל" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "אסימונים מצטיינים" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "אסימון ברשימה השחורה" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "אסימונים ברשימה השחורה" diff --git a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index 62c97512..5d358f84 100644 --- a/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,44 +16,44 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "" @@ -241,7 +241,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "" @@ -249,7 +249,7 @@ msgstr "" msgid "wishlist" msgstr "" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "" @@ -284,7 +284,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -295,119 +295,119 @@ msgid "" "for enhanced user management." msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po index 8b1fa5eb..8952e39c 100644 --- a/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/hr_HR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,44 +16,44 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "" @@ -241,7 +241,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "" @@ -249,7 +249,7 @@ msgstr "" msgid "wishlist" msgstr "" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "" @@ -284,7 +284,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -295,119 +295,119 @@ msgid "" "for enhanced user management." msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po index f5fe9fce..2d46f19f 100644 --- a/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/id_ID/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Keseimbangan" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Pesan" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Pesanan" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Informasi Pribadi" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Izin" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Tanggal-tanggal penting" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Informasi Tambahan" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Anda tidak bisa melompati kepala Anda!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Menutup utas yang dipilih" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Buka utas yang dipilih" @@ -247,7 +247,7 @@ msgstr "" "kronologis terbalik." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grup" @@ -255,7 +255,7 @@ msgstr "Grup" msgid "wishlist" msgstr "Daftar keinginan" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -292,7 +292,7 @@ msgstr "Kami sedang mencari operator untuk menjawab Anda, tunggu sebentar!" msgid "Assignee must be a staff user." msgstr "Penerima tugas haruslah seorang staf pengguna." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -311,119 +311,119 @@ msgstr "" "untuk menangani kasus penggunaan tertentu untuk meningkatkan manajemen " "pengguna." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "Email" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Alamat email pengguna" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Nomor Telepon" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Nomor telepon pengguna" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Nama depan" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Nama belakang" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Gambar profil pengguna" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Sudah diverifikasi" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Status verifikasi pengguna" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Aktif" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Batalkan pilihan ini alih-alih menghapus akun" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Sudah berlangganan" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Status berlangganan buletin pengguna" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Token aktivasi" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Atribut" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Pengguna" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Pengguna" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Untuk utas anonim" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Utas obrolan" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Utas obrolan" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "menyediakan pengguna atau email untuk utas anonim." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "Penerima tugas haruslah seorang staf pengguna." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Pesan obrolan" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Pesan obrolan" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Kelompok" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Token yang luar biasa" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Token yang beredar" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token yang masuk daftar hitam" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Token yang masuk daftar hitam" diff --git a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po index e19d9672..5c676c0f 100644 --- a/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Equilibrio" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Ordine" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Ordini" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Informazioni personali" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permessi" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Date importanti" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Ulteriori informazioni" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Non si può saltare sopra la testa!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Chiudere le filettature selezionate" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Aprire le discussioni selezionate" @@ -248,7 +248,7 @@ msgstr "" "ordine cronologico inverso." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Gruppi" @@ -256,7 +256,7 @@ msgstr "Gruppi" msgid "wishlist" msgstr "Lista dei desideri" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -294,7 +294,7 @@ msgstr "Stiamo già cercando l'operatore per rispondervi, restate in attesa!" msgid "Assignee must be a staff user." msgstr "Il destinatario deve essere un utente del personale." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -313,119 +313,119 @@ msgstr "" "degli account. Il modello User è progettato per gestire casi d'uso specifici " "per una migliore gestione degli utenti." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "Email" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Indirizzo e-mail dell'utente" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Numero di telefono" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Numero di telefono dell'utente" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Nome" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Cognome" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Immagine del profilo utente" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "È verificato" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Stato di verifica dell'utente" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "È attivo" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Deselezionare questa opzione invece di eliminare gli account" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "È iscritto" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Stato di iscrizione alla newsletter dell'utente" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Token di attivazione" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Attributi" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Utente" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Utenti" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Per le discussioni anonime" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Filo della chat" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Filo conduttore della chat" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "fornire l'utente o l'e-mail per il thread anonimo." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "L'assegnatario deve essere un utente del personale." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Messaggio di chat" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Messaggi di chat" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Gruppo" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Gettone eccezionale" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Gettoni in sospeso" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token in lista nera" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Gettoni nella lista nera" diff --git a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po index 7e5e355c..99f9089f 100644 --- a/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "バランス" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "オーダー" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "受注状況" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "個人情報" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "アクセス許可" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "重要な日程" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "追加情報" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "頭上を飛び越えることはできない!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "選択したスレッドを閉じる" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "選択したスレッドを開く" @@ -244,7 +244,7 @@ msgid "" msgstr "このユーザーが最近閲覧した商品(最大48件)を逆順に表示します。" #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "グループ" @@ -252,7 +252,7 @@ msgstr "グループ" msgid "wishlist" msgstr "ウィッシュリスト" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "アバター" @@ -289,7 +289,7 @@ msgstr "今、オペレーターを探しているところです!" msgid "Assignee must be a staff user." msgstr "担当者はスタッフユーザーでなければなりません。" -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -306,119 +306,119 @@ msgstr "" "するためのトークンベースのアクティベーションも提供します。Userモデルは、ユー" "ザ管理を強化するための特定のユースケースを扱うように設計されています。" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "電子メール" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "ユーザーのメールアドレス" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "電話番号" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "ユーザー電話番号" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "名前" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "姓" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "ユーザープロフィール画像" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "確認済み" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "ユーザーの認証状況" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "アクティブ" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "アカウントを削除する代わりに、この選択を解除する" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "購読中" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "ユーザーのニュースレター購読状況" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "アクティベーション・トークン" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "属性" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "ユーザー" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "ユーザー" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "匿名スレッドの場合" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "チャットスレッド" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "チャットスレッド" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "匿名スレッドの場合は、ユーザーまたは電子メールを入力してください。" -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "担当者はスタッフユーザーでなければならない。" -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "チャットメッセージ" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "チャットメッセージ" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "グループ" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "卓越したトークン" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "トークン残高" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "ブラックリストトークン" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "ブラックリストに載ったトークン" diff --git a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index 62c97512..5d358f84 100644 --- a/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -16,44 +16,44 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "" @@ -241,7 +241,7 @@ msgid "" msgstr "" #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "" @@ -249,7 +249,7 @@ msgstr "" msgid "wishlist" msgstr "" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "" @@ -284,7 +284,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -295,119 +295,119 @@ msgid "" "for enhanced user management." msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "" -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "" -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "" diff --git a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po index 335fcff1..e6283369 100644 --- a/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ko_KR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "잔액" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "주문" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "주문" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "개인 정보" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "권한" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "중요한 날짜" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "추가 정보" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "머리 위로 점프할 수 없습니다!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "선택한 스레드 닫기" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "선택한 스레드 열기" @@ -241,7 +241,7 @@ msgid "" msgstr "이 사용자가 가장 최근에 본 제품(최대 48개)을 시간 역순으로 표시합니다." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "그룹" @@ -249,7 +249,7 @@ msgstr "그룹" msgid "wishlist" msgstr "위시리스트" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "아바타" @@ -286,7 +286,7 @@ msgstr "이미 응답할 교환원을 찾고 있으니 잠시만 기다려주세 msgid "Assignee must be a staff user." msgstr "양수인은 직원 사용자이어야 합니다." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -303,119 +303,119 @@ msgstr "" "화도 제공합니다. 사용자 모델은 향상된 사용자 관리를 위한 특정 사용 사례를 처" "리하도록 설계되었습니다." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "이메일" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "사용자의 이메일 주소" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "전화 번호" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "사용자 전화번호" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "이름" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "성" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "사용자 프로필 이미지" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "확인됨" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "사용자 인증 상태" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "활성화됨" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "계정을 삭제하는 대신 이 옵션을 선택 해제합니다." -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "구독 중" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "사용자의 뉴스레터 구독 상태" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "활성화 토큰" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "속성" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "사용자" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "사용자" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "익명 스레드의 경우" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "채팅 스레드" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "채팅 스레드" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "익명 스레드에 사용자 또는 이메일을 입력합니다." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "양수인은 직원 사용자여야 합니다." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "채팅 메시지" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "채팅 메시지" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "그룹" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "뛰어난 토큰" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "우수 토큰" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "블랙리스트에 오른 토큰" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "블랙리스트에 오른 토큰" diff --git a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po index 1a735492..1a739c5e 100644 --- a/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Saldo" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Bestel" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Bestellingen" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Persoonlijke info" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Rechten" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Belangrijke data" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Extra info" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Je kunt niet over je hoofd springen!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Geselecteerde threads sluiten" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Geselecteerde draden openen" @@ -248,7 +248,7 @@ msgstr "" "omgekeerd-chronologische volgorde." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Groepen" @@ -256,7 +256,7 @@ msgstr "Groepen" msgid "wishlist" msgstr "Verlanglijst" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -294,7 +294,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "De toegewezen gebruiker moet een personeelsgebruiker zijn." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -313,119 +313,119 @@ msgstr "" "model is ontworpen voor specifieke gebruikssituaties voor verbeterd " "gebruikersbeheer." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "E-mailadres gebruiker" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Telefoonnummer" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Telefoonnummer gebruiker" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Voornaam" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Achternaam" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Afbeelding gebruikersprofiel" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Is geverifieerd" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Verificatiestatus van de gebruiker" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Is actief" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Deselecteer dit in plaats van accounts te verwijderen" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Is geabonneerd" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Inschrijvingsstatus nieuwsbrief gebruiker" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Activeringstoken" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Attributen" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Gebruiker" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Gebruikers" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Voor anonieme threads" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Draadje chatten" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Gespreksonderwerpen" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "gebruiker of e-mail opgeven voor anonieme thread." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "De toegewezen gebruiker moet een personeelsgebruiker zijn." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Chatbericht" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Chatberichten" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Groep" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Uitstekende penning" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Uitstaande tokens" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token op zwarte lijst" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Tokens op de zwarte lijst" diff --git a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po index 14bbf135..24555923 100644 --- a/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Balanse" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Bestilling" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Bestillinger" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Personlig informasjon" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Tillatelser" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Viktige datoer" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Ytterligere informasjon" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Du kan ikke hoppe over hodet!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Lukk utvalgte tråder" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Åpne utvalgte tråder" @@ -246,7 +246,7 @@ msgstr "" "kronologisk rekkefølge." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grupper" @@ -254,7 +254,7 @@ msgstr "Grupper" msgid "wishlist" msgstr "Ønskeliste" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -290,7 +290,7 @@ msgstr "Vi leter etter operatøren som kan svare deg allerede, vent litt!" msgid "Assignee must be a staff user." msgstr "Mottaker må være en ansatt bruker." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -308,119 +308,119 @@ msgstr "" "aktivering for å verifisere kontoer. User-modellen er utformet for å " "håndtere spesifikke brukstilfeller for forbedret brukeradministrasjon." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-post" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Brukerens e-postadresse" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Telefonnummer" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Brukerens telefonnummer" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Fornavn" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Etternavn" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Bilde av brukerprofil" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Er verifisert" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Brukerens bekreftelsesstatus" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Er aktiv" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Fjern dette valget i stedet for å slette kontoer" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Er abonnert" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Status for brukerens abonnement på nyhetsbrev" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Aktiveringstoken" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Egenskaper" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Bruker" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Brukere" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "For anonyme tråder" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Chat-tråd" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Chat-tråder" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "oppgi bruker eller e-post for anonym tråd." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "mottakeren må være en personalbruker." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Chat-melding" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Chat-meldinger" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Gruppe" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Enestående symbol" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Outstanding tokens" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Svartelistet token" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Svartelistede tokens" diff --git a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po index 6ab638cc..921ab4d8 100644 --- a/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Równowaga" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Zamówienie" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Zamówienia" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Informacje osobiste" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Uprawnienia" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Ważne daty" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Dodatkowe informacje" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Nie możesz skakać na główkę!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Zamykanie wybranych wątków" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Otwieranie wybranych wątków" @@ -248,7 +248,7 @@ msgstr "" "kolejności odwrotnej do chronologicznej." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grupy" @@ -256,7 +256,7 @@ msgstr "Grupy" msgid "wishlist" msgstr "Lista życzeń" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Awatar" @@ -293,7 +293,7 @@ msgstr "Szukamy operatora, który już ci odpowie, zaczekaj!" msgid "Assignee must be a staff user." msgstr "Odbiorca musi być użytkownikiem personelu." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -312,119 +312,119 @@ msgstr "" "zaprojektowany do obsługi określonych przypadków użycia w celu ulepszonego " "zarządzania użytkownikami." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Adres e-mail użytkownika" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Numer telefonu" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Numer telefonu użytkownika" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Imię" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Nazwisko" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Obraz profilu użytkownika" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Czy zweryfikowano" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Status weryfikacji użytkownika" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Jest aktywny" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Odznacz to zamiast usuwać konta" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Jest subskrybowany" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Status subskrypcji newslettera użytkownika" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Token aktywacyjny" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Atrybuty" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Użytkownik" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Użytkownicy" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Dla wątków anonimowych" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Wątek czatu" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Wątki czatu" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "Podaj użytkownika lub adres e-mail dla anonimowego wątku." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "cesjonariusz musi być użytkownikiem personelu." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Wiadomość na czacie" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Wiadomości czatu" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Grupa" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Wyjątkowy token" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Zaległe tokeny" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token na czarnej liście" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Tokeny znajdujące się na czarnej liście" diff --git a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po index e2078f62..075070df 100644 --- a/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Equilíbrio" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Pedido" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Pedidos" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Informações pessoais" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissões" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Datas importantes" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Informações adicionais" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Você não pode pular sobre sua cabeça!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Fechar as linhas selecionadas" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Abrir linhas selecionadas" @@ -245,7 +245,7 @@ msgstr "" "ordem cronológica inversa." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grupos" @@ -253,7 +253,7 @@ msgstr "Grupos" msgid "wishlist" msgstr "Lista de desejos" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -289,7 +289,7 @@ msgstr "Estamos procurando o operador para lhe responder, aguarde!" msgid "Assignee must be a staff user." msgstr "O responsável deve ser um usuário da equipe." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -308,119 +308,119 @@ msgstr "" "modelo User foi projetado para lidar com casos de uso específicos para o " "gerenciamento aprimorado de usuários." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Endereço de e-mail do usuário" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Número de telefone" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Número de telefone do usuário" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Primeiro nome" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Sobrenome" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Imagem do perfil do usuário" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "É verificado" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Status de verificação do usuário" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Está ativo" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Desmarque essa opção em vez de excluir contas" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Está inscrito" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Status da assinatura do boletim informativo do usuário" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Token de ativação" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Atributos" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Usuário" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Usuários" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Para tópicos anônimos" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Linha de bate-papo" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Tópicos de bate-papo" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "forneça o usuário ou e-mail para o tópico anônimo." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "O responsável deve ser um usuário da equipe." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Mensagem de bate-papo" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Mensagens de bate-papo" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Grupo" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Token excepcional" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Tokens pendentes" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token na lista negra" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Tokens na lista negra" diff --git a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po index ba7f6c17..fc87809d 100644 --- a/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Echilibru" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Comandă" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Ordine" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Informații personale" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permisiuni" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Date importante" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Informații suplimentare" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Nu poți sări peste capul tău!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Închideți firele selectate" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Deschideți firele selectate" @@ -249,7 +249,7 @@ msgstr "" "în ordine cronologică inversă." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grupuri" @@ -257,7 +257,7 @@ msgstr "Grupuri" msgid "wishlist" msgstr "Lista dorințelor" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -294,7 +294,7 @@ msgstr "Căutăm operatorul care să vă răspundă deja, așteptați!" msgid "Assignee must be a staff user." msgstr "Destinatarul trebuie să fie un utilizator personal." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -313,119 +313,119 @@ msgstr "" "verificarea conturilor. Modelul User este conceput pentru a gestiona cazuri " "de utilizare specifice pentru gestionarea îmbunătățită a utilizatorilor." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-mail" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Adresa de e-mail a utilizatorului" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Număr de telefon" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Numărul de telefon al utilizatorului" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Numele și prenumele" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Numele de familie" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Imagine profil utilizator" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Este verificat" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Statutul de verificare al utilizatorului" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Este activ" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Deselectați acest lucru în loc să ștergeți conturile" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Este abonat" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Starea abonării utilizatorului la buletinul informativ" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Jeton de activare" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Atribute" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Utilizator" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Utilizatori" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Pentru subiecte anonime" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Fir de chat" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Fire de chat" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "furnizați utilizatorul sau adresa de e-mail pentru firul anonim." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "cesionarul trebuie să fie un utilizator personal." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Mesaj de chat" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Mesaje de chat" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Grup" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Simbol excepțional" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Jetoane restante" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token pe lista neagră" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Jetoane pe lista neagră" diff --git a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po index d9adc452..70feb4f0 100644 --- a/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Баланс" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Заказ" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Заказы" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Личная информация" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Разрешения" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Важные даты" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Дополнительная информация" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Нельзя прыгать выше головы!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Закрыть выбранные нити" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Открыть выбранные нити" @@ -248,7 +248,7 @@ msgstr "" "48), в обратном хронологическом порядке." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Группы" @@ -256,7 +256,7 @@ msgstr "Группы" msgid "wishlist" msgstr "Список желаний" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Аватар" @@ -292,7 +292,7 @@ msgstr "Мы ищем оператора, чтобы ответить вам, д msgid "Assignee must be a staff user." msgstr "Получатель должен быть штатным пользователем." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -311,119 +311,119 @@ msgstr "" "Модель User предназначена для обработки конкретных случаев использования для " "расширенного управления пользователями." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "Электронная почта" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Адрес электронной почты пользователя" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Номер телефона" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Номер телефона пользователя" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Имя" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Фамилия" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Изображение профиля пользователя" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Проверено" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Статус верификации пользователя" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Активен" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Снимите этот флажок вместо удаления учетных записей" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Подписан" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Статус подписки пользователя на рассылку новостей" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Активационный токен" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Атрибуты" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Пользователь" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Пользователи" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Для анонимных потоков" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Нить чата" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Нити чата" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "укажите пользователя или e-mail для анонимной темы." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "Назначенный должен быть штатным пользователем." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Сообщение в чате" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Сообщения в чате" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Группа" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Выдающийся жетон" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Выпущенные токены" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Токен в черном списке" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Чёрный список токенов" diff --git a/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po b/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po index 075210b3..6d2c1c1c 100644 --- a/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/sv_SE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Balans" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Beställning" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Beställningar" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Personlig information" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Behörigheter" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Viktiga datum" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Ytterligare information" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Du kan inte hoppa över huvudet!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Stäng valda trådar" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Öppna valda trådar" @@ -247,7 +247,7 @@ msgstr "" "kronologisk ordning." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Grupper" @@ -255,7 +255,7 @@ msgstr "Grupper" msgid "wishlist" msgstr "Önskelista" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -291,7 +291,7 @@ msgstr "Vi söker efter en operatör som kan svara dig redan nu, så håll ut!" msgid "Assignee must be a staff user." msgstr "Mottagaren måste vara en personalanvändare." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -309,119 +309,119 @@ msgstr "" "aktivering för att verifiera konton. User-modellen är utformad för att " "hantera specifika användningsfall för förbättrad användarhantering." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-post" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Användarens e-postadress" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Telefonnummer" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Användarens telefonnummer" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Förnamn" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Efternamn" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Bild på användarprofil" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Är verifierad" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Användarens verifieringsstatus" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Är aktiv" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Avmarkera detta istället för att radera konton" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Är prenumererad" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Användarens status för prenumeration på nyhetsbrev" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Aktiveringstoken" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Attribut" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Användare" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Användare" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "För anonyma trådar" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Chattråd" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Chatt-trådar" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "ange användare eller e-post för anonym tråd." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "mottagaren måste vara en personalanvändare." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Chattmeddelande" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Chattmeddelanden" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Grupp" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Utestående symbol" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Utestående polletter" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Svartlistad token" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Svartlistade tokens" diff --git a/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po b/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po index eff3a98b..7d1f87de 100644 --- a/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/th_TH/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "สมดุล" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "คำสั่ง" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "คำสั่ง" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "ข้อมูลส่วนตัว" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "สิทธิ์การใช้งาน" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "วันที่สำคัญ" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "ข้อมูลเพิ่มเติม" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "คุณไม่สามารถกระโดดข้ามหัวตัวเองได้!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "ปิดกระทู้ที่เลือก" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "เปิดกระทู้ที่เลือก" @@ -242,7 +242,7 @@ msgid "" msgstr "สินค้าที่ผู้ใช้รายนี้ดูล่าสุด (สูงสุด 48 รายการ) เรียงตามลำดับเวลาล่าสุด" #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "กลุ่ม" @@ -250,7 +250,7 @@ msgstr "กลุ่ม" msgid "wishlist" msgstr "รายการสิ่งที่ต้องการ" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "อวตาร" @@ -285,7 +285,7 @@ msgstr "เรากำลังค้นหาผู้ดำเนินกา msgid "Assignee must be a staff user." msgstr "ผู้รับมอบหมายต้องเป็นผู้ใช้ที่เป็นพนักงานเท่านั้น" -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -302,119 +302,119 @@ msgstr "" "นอกจากนี้ยังมียูทิลิตี้สำหรับจัดการรายการที่ดูล่าสุดและการเปิดใช้งานแบบใช้โทเค็นเพื่อยืนยันบัญชี " "โมเดลผู้ใช้ได้รับการออกแบบมาเพื่อจัดการกรณีการใช้งานเฉพาะสำหรับการจัดการผู้ใช้ที่ดียิ่งขึ้น" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "อีเมล" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "ที่อยู่อีเมลของผู้ใช้" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "หมายเลขโทรศัพท์" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "หมายเลขโทรศัพท์ผู้ใช้" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "ชื่อ" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "นามสกุล" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "รูปภาพโปรไฟล์ผู้ใช้" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "ได้รับการยืนยันแล้ว" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "สถานะการยืนยันของผู้ใช้" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "กำลังใช้งานอยู่" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "ยกเลิกการเลือกสิ่งนี้แทนการลบบัญชี" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "สมัครสมาชิกแล้ว" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "สถานะการสมัครสมาชิกจดหมายข่าวของผู้ใช้" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "โทเค็นการเปิดใช้งาน" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "คุณลักษณะ" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "ผู้ใช้" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "ผู้ใช้" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "สำหรับกระทู้ที่ไม่ระบุชื่อ" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "หัวข้อสนทนา" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "หัวข้อสนทนา" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "ให้ผู้ใช้หรืออีเมลสำหรับกระทู้ไม่ระบุตัวตน" -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "ผู้รับมอบหมายต้องเป็นผู้ใช้ที่เป็นพนักงานเท่านั้น" -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "ข้อความแชท" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "ข้อความแชท" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "กลุ่ม" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "โทเค็นที่ยังไม่ได้ใช้" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "โทเค็นที่ยังไม่ได้ใช้" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" diff --git a/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po b/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po index 086f5f47..90286381 100644 --- a/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/tr_TR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Denge" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Sipariş" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Siparişler" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Kişisel Bilgiler" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "İzinler" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Önemli tarihler" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Ek Bilgi" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Başının üzerinden atlayamazsın!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Seçili konuları kapatın" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Seçili konuları açın" @@ -245,7 +245,7 @@ msgstr "" "sırayla." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Gruplar" @@ -253,7 +253,7 @@ msgstr "Gruplar" msgid "wishlist" msgstr "İstek Listesi" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -289,7 +289,7 @@ msgstr "Size cevap verecek operatörü arıyoruz, bekleyin!" msgid "Assignee must be a staff user." msgstr "Atanan kişi bir personel kullanıcısı olmalıdır." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -308,119 +308,119 @@ msgstr "" "kullanıcı yönetimi için belirli kullanım durumlarını ele almak üzere " "tasarlanmıştır." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "E-posta" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Kullanıcının e-posta adresi" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Telefon Numarası" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Kullanıcı telefon numarası" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "İlk isim" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Soyadı" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Kullanıcı profili resmi" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Doğrulandı" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Kullanıcının doğrulama durumu" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Aktif" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Hesapları silmek yerine bunun seçimini kaldırın" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Abone olundu" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Kullanıcının haber bülteni abonelik durumu" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Etkinleştirme belirteci" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Nitelikler" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Kullanıcı" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Kullanıcılar" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Anonim konular için" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Sohbet başlığı" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Sohbet konuları" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "anonim konu için kullanıcı veya e-posta sağlayın." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "atanan kişi bir personel kullanıcısı olmalıdır." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Sohbet mesajı" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Sohbet mesajları" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Grup" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Olağanüstü belirteç" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Ödenmemiş jetonlar" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Kara listeye alınmış belirteç" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Kara listeye alınmış belirteçler" diff --git a/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po b/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po index 6af5f35c..057dff60 100644 --- a/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/vi_VN/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "Cân bằng" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "Đặt hàng" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Đơn hàng" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "Thông tin cá nhân" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Quyền" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "Các ngày quan trọng" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "Thông tin bổ sung" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "Bạn không thể nhảy qua đầu mình!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "Đóng các chủ đề đã chọn" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "Mở các chủ đề đã chọn" @@ -247,7 +247,7 @@ msgstr "" "thời gian ngược." #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "Nhóm" @@ -255,7 +255,7 @@ msgstr "Nhóm" msgid "wishlist" msgstr "Danh sách mong muốn" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" @@ -294,7 +294,7 @@ msgstr "" msgid "Assignee must be a staff user." msgstr "Người được giao nhiệm vụ phải là người dùng nhân viên." -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -312,120 +312,120 @@ msgstr "" "minh tài khoản. Mô hình Người dùng được thiết kế để xử lý các trường hợp sử " "dụng cụ thể nhằm nâng cao quản lý người dùng." -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "Email" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Địa chỉ email của người dùng" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Số điện thoại" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Số điện thoại của người dùng" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Họ" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Họ" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Hình ảnh hồ sơ người dùng" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Đã được xác minh" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Trạng thái xác minh của người dùng" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Đang hoạt động" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Hủy chọn tùy chọn này thay vì xóa tài khoản." -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Đã đăng ký" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "Tình trạng đăng ký bản tin của người dùng" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "Mã kích hoạt" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "Thuộc tính" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "Người dùng" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "Người dùng" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "Đối với các chủ đề ẩn danh" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "Dòng trò chuyện" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "Các chuỗi trò chuyện" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "" "Cung cấp tên người dùng hoặc địa chỉ email cho chuỗi thảo luận ẩn danh." -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "Người được giao nhiệm vụ phải là người dùng nhân viên." -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "Tin nhắn trò chuyện" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "Tin nhắn trò chuyện" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "Nhóm" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "Token xuất sắc" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "Token xuất sắc" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "Token bị đưa vào danh sách đen" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "Các token bị đưa vào danh sách đen" diff --git a/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po b/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po index d90acf21..85587672 100644 --- a/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -13,44 +13,44 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: engine/vibes_auth/admin.py:50 engine/vibes_auth/admin.py:51 +#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52 #: engine/vibes_auth/graphene/object_types.py:46 msgid "balance" msgstr "平衡" -#: engine/vibes_auth/admin.py:59 +#: engine/vibes_auth/admin.py:60 msgid "order" msgstr "订购" -#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44 +#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "订单" -#: engine/vibes_auth/admin.py:70 +#: engine/vibes_auth/admin.py:71 msgid "personal info" msgstr "个人信息" -#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43 +#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "权限" -#: engine/vibes_auth/admin.py:87 +#: engine/vibes_auth/admin.py:88 msgid "important dates" msgstr "重要日期" -#: engine/vibes_auth/admin.py:88 +#: engine/vibes_auth/admin.py:89 msgid "additional info" msgstr "其他信息" -#: engine/vibes_auth/admin.py:125 +#: engine/vibes_auth/admin.py:128 msgid "You cannot jump over your head!" msgstr "你不能跳过你的头!" -#: engine/vibes_auth/admin.py:157 +#: engine/vibes_auth/admin.py:160 msgid "Close selected threads" msgstr "关闭选定的线程" -#: engine/vibes_auth/admin.py:161 +#: engine/vibes_auth/admin.py:164 msgid "Open selected threads" msgstr "打开选定的线程" @@ -240,7 +240,7 @@ msgid "" msgstr "该用户最近查看过的产品(最多 48 个),按倒序排列。" #: engine/vibes_auth/graphene/object_types.py:42 -#: engine/vibes_auth/models.py:176 +#: engine/vibes_auth/models.py:185 msgid "groups" msgstr "组别" @@ -248,7 +248,7 @@ msgstr "组别" msgid "wishlist" msgstr "愿望清单" -#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68 +#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:70 msgid "avatar" msgstr "阿凡达" @@ -283,7 +283,7 @@ msgstr "我们正在寻找接线员,请稍候!" msgid "Assignee must be a staff user." msgstr "受让人必须是工作人员用户。" -#: engine/vibes_auth/models.py:40 +#: engine/vibes_auth/models.py:42 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " @@ -298,119 +298,119 @@ msgstr "" "它还为管理最近查看的项目和基于令牌的激活提供了实用工具,以便验证账户。用户模" "型旨在处理增强用户管理的特定用例。" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "email" msgstr "电子邮件" -#: engine/vibes_auth/models.py:51 +#: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "用户电子邮件地址" -#: engine/vibes_auth/models.py:53 +#: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "电话号码" -#: engine/vibes_auth/models.py:58 +#: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "用户电话号码" -#: engine/vibes_auth/models.py:64 +#: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "姓名" -#: engine/vibes_auth/models.py:65 +#: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "姓氏" -#: engine/vibes_auth/models.py:71 +#: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "用户配置文件图像" -#: engine/vibes_auth/models.py:76 +#: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "已核实" -#: engine/vibes_auth/models.py:77 +#: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "用户验证状态" -#: engine/vibes_auth/models.py:80 +#: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "处于活动状态" -#: engine/vibes_auth/models.py:82 +#: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "取消选择此选项,而不是删除账户" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "已订阅" -#: engine/vibes_auth/models.py:85 +#: engine/vibes_auth/models.py:87 msgid "user's newsletter subscription status" msgstr "用户的通讯订阅状态" -#: engine/vibes_auth/models.py:88 +#: engine/vibes_auth/models.py:90 msgid "activation token" msgstr "激活令牌" -#: engine/vibes_auth/models.py:92 +#: engine/vibes_auth/models.py:94 msgid "attributes" msgstr "属性" -#: engine/vibes_auth/models.py:124 +#: engine/vibes_auth/models.py:133 msgid "user" msgstr "用户" -#: engine/vibes_auth/models.py:125 +#: engine/vibes_auth/models.py:134 msgid "users" msgstr "用户" -#: engine/vibes_auth/models.py:130 +#: engine/vibes_auth/models.py:139 msgid "For anonymous threads" msgstr "匿名主题" -#: engine/vibes_auth/models.py:144 +#: engine/vibes_auth/models.py:153 msgid "Chat thread" msgstr "聊天主题" -#: engine/vibes_auth/models.py:145 +#: engine/vibes_auth/models.py:154 msgid "Chat threads" msgstr "聊天主题" -#: engine/vibes_auth/models.py:150 +#: engine/vibes_auth/models.py:159 msgid "provide user or email for anonymous thread." msgstr "为匿名主题提供用户或电子邮件。" -#: engine/vibes_auth/models.py:152 +#: engine/vibes_auth/models.py:161 msgid "assignee must be a staff user." msgstr "受让人必须是工作人员用户。" -#: engine/vibes_auth/models.py:168 +#: engine/vibes_auth/models.py:177 msgid "Chat message" msgstr "聊天信息" -#: engine/vibes_auth/models.py:169 +#: engine/vibes_auth/models.py:178 msgid "Chat messages" msgstr "聊天信息" -#: engine/vibes_auth/models.py:175 +#: engine/vibes_auth/models.py:184 msgid "group" msgstr "组别" -#: engine/vibes_auth/models.py:182 +#: engine/vibes_auth/models.py:191 msgid "outstanding token" msgstr "出色的代币" -#: engine/vibes_auth/models.py:183 +#: engine/vibes_auth/models.py:192 msgid "outstanding tokens" msgstr "未兑代币" -#: engine/vibes_auth/models.py:189 +#: engine/vibes_auth/models.py:198 msgid "blacklisted token" msgstr "黑名单令牌" -#: engine/vibes_auth/models.py:190 +#: engine/vibes_auth/models.py:199 msgid "blacklisted tokens" msgstr "黑名单令牌" diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.mo b/evibes/locale/ar_AR/LC_MESSAGES/django.mo index 56d733535f0f4729622f474736f0411916e020af..0ee529c79b4700cf1a6efd4109cb56510d14e712 100644 GIT binary patch delta 1075 zcmZY8Pe>GD7{~F)cH1?z%`~mm+_iP>kFDB5g@(h6+w{d5J6+7(2EcZSV0Ia zg)AMrL{X5Jp|CE220^#I?Gi)~1YNoXVVAzYnbC_cyz`m&oq6Yd-uHRuaoI0>-#X$| zqZFwJsn46tCa@6WLK%yj&9s=6u#CP| z%n93`O-CQ6J3!k7Se2MzND(V9tqxKg(NxOz)nBZlNKaU#ca3OZPhDp4E zTF7lo*;zA>n=Bm_)C4QR1GBf-OZyWx<9BSuUy*;7FEn*}T3dQ=IOPByqFqGo;UsFx zr^vS0Gt~PlIEAax^HfLpUN`QfKZ94vLmuBTaFKWq&|k`#jbj=2V>M@8nuAWs6gvDioa2TWV|Ec zF)W}uCQw^-1*dTq72rB5fDz8BPFV@{!AY#3i(28|$kt9Kxp zRP-~ln_DHjT#NM%57Xwy2$GUSt#Pxkv|y8!aq?$5KOH~QmUI^S=iK?5e!2ZlS4-nT R<6&d5{=Tu~uMJ*~{Rho-VoLx3 delta 1054 zcmZY8Pe@cz6vy#1%`|E=sZDA5uW_u=nexvNDWbSZ&^8(xf@1CjMO{cyJ9)GScM^n# zSm45iSkPj~g)7C4;HpKmN{ArTZQw?TzQ6abZoF{kbMKqE@1A?ko&4b2LGK_DSu|RX zUQPcHGV9hj%m*zKF&n*Nmc{GL-xQmb;xd-w24-*v@8U6*UVienu*I8FE z_w2Fz!4s_DixIqvFR%<>qc(hxdcivC1z+5J3m-Dy!FD`Bt#4tG)^+hg?ADJuz*8hf zo4}-bX0I6N#Y^ssk66Y0GZx|=#_*f-C+b8;sEz)*dFWa&k70`E6{t*hVgY)njptG8 zmvD&vZPoqY#Q6^|^E{d`8>1X?++^hx;ostUs?O{YcHm8%!&Y2$?qiO5=uS|Y2S|)I ziVAE7Rhk9#6wwL;rFsKdYunh2zui1RVU>|qBo-S$oqQZsisv|mb2y2I$Wj|f2Z6mr z1^Nk9f?aIGA8GR6$Dp`ANX;|UM$@RvIFE{a4He*5Y{7k00H>%+Skw^AYf%|$#$oJ5 z1-6O`G{#NU9V=w#=-U1FpYt4zv>(wC*{LMk)&=xWLWSwC;L-~9?# nH8nEl@8B1;0CmK(#>xC#H=&A^%4Z`T@%(h@Y+3$Kx-a}69z|AS diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.po b/evibes/locale/ar_AR/LC_MESSAGES/django.po index 65c42fd6..d94ab378 100644 --- a/evibes/locale/ar_AR/LC_MESSAGES/django.po +++ b/evibes/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -239,62 +239,66 @@ msgstr "" "## الإصدار\n" "إصدار API الحالي: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "قائمة الطعام" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "موقعي" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "لوحة التحكم" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "الصحة" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "التكوين" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "المهام الدورية" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "لوحة المهام" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "الدعم" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "قائمة الطعام" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "لوحة التحكم" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "التكوين" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "المهام الدورية" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "لوحة المهام" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "روابط سريعة" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "المستخدمون" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "المجموعات" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "الطلبات" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "المنتجات" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "الفئات" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "العلامات التجارية" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "المدونات" diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.mo b/evibes/locale/cs_CZ/LC_MESSAGES/django.mo index fcedc394fb030a25e13224db98ac711b1b028c76..09f709fbfea8235b170e9b79fe0d60db09b55746 100644 GIT binary patch delta 1078 zcmZA0KWGzS7{~D^O>C{UF*dd~O>M6KG-_k5IHXmSB1TXGQV|6I6>5iCQLtUA!-0Z> zgCL=ZIEW$?5i%Hs=wLy`!O7c21*eXJIye-+zq{AP7oPjvdw1{qKJTAKn&)9cJeF-?6jX_msL*nzJxj{y$gAKZXBE-g5W&A1;Mv4nJI z<*4r4Dfhv7%=BSlZXzG8>~I`>~h$2x<*apoYAM zEQ>uveP6|sSaxqFDucWfJ^E`=Cpm=0=%W^XjvBv? zcUj*y+z;~3zgS3rQI**oe@7IbP{Do5XLI(WDLDE(YDZ;pvv%|_g=2UVA0boOOVol{ zR3V!#-$q|M+vDLnenJiWiW>L}btl4!AWxts=yQ3-<##Yc{}c}4GE%c0p~jz}PVyX8 zaD?O0{52luuZq)jsE{etzv&99qps;!bg{XM%|$=*oVJy6x*7E z!XKjMUqX$4(d?Ve@~}dOc7En8ZV3vCV~BoTpbp~yrb%@4Y8tO%_2Q^_6?Tj0By^GM zhy>9~)DSAvrU_j>HN7s4M4J-V3b2RJ?sb$pKAo6Oi+g8jLQSutUcbxMwE8_<-`z#3 k8^f+H{y6RZvL$)YHSZ?arFpqjBooa&i0#I5X|JQ;AMjRG1ONa4 diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.po b/evibes/locale/cs_CZ/LC_MESSAGES/django.po index 49a56cc3..51e910ae 100644 --- a/evibes/locale/cs_CZ/LC_MESSAGES/django.po +++ b/evibes/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Verze\n" "Aktuální verze API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Nabídka" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Moje stránky" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Přístrojová deska" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Zdraví" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfigurace" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Pravidelné úkoly" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Taskboard" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Podpora" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Nabídka" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Přístrojová deska" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfigurace" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Pravidelné úkoly" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Taskboard" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Rychlé odkazy" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Uživatelé" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Skupiny" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Objednávky" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produkty" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategorie" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Značky" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposty" diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.mo b/evibes/locale/da_DK/LC_MESSAGES/django.mo index 8988ba07315009c3a364399faa30e64bdf7e1760..c2ed534db9aef7a93318aa7092293f25e201abda 100644 GIT binary patch delta 1079 zcmZA0Pe>GD7{~Ev-A&83(fqTuT07HfX{D}$m{|~|1RnOH1d;TIYN0jkVjU`CKrfzz z5c5zGL?B(ftdR&2L5JuP3mrqcsfW5L;i>O$X1esU?|$Ze=Y8jW-shd!9(+0Euhk{y zjnYFsM12!88^n${f0X`&*;uvNX{@I`@0iu%TTJ09wqqGvaR+PAe-1S-&mXbdHLSv0 zsEyo3$Ih7fT)1@1q83;RZkWBpX4;=|H~z%ExEZ-McRp6{Yj5fO;gT(Qgmw=qhoh(^ z7m&2rE7bTUyo4*!eWxxQm%?52XYeZL(26hE>lE>_sJWRi^lnsYhBD>{$-hEJ3mwzQ z99u-?U=` z@|Upze<44s@WSM0Q5k4M1=xpd-iA@*#!zp|W7Pc_RPLXn0(_6!&?nS$zM%qH^SMxJ zHc`x2Ciz#V4sc3KeC56R=}yM5O||soJ%UNWq_=DtI>DWF8kP z`WTM}SK*&KSB^J#cG6Hj^mb@JO76dMoC|&OT~vL#*-|<&kgUo-^d^h<3#F0T4>eA{ Vc+a~tUYM9DOcrk!N{+V?`wMqBTciL0 delta 1054 zcmZA0Pe@cz6vy#1&Zw!AGn)CgoEf!pbo>W0gyLqVg|sNp1Vw~eM34&?Mw=Fo7SU2c zG?Wpdm587)3nAPnE!v4ltu%BYkx(09meTjfyKcP9d7pRRynEld=f1c4sF3x3RfiUh z)=S(Wasjif&Vw9i?IE+ta37{LgKFvhS9Q&@s&WI7x2 z`<@NE8=hhVe@x&_oWN_MDS{R859(?jpOi*=|uf`k^O1iOh& zLfh0x#ED)))m3F}oX{4isRAnhJ#}0w!X84a*5|40lZ3L@$~y=(eTw@0u3GcLX|Sm) lMOXDuEwmif_NwWPQH{HZRw9v4h6cj<>F7=*pN{_y{0GESRKx%P diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.po b/evibes/locale/da_DK/LC_MESSAGES/django.po index a9b83ae1..8105f764 100644 --- a/evibes/locale/da_DK/LC_MESSAGES/django.po +++ b/evibes/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Version\n" "Nuværende API-version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Min hjemmeside" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Dashboard" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Sundhed" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfig" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Periodiske opgaver" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Opgavetavle" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Støtte" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Dashboard" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfig" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Periodiske opgaver" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Opgavetavle" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Hurtige links" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Brugere" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grupper" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Bestillinger" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produkter" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategorier" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Mærker" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogindlæg" diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.mo b/evibes/locale/de_DE/LC_MESSAGES/django.mo index 0724bc424ee72970a8d5eb365230f306cff82343..e480d5f192fd711cd8b6246032fd6141a5634410 100644 GIT binary patch delta 1078 zcmZA0O-PhM9LMqhx|>?*`iADJxsNZEFT0u1!8D18GO@k1g+XY9dRPLB+=7C5pf1%R zD3dNhhZdrX9Tq`4pGmr1TS(}jkmE8AD||Djv8PUHNcvyzsCdAOE`q(bk_HWQQu{Fuy&iq z3Yt$L|rj{q|MD1Y~ zHRWSuTkI*S|1zGzRrfw#ANFg)Ews1e6z9;5znJnC>(!F4vP^B!U2MT;N%O6r!fP7R z_#GM3n!PagKGcLGsL+m~_U{bo=L zzwA@cz&BjO9n^{+;(jb(7C)i}=DzX4F~g_;fT%icC@OR>h?<+(*{pcapWcePphMu6K)h z6qNL5+!d6sifFZEK=Uw$uHht*k3#D=RXGS|I@Tz;;2s&=BT XIy0A>_p*H-fscpq2G-5iM#L zDM5lO6%j;c5xJ4Ejf*z9X;q-RS`;L>48K3$%|#c_`@Hk!-TUsj_xfw#aKQT>3%xa3 z2XUKtA27SG`ydxuDr7cs)hvzW+9w9@R)%hzBLwzub zDl~&y!EV%~te+db@DTa42`;RnEuuc~8ui`=s*;bW0rJkzm?i&;gIGcNn&=ejOgu&v zw1V2wRn$u460ARywF4gLu$-U{)o-lDaJ|0;ji?T7sQ0p{2@j#RVASQ)sEN*F7e2=k z+(q>-O#0qH^-Cr_vuE6N@<5gCI6t8Fejfv<19X@8ziARp?qMaWPmoYiTA?;VTcfJA zl66D}QAOym+c=>;QB!4ih(;x@6<|A|+3Vj^%bF&1AUSu|OsHwqwABAv?VICZO{SGp k8%g;W<#CWMTZ%g!^9(_imdK?;eUaQ;=}=kjQ=+Bd9O1@M`Tzg` diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.po b/evibes/locale/de_DE/LC_MESSAGES/django.po index df51afa3..d0bf1209 100644 --- a/evibes/locale/de_DE/LC_MESSAGES/django.po +++ b/evibes/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -244,62 +244,66 @@ msgstr "" "## Version\n" "Aktuelle API-Version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menü" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Mein Standort" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Dashboard" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Gesundheit" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfigurieren Sie" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Regelmäßige Aufgaben" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Aufgabentafel" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Unterstützung" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menü" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Dashboard" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfigurieren Sie" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Regelmäßige Aufgaben" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Aufgabentafel" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Schnelle Links" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Benutzer" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Gruppen" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Bestellungen" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produkte" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategorien" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Marken" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.mo b/evibes/locale/en_GB/LC_MESSAGES/django.mo index 0071a942e9b701f1f7b274e1c1d69502f7bee02a..e4b4500aba1ef828fec7ebeab85d91b88557f2ca 100644 GIT binary patch delta 1077 zcmZA0K}Zx)9LMqh>Z+ByTf3sUZtiTkYNe(^2Q5Ktp_6+OVI!zRb+ABCy9mWlLEVZn z2~SA`5t4_NLPU@tJa`E9(lI0i>)4^o(xLBf<`LLq-+bo1nSF2G@6GI8cvSGerJ{>Q z8KfSgzK)m`u(y^2WhiQP`Ht2l*n;bL5-XU;Djr6ULk#=zAdX-?UPOko zV%YYr#Jp+^qkPqW)Lpz_Z&GY`|-% zh1|k~oj3D2@#uJrnqW1!VDHNJg7HRUewsbO_vICFP9zHjHIyWR7{@bh#i{7a|- zo?#A`QQ?0=C9#EC$rn^2-;tmF;-CSOxv;+#m3=oV`vNNaac2p&uphBkT75ctdPUVw z?WHQtHY(!<-&!jw@*b*IuA(g?Y3owMl^PtN>Y>^8AidM5G}xLp%W6uJx^LhsT> zQ6S-=LiDhwIs|s|Afi`6K@p;EB1tHO-=FjH(1ZVc=07vict<8Ch#0)unN18;jAyn zeY@`-cz|(k6tNaZ@gh#5CVY(=;3H~)MVEiYJLF5)g9oVoope&aJ`TLQC%o*A$eX3)uvFj4HthYQhQB zLMKr>IE}t8%(w^MqDnA_TG=;L309Cr+79aZebfMlF0V`kCGb!s=tuQ`fk~W3mEaR< z0Sl;|_^$ou+}1g0;5~Qa52^&!$)E(ys1jtHJ*X88peD+@{He=_Q6(5dm7s(w!3JvL z9aR6lq)!bvIpTsIct|f`({ZCbWxJh$N9E z8VK#Q6$q_dO|_zwc0-A4XRwpdTkH4K_N58!hDvgaP}6sy-|t^*n%S;sY|oJDOSn#G iS$s&RO<#=mxSePwQss2`u2)`7d\n" "Language-Team: LANGUAGE \n" @@ -245,62 +245,66 @@ msgstr "" "## Version\n" "Current API version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "My site" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Dashboard" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Health" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Config" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Periodic Tasks" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Taskboard" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Support" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Dashboard" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Config" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Periodic Tasks" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Taskboard" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Quick Links" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Users" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Groups" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Orders" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Products" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Categories" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Brands" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/en_US/LC_MESSAGES/django.mo b/evibes/locale/en_US/LC_MESSAGES/django.mo index da2b21801733082f077fa91bd3e88304a52b0799..259f5851bf8e2351bf1ed55668374f086f6e6605 100644 GIT binary patch delta 1077 zcmZA0Pe>GD9LDkA>b6?0tFG+ks_m?4x#quw4)zD41U)S%Ap~U}L}=+&8g!6}q7DUt zELIokvKU>ASPI!o9qQt3J9ZFHQPkB-2l4yNyae^K?|kNcXZC&PecqX0m!D4fJIUyp zQO2m<)N;gZ0*C53P{yNX*N&K-#dg|j3A0vwgK4Z{9&6Z#f3O8T4sjgC!*~H>IEf5r zg|O}0Rd>TYX1GwqW_*Y#Tt!Xz8a2QcYJiWfy^UvR*KizT+^qj!ME$S8foHcH*nkVD zh1|k~oj3D2@#uJlnqV`yVD=unXn)2=+{GsR>D((_inRM$Tc$0XvKM=3kD)TWf|~LL z5{tb;-M@*mxaF=VlHq-6JVbvM=h%lnEV9-IJg*-4_pxwEmJPFS%bFjApQl6N&mb|_ zT~zpwQ4^L>OIt@}S9a~U?)nE*_McGMeM4pc16i%@qyFDQPWpcu)$Z~9F#J3n3V#kY zz;n!D85RB)R1({$m3&1d@*Vlv9tRDW%7y*isO$$(*-xRepLSkHE$pVxi6*@5I_|sn z6Vz6`L~TVC^#J>*iDO*U04dZ~c&O{k&K1;FJi-WS5qi!4FTwuzyWXRyr`4yUr&m;? z)FGbe delta 1059 zcmZA0Pe>GD7{~Ev-A%Jyb6YY0yci#7zdDU~!?d`=vuZ@-^ zt`Um?vmTuXInbIzW)Cl!rLls1`m$LR=kY4O#b(^ZCj5!zSk57W2`t4HEXF&?aMtDL zp7ps0`mu%^BUpw{uo9kH*ZCE-q93S<4qYC&;^$#(;Cc;eC+}eidZ>wCqWaI_ z5cAuzd*Il4f)}`695c&NjtEY$O)O5;PO$IPohfj3{`>!R0;M_ z6Yrz?A0<6%z{x2W^uQ3kWDZq=F$|#IK1G~w8sw(CScUpt^yBdUXFJr2w+ZcHEs-R$ zL^YwEwqZgmS5vJhrQJ~CS`oGpdTafj+P*ZQ-B3wx5o-Dl^!xp5@!4;|x=ahHzJ%+9 imc@tkzv+w79%qO~qM?uubw&!G66=9NQ*5Q|?CdWSh*+2a diff --git a/evibes/locale/en_US/LC_MESSAGES/django.po b/evibes/locale/en_US/LC_MESSAGES/django.po index 0deb7e10..0bfce1c8 100644 --- a/evibes/locale/en_US/LC_MESSAGES/django.po +++ b/evibes/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Version\n" "Current API version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "My site" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Dashboard" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Health" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Config" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Periodic Tasks" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Taskboard" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Support" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Dashboard" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Config" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Periodic Tasks" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Taskboard" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Quick Links" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Users" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Groups" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Orders" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Products" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Categories" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Brands" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.mo b/evibes/locale/es_ES/LC_MESSAGES/django.mo index 34069dc691187169bafdeceb98cc5df2d25e5256..87e306172155310db86a1b0388eddee50197fe17 100644 GIT binary patch delta 1073 zcmZA0Pe_zO7{~Ev-EGyBeU07fra`=}i=UFe4n$I$|^ar>T%bxkRpT;|G4B&U{ z#Z)@n%wwnt3#ia8p+dNV%Hb{4z;}?JJ>iTQemhBH76#AxI(?g>>m+C_)rOc<_hB=+Z%m z6ve0xLTJ!ohoDP%^Ar>vgiz?vL7_|1AR5v8v)|Ljhkc*d@A+-dzwh&GdF0O}f4e38 z%qRoI5n|ah8`5)#ijoSOjU6;gV=L`KqgfL!;$d9H6s}_r?qU?9R1u709cHlx&mqHE zE@=BU;(joSoqTZ<8}L3J!dcXW3#b8JqXu~E+VAl!?R7klB~<@@I;mfdinZGn)CR60 zYqW8Un{W1j2Ms*$zIcu?+HddxZeTrra&Dn^w1b*x&$Yegpk0p%-glxhIf%9Bqb7cg z>OYTp=C_yb2PNlUtmb`9i`gxXBZ6gCFv0Sf%f{ouP999bpHQpQ! z;49ScK4TkhqK@K6g8b|9c*lbjWsuF<8RTQbR9g8R)PVO;m+FywKj+>rp?0)}x|Huw zcj6;n#ZWR>KpwS#G1RzslRhctVVV~jc+>eEb@o5eLtUVg#Qvf|lxmfBLVZGnvZoB` zSWXeT$X!G?p^WI*lu^4uD5WY|z)_-C4OgnLpU}n8-&1Kz6WXmZk|9*I>z>L}P#t^v qEfnj^(%|n<$)&EKa{Iq1?>gK*f?Zmom=0fv6epVs&Bfn|WYs?~PgQsT diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.po b/evibes/locale/es_ES/LC_MESSAGES/django.po index 5b3511fe..2b0e273e 100644 --- a/evibes/locale/es_ES/LC_MESSAGES/django.po +++ b/evibes/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -243,62 +243,66 @@ msgstr "" "## Versión\n" "Versión actual de la API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menú" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Mi sitio" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Cuadro de mandos" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Salud" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Configurar" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Tareas periódicas" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Taskboard" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Ayuda" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menú" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Cuadro de mandos" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Configurar" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Tareas periódicas" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Taskboard" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Enlaces rápidos" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Usuarios" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grupos" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Pedidos" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Productos" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Categorías" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Marcas" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/fa_IR/LC_MESSAGES/django.po b/evibes/locale/fa_IR/LC_MESSAGES/django.po index 4300ddf7..67548e09 100644 --- a/evibes/locale/fa_IR/LC_MESSAGES/django.po +++ b/evibes/locale/fa_IR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -211,62 +211,66 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:57 -msgid "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" msgstr "" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:119 -msgid "Quick Links" +#: evibes/settings/unfold.py:77 +msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:124 -msgid "Users" +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" msgstr "" #: evibes/settings/unfold.py:129 -msgid "Groups" +msgid "Quick Links" msgstr "" #: evibes/settings/unfold.py:134 -msgid "Orders" +msgid "Users" msgstr "" #: evibes/settings/unfold.py:139 -msgid "Products" +msgid "Groups" msgstr "" #: evibes/settings/unfold.py:144 -msgid "Categories" +msgid "Orders" msgstr "" #: evibes/settings/unfold.py:149 -msgid "Brands" +msgid "Products" msgstr "" #: evibes/settings/unfold.py:154 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:159 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.mo b/evibes/locale/fr_FR/LC_MESSAGES/django.mo index e094bbb35de43d3cc92f0abf416a81b9a09c9bfe..9ff632174b4b8f21957c33342cbbf6754d5da31f 100644 GIT binary patch delta 1073 zcmZA0%S%*Y7{~EvoN=_Y(Z;fllg`CkmeV*Tq!x&DStx^`1X5&+a3N9&mf-48EnF#- z3@zIj8I+qrkTz|)fE$^O3m08BQGb9S;==E5&ap)=^PJCl-*b7N_j%9E53UTl-=m?t z(XzxDVmV-T4LgGzXgwjbJ4elWv5tN|VpfaqupU3+SuA1;?qLnaIaFf?kKk1d<4xps zmh<|qjrlj+Lx&5KcnqK8Nqm8t@Ga^E>!=re^7|XuO}~ge80Ka@-;a7O$AR2!94qiX zY9Uh?u`6aSCvgTAQ4_3|E|{%hjQ(e=#GhD&e|>kB1_E`i*5(}drfkL}{Vb}6qo^rg zA!V`GsQXv(7Owl(BT?_ZdMszW3GcEGE%=@yJ|kb1B9ky<$Zp^%97~vMmpGYbAdAbW z1h!C{vx}OrhCwCbpq7wCEj5jl&APD-uOmO3;-Hc&p!Vbg>iKV|+Hazs-%h&TN`5hL zn}N$IFTZ_@0_7d&F6ZHE~2@Rv3n?-G^iw(GdN@PU? zRM85km3~33d=oF?ZyZ90S+s%)R00otpW-zAynj91>V38m-xvnC9wPLa|KCdc-|mlU zPn2zt(3hhOGejq${Zr-?sE6s8VMzTj?gypAvRco z6E&@xWdF7JQZX1yr|D~lDMM-f`g{&s2PgW=Um#e%r3y}{ueu^PmzbG+JW&{_eG;wA NJ$mT%zNQAs4gjluTCM;9 delta 1054 zcmZA0Pe@cz6vy#1&SaXSqvPL6b96LwY{vgY6oOC-(a41iXrj0a)P<0`aPx2>v#Cv@ zAsDo9AtJh%MbIKph;r##idqB~vU^s`@DPKpL_1PZ#MhW{oa>wV8v+d zL=Ca-Gkc(OKL=WKz-;uISsY90FBO>;;~G}r7B=G^HsVhVVTeNzqnM8g%*8v%>#Qf+ z_pHy|Fo+Q@j9?)?!*X0iP527+f=$#5c3uA+cGKU(yLf_nzKw_UTn`6wx5uaj3?Vt% zQ;eEtHqVJ(yy`Bz#%lW8n1`RR01us?Q7ig^n&`Ld`%1F?0<32|f~w?wyow%b;xy{{ zRZKCzy>U03IRE1n#&g4FV{Atdx2feM>8m1@b!H4%5-YJ6yKopg@Hr}h_oyxUikk2b zDiI$SwV-_TwDNLJsG8Ma6DE+K4RMI#9BOM;P%qd;ZNXdA^ZS^>1AKzfST?~0)YiN} zZNWZj3qGPMaTKHeXCDm%$}rSmR)!H&BCV(`NTEtSj@NM-l|ULPmc2whzkyou4tC-P z9KgS*#2+%55_sgCXr%r#49qg18@{8y+F#Cp=%XJXZV{K8CRL(p+6pD>CsZ{h*h<_c zv~5bfj%X*U2vyXE36)Sy6W<_is^eM?wh=0q{+`M{PH6x5?yQAS)2hk!qSY>c^H(Pm m^tG{+_iTCkYR;SfwEE1G1m&^%OgwNen3*b`4QGyHy*Z~sxm5oE diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.po b/evibes/locale/fr_FR/LC_MESSAGES/django.po index e27b0dcf..32e383b6 100644 --- a/evibes/locale/fr_FR/LC_MESSAGES/django.po +++ b/evibes/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -246,62 +246,66 @@ msgstr "" "## Version\n" "Version actuelle de l'API : {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Mon site" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Tableau de bord" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Santé" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Config" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Tâches périodiques" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Tableau des tâches" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Soutien" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Tableau de bord" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Config" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Tâches périodiques" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Tableau des tâches" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Liens rapides" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Utilisateurs" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Groupes" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Commandes" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produits" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Catégories" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Marques" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.mo b/evibes/locale/he_IL/LC_MESSAGES/django.mo index d9ee9cf7cc3e30aac9061e5daa9af35495a172f1..5fe2e76ae701c9901032e90de03f062f93a40680 100644 GIT binary patch delta 1079 zcmZA0Pe>GD7{~Ev-APMrHMh1_&0Tl5|7#|BFbg7r4$(qsfgrVq=pdb<5Q1Vbk3m!> zAq7DNW`RUYU|k}J4iUi~Vmeg{9TKEdm%ZfoxAU@xUU=s-?>jT^pXYgJ`NZ9V|Gmwd zHcB70llnAbb`rzcm@~T^H^K>UIN$9--Tz%Lk=g{%MI4MnSPJKWhW{${oUr<9&V1)A;+-` zAEWm89`(UjR5DhO)msG>!=_9)Py+YT&SN`{qLMj|Tk!$v`!~p%?W1dd%lKxe>G(y* zNgT|EvAl`^C^aII{Ejuf?g?1yeXyPntf+5s|McjthUH=nQE?(kB{ESNSqR)*6 z{^R`TUTER#JpDOTs8695GK(7M6)Hks@ER_mc2?XTdI^=XNsORJ)iM9SRP(>X^(xdl zDN(8>(S*HJEkyZJXo-CFU(@b&+?6(+Iu%7g>0{1XspD=RRf|z%wCLSbokUXEZfR~* z^fR)FT1icnqa8gxv=txXT|J7Ns9M>@oql;GfUsGnl=KFh8wyv`m&dMLC=Inv#AEk@ U+rjhTSvr^t9tJa|a(1R}70_j6EC2ui delta 1054 zcmZA0O-NKx7{>8;oa?ALrH)p9k2;z&<`)?mg)27-ra}%VqFX_iLK}sfL?kYg6hWaN zq9STBD}^9ex@l1mt`u}5iaWuLBK;rdFbfa7_jk^@_nwdU-23*~ai6~z@!lDwov0*M z17_W-2f0w8(;6vJ*_!!Sn@3--i-s|GR+N~e8f#=8?Z33g_ zo4uf-ftTEkHLRfh4RdiD^YM>!7qz1!)I_JQ9Vkk-^RbrxGE^p?Vh;MKiQk~!U&18w z+k5xGne!5}=?_KB#yE~J&N0&@%fCziNljXhS(KqlypIo@<5*350kz{VsP}%Nj^rP* zW;;M%sXV2kfiAHXOX|$Zu^V-!<5-2SPy>8G)@a{d`xg$;{*8lJ7gK6ELhQgr)I3|r z>DXT^#e*36*M#SEXy7Jh(?p%vfJs#U4C+Ycu>?P&QooKGaLc*l?jK?^{TGbwKhVF(eJ5MCkTCzI>RPHMZY4O&6MiJ{a{6la-jTh jE?1u*A5y01r&TUm2-0u0sf70=oSG_pS)4kLEoc1)`Sw{+ diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.po b/evibes/locale/he_IL/LC_MESSAGES/django.po index 1200185a..650f2f06 100644 --- a/evibes/locale/he_IL/LC_MESSAGES/django.po +++ b/evibes/locale/he_IL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -205,62 +205,66 @@ msgstr "" "- ניתן לאחזר את השפות הזמינות מנקודת הקצה `/app/languages/`. - כל התוכן המוצג למשתמש תומך במספר שפות באופן מובנה. ## פורמטים של תגובה ה-API תומך במספר פורמטים של תגובה: - **JSON** (ברירת מחדל, בפורמט camelCase) - **XML** (הוסף `?format=xml` או הגדר `Accept: application/xml`)\n" "- **YAML** (הוסף `?format=yaml` או הגדר `Accept: application/x-yaml`) ## תקינות וניטור - בדיקות תקינות: `/health/` - מדדי Prometheus (מוגנים באמצעות אימות בסיסי): `/prometheus/` ## גרסה גרסת ה-API הנוכחית: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "תפריט" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "האתר שלי" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "לוח מחוונים" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "בריאות" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "תצורה" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "משימות תקופתיות" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "לוח משימות" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "תמיכה" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "תפריט" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "לוח מחוונים" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "תצורה" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "משימות תקופתיות" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "לוח משימות" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "קישורים מהירים" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "משתמשים" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "קבוצות" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "הזמנות" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "מוצרים" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "קטגוריות" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "מותגים" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "פוסטים בבלוג" diff --git a/evibes/locale/hi_IN/LC_MESSAGES/django.po b/evibes/locale/hi_IN/LC_MESSAGES/django.po index 2026c11f..8005be12 100644 --- a/evibes/locale/hi_IN/LC_MESSAGES/django.po +++ b/evibes/locale/hi_IN/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -211,62 +211,66 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:57 -msgid "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" msgstr "" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:119 -msgid "Quick Links" +#: evibes/settings/unfold.py:77 +msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:124 -msgid "Users" +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" msgstr "" #: evibes/settings/unfold.py:129 -msgid "Groups" +msgid "Quick Links" msgstr "" #: evibes/settings/unfold.py:134 -msgid "Orders" +msgid "Users" msgstr "" #: evibes/settings/unfold.py:139 -msgid "Products" +msgid "Groups" msgstr "" #: evibes/settings/unfold.py:144 -msgid "Categories" +msgid "Orders" msgstr "" #: evibes/settings/unfold.py:149 -msgid "Brands" +msgid "Products" msgstr "" #: evibes/settings/unfold.py:154 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:159 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/hr_HR/LC_MESSAGES/django.po b/evibes/locale/hr_HR/LC_MESSAGES/django.po index 4300ddf7..67548e09 100644 --- a/evibes/locale/hr_HR/LC_MESSAGES/django.po +++ b/evibes/locale/hr_HR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -211,62 +211,66 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:57 -msgid "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" msgstr "" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:119 -msgid "Quick Links" +#: evibes/settings/unfold.py:77 +msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:124 -msgid "Users" +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" msgstr "" #: evibes/settings/unfold.py:129 -msgid "Groups" +msgid "Quick Links" msgstr "" #: evibes/settings/unfold.py:134 -msgid "Orders" +msgid "Users" msgstr "" #: evibes/settings/unfold.py:139 -msgid "Products" +msgid "Groups" msgstr "" #: evibes/settings/unfold.py:144 -msgid "Categories" +msgid "Orders" msgstr "" #: evibes/settings/unfold.py:149 -msgid "Brands" +msgid "Products" msgstr "" #: evibes/settings/unfold.py:154 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:159 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.mo b/evibes/locale/id_ID/LC_MESSAGES/django.mo index 9103152edb4cf685c0983219e1b3c119e50f5b98..20023f79a19844febec30fdb11d1ed975bfb0f82 100644 GIT binary patch delta 1075 zcmZA0%}Z2K7{~Eva&*e3X&lKMt(ogMmHC=bpcaWFLf~vNMTm?k0>>6D#um1@P&*ez z$l#(y5k-XHW+){WEhdQE-G4yb7HwL%aS?uhGsjH_&i&kT?maKhbMAdRUK#gy65*0j z2B~ML??Yxcu(ys2WhiWRr_pQ}n`xI~W^w$4E%+6?Fu*MC<4H_&iQ)hr!)w@p6UcOy ztF?WbbuZk*Bo7LB0-xh4e1%%@BWi+8)CAvLdmAs)4sZw?cv<5|QR8x4*t^YP1RtOR zd4w^$YUXp3rsD-_f%WPGv(MO0`#T=RT|ADzoO>%{p=MvPC7WtXc47zZK~xT>P)n{N zX|Xq`_t$Y6H{J7CqV`@3*3+NDyPQK7qb&K1{VEkNQ)UdY56+F0`Ie#MCmrYT51z&Z z@o2$r)FBL`CZ0frGKmUh8WnOLwefjWZkJIDmRx%cmBTNnaa*WBex!Y~E8GNhjA6v9 zO>h%6!EMyQ1=Pfkk#n-ANE&S!8EUUlnc6}fUIkk*KyC0hDv-aZ0REvi5b@czCTv1= zbRb!?9_+;HIEwdC1K*({SaWXR9PNs0XGo`>_oLn)!4N8lF6#fKdj1z&uTrl;`gQc> zDB=NXFICxSqq0u*UsH7Y+_MsiDDv9S2Cd@EibZ=5PDJ}G*| M{8GL=<86ly08htRTL1t6 delta 1054 zcmZA0O-NKx7{>8;bTo4&okq%R)R`%(8S@iVq8dbUVH=AgN~E?z?hI6dxVQ-2w6gpF z(*ZXklEkcZCoR;C5VQ*g!A&l7A-Hg1{U7gf(}DN?&N=soLjM79@ z5;Fm_N2=#@p`?Oly~So}ETjFg#4Li-coi2hg=<)Y`&f#lT*4T~i&%$+*oI7J8NcmW zmwVs|R&b*SFX219f+MH}Cs7kDpe9&$?Nw}{y@vPj7&X3;K^m9g!rrYLb%5u{9<2}K z=9vvr(Zmz(##fBdUcw^Wz!3g)Zlg~02er_VYX>g-?GPsEuRvw;0bW24weTov`~<#W zeapHBj-97iK!0J>>@}|=jA3^0mhCGeL)B(HVxOFIc!TzLyoJB898XXSM&tggNTTL# zKpm_FJ)JB=MHzUE+WAvdiU&{&esJw^R4Qjtc{%=tO#nZ2PS>pK2AL*!Ef$}xc2{T<@}qD|a(ol3dJ=*Q8alz|4~E}<-5ClW*x zp~LB8w^xKtsG<{A5qgK`C67uYq4%iYQ(thJ&?%I{T0%v?V$E62zf_O!=Ev&mXedAW hI+S1K=Deh+=rgY;l&fSe9lRgT^+$q{-2234;2-UcQwab7 diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.po b/evibes/locale/id_ID/LC_MESSAGES/django.po index de2d37e5..7480da57 100644 --- a/evibes/locale/id_ID/LC_MESSAGES/django.po +++ b/evibes/locale/id_ID/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Versi\n" "Versi API saat ini: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Situs saya" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Dasbor" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Kesehatan" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfigurasi" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Tugas Berkala" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Papan tugas" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Dukungan" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Dasbor" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfigurasi" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Tugas Berkala" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Papan tugas" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Tautan Cepat" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Pengguna" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grup" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Pesanan" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produk" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategori" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Merek" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Posting blog" diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.mo b/evibes/locale/it_IT/LC_MESSAGES/django.mo index 3fd5bda486b530e27f8b9a8b113723ed0641c342..8437d9fd2cd44a6291b055e044f87f63d52ddc21 100644 GIT binary patch delta 1076 zcmZA0Pe_zO7{~Ev-A${tU0umsP51SG`6n|YHcLVU&BI=jAc_i_74Ham_r^a}~IDqO)@e1`|Hgl+g2lbGRBiG8>WPhvTaA)m8c z*!S(6d*Cvrxsk^`xPW`{5o*F^)Cbm3A9(NjpYbUD5@xZShxPs`)O$HDtlchQ1x}*^ znZbmeF!O0-7l>bN9Ax5HRTf| zE%prc{3@QsHFrOe3ZJXR9gH{OMfRZ$e=y}e)~h97W0~>}D)$dF=G!qE%M1+Q7V?gz zywG;kgjrN*Bd$MzTF|8HPoXw(7BybLCS1aO_!0H~7gX-QyZ$fFHydK$Hv_|Xgz)u& zdDLlGKqdbrDtE6?5xhl$w@uV@Ur`gpTEg)-5{osWazBK6Zw&RF^QgeC`ZToLH&H9Q zi|mix$8LOzr*R$ip=4{AnL5tY41?Sl`=d`)#4hd%0d@aSs>7Q^Ju8(K(q&~ z@RC_9MH_m1>F{G1VFdB&bZnP{H1x|KqG}Ubis{&3Wkv3`cPl@CrFf=lv^qX9>s`;! MX<)ASxH(z&4>yroI{*Lx delta 1054 zcmZA0Pe_zO7{~Ev-SuCtt{R!Ecmj<5q^Ul2Q%seymzMEYOUEWT4XvQe5 z#06q5V0KIQK`xYJ$n5?ZvlO1C{;b5T6yIV6e!wKI<0ah32u8SsF@}ZMgn5`ohO>-c z_pIB!(1%eT+{I#ig6D7wHQ^i70E?&rR$cug-k`pYZFr38-$Ez#%Wxrg>qRYK0Ljrt zFlL_FI5!%2);*ZVYU(RkfM2i(x18TmE80U%bm;1VGQVDg3EHEmo$SDT^iUH&NA;h@ zA?CMt?uBFLU(BUFuiWe*#}UR|G8iR&t)M^VJB&JlretXyMjfu92X&T%sP+l0!D&2?%cuc9qmJOKt8Zh5`Zv6ZRV-iqAE3U8G1L*fLM>nh zS)(l_*nhq7i3Sb)!#((gByYb_M-Z*`JJuo_VQJJBcA}2pHY%Ze$Z6Okyn^G{jqg$8 z9H4gQ2z4a+b)MN{ZX$Jl#*@w$sD$P)fXcps_`fKL%dSy7q)CE=l2<}k2_>Qrxr&Gr ztwbfEkKOJNnn*>z%SEDI6<2bwh0u2D_tf^K2\n" "Language-Team: LANGUAGE \n" @@ -242,62 +242,66 @@ msgstr "" "## Versione\n" "Versione attuale dell'API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Il mio sito" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Cruscotto" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Salute" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Configurazione" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Compiti periodici" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Lavagna" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Supporto" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Cruscotto" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Configurazione" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Compiti periodici" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Lavagna" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Collegamenti rapidi" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Utenti" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Gruppi" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Ordini" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Prodotti" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Categorie" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Marche" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.mo b/evibes/locale/ja_JP/LC_MESSAGES/django.mo index 1d435d4a9df036778e7ceacc230a6fba6aec16df..acea4d0cd35d534ea45ad9224397b5ec5b95a727 100644 GIT binary patch delta 1080 zcmZA0KWLLd7{~D^O-!}6X`5g*jcs0&`oFOT9O54;8tPDpgMXkP)Ih!90|5eJt-!S65c>EOZhe%`zHy}S3GyZ7bv*J=M# zJhE(*Jh7Lkh0KaL9_B(RM9i-Bn4QD~_2rn^0IuQ?uHzwW;TUdWKc>0#;sox%GZ@7S z$Z%E)>b}jm7j9sZ2lLp6i?|CPp(b2G4bVgl@XFQS;tA?4EMSzE)&DH2Ux^FfZnM~p zH&F{&z?hvj^SMdW@DMdYz4O3q4O7(L;CB3sJMp{o_tLpg!q?i8gTa(p+($i+%Hd_y zlvN}x_7wGg9j{{3J&(nM_l9sA?W1^|eHg(-{ zK}_)#`j8?Q(qeO{4tHI>;(Ux6_!*936SW5)a1Z`+&wDaKe-Bx`c8MDyY{N9*N~*xI%<>O`P^tXKe~pW zuD*rJ$RKC(3Z6$zP(^KO4K>hfyoK*k&kOs5_9;|-216Jjbj<%Ro&8tJRdy3PDPcmB z=$K9re4BOm*( zq?cOZR4zwdCxCQxj-uB5w;bk1zx*+RLfdBvi delta 1054 zcmZA0O-K}R7{~Evoz+Y?-8M8|(p6W@Raf^AqJ@{dh>#vCNW_~U80aDJAi@w7fyZ7< z!9WjzSm0s7LlEI94_*p7bTH`9!44e~yadtr*F1Xg56^t&nVJ9FGc!L%-j9UeQt=l? z%M(|KwV2tE&I1m#j=0%GnOPPukw305OX4b4;}&+{F1F%Nti(zV2~6X8?8Xx8Lx!`# zC=YGe9~i@0Zj9pve1KK>5H;aT)Bu~P0k%DVhu6q=u^*37{d?)8euErXyN#kYa2r{p zO=H?Zvw2Q5@Uq`{h4tibu@v{P96z}Ss2v@mCOYywb}`D!v6<_&s7l_za~Pr~euC=1 zjCYye*8PEF_b(Q6y(DEe$?Hg9z)UkNUlo~cic0(lRpRHE#|`&0UL_A$g%;Aqfuh(g z)bo>`&tRw<3!G@+C2YiX)T{V_HTc!<|3(c^+7gwv3RSsw9Kalo;xuZ!9i)rxqx$_q z?fef?G%LAnndpH&RL3EA+^^4hzK9gVo}x=YjkD59{iis2;}0a;q8kmU4tb1WoKQ*6HtnX}FJ4A{F9D%V=_BnSx(IEmj%XsZ zFjZ9*wtIw1sHO=U2pWDlpU@!9vFKG#jI7fikX he}dZcNz+fOTI2}IWX*+a{Cc8rKe?GIWHL94{s95dQp^AV diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.po b/evibes/locale/ja_JP/LC_MESSAGES/django.po index 0258a201..0a9e9239 100644 --- a/evibes/locale/ja_JP/LC_MESSAGES/django.po +++ b/evibes/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -239,62 +239,66 @@ msgstr "" "## バージョン\n" "現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "メニュー" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "私のサイト" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "ダッシュボード" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "健康" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "コンフィグ" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "定期的なタスク" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "タスクボード" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "サポート" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "メニュー" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "ダッシュボード" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "コンフィグ" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "定期的なタスク" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "タスクボード" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "クイックリンク" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "ユーザー" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "グループ" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "受注状況" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "製品紹介" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "カテゴリー" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "ブランド" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "ブログ記事" diff --git a/evibes/locale/kk_KZ/LC_MESSAGES/django.po b/evibes/locale/kk_KZ/LC_MESSAGES/django.po index 2026c11f..8005be12 100644 --- a/evibes/locale/kk_KZ/LC_MESSAGES/django.po +++ b/evibes/locale/kk_KZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -211,62 +211,66 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:57 -msgid "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" msgstr "" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "" -#: evibes/settings/unfold.py:119 -msgid "Quick Links" +#: evibes/settings/unfold.py:77 +msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:124 -msgid "Users" +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" msgstr "" #: evibes/settings/unfold.py:129 -msgid "Groups" +msgid "Quick Links" msgstr "" #: evibes/settings/unfold.py:134 -msgid "Orders" +msgid "Users" msgstr "" #: evibes/settings/unfold.py:139 -msgid "Products" +msgid "Groups" msgstr "" #: evibes/settings/unfold.py:144 -msgid "Categories" +msgid "Orders" msgstr "" #: evibes/settings/unfold.py:149 -msgid "Brands" +msgid "Products" msgstr "" #: evibes/settings/unfold.py:154 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:159 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "" diff --git a/evibes/locale/ko_KR/LC_MESSAGES/django.mo b/evibes/locale/ko_KR/LC_MESSAGES/django.mo index 6d25eb84f3f957b17d8570536036159ce1bb6273..220284d2f16b27767d6c382dbeddadbb0cd1507f 100644 GIT binary patch delta 1078 zcmZA0O-PhM9LMqh=IZvM+p1`-n)~E#+KZc6K~_RYyH=OB6u}u?kC&JMTJN#3V2BSciA837?=Qe1#gIgc{(ztAEDB)XUh1HFVbZCs5zzc(8UG#TZVY zHgXl?cHGRTkfPxcYJ$1oh1mkOQvZk>aS^v*#rbz?Akye-Z^`;_$~5kz-iwOiS=5v> zNLcJSs{b6G!;*U+ZwUJ}V>RvVIKnw(@GespSg+0|#xgZd2DQaQDf4YFg#jAmHB<~| zkX71S)LuWJCjN#xltt85mtFl2wos3F;dgDQiL$7P`ceH)quPgEea!R2;9sHP2rr(Y zKKP0|@CWKcg+=W#XA^3mG-}}oQT;~T`$^Qoueoinf3{oKL7* z^98%GfVeUlS>9BkQK<*U`<< zfIZ}HvKFNfv!38z+m1S_edHiQsH15ocas054HOQLwOd70QBlOSSvJyQ9t9=+jJtwT z_()Bat6H;JD*PD6HiE0jjryPVP|~&9Pu8#7QA|dU)y8tSyc_wOmx^Z+vx&N&g?VqO R@MdXte)&PE_{&?3tN}1FUsC`8 delta 1054 zcmZA0O-NKx7{>8;ayOSp>6KiA&gsYuJFlupG;Ico@ga*o-Ck5E;%ogR*Zu zu0bDG^I-_fa15h3iJEW`HNa=o0AF1BD?XsShV6KS>Yt{Q`gQVP?beIhzyPvF8^O5w zW)r+<;05>L1I8#X<0V|jQrvXzpmtP1P4vf=L)U_GDJH3}Mn&>5UPK=?@eHc}0={5= z`{)`RIsaiX^(7T%uQ(15r&z%|maii^tP2M6;=zP5Y@$Bp97ILZN7iOp)XtYs6R)C< zW*vR)e9KjAV-4j3s$)12OcX`!v;o!rK58c&uH1t)CJOj|0lJ%<0`9A_eDPr0X!YA74MO?C`C3w&X8}A zbwu`(td%M0Ocbu$D!6n3(`4;dXRoNF$l9%rNYPW$uc+VeEY;2J7sXndDe^lQyEwgq eT%_})pH|nrg?x*g%%{SSy!>b+7s*GH$DtEnM^r)p diff --git a/evibes/locale/ko_KR/LC_MESSAGES/django.po b/evibes/locale/ko_KR/LC_MESSAGES/django.po index a55303e4..11234db6 100644 --- a/evibes/locale/ko_KR/LC_MESSAGES/django.po +++ b/evibes/locale/ko_KR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -239,62 +239,66 @@ msgstr "" "## 버전\n" "현재 API 버전입니다: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "메뉴" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "내 사이트" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "대시보드" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "건강" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "구성" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "정기 작업" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "작업 보드" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "지원" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "메뉴" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "대시보드" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "구성" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "정기 작업" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "작업 보드" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "빠른 링크" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "사용자" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "그룹" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "주문" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "제품" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "카테고리" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "브랜드" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "블로그 게시물" diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.mo b/evibes/locale/nl_NL/LC_MESSAGES/django.mo index 42b8a8484d3ee4406fac8f619aa864537f4bbd77..aa50179e4db0ae0075f491594cff539bceb01495 100644 GIT binary patch delta 1074 zcmZA0Pe_zO7{~Evb#t}0ZFSqN_0R5`ZuZaBjHuNFDKWY%#6}c_hJ?@-2vLXX;0t>2 z5`u^XL3mN4iykC2FM)UpI_xoshz>!wE)jH)zQ28^O9S(M-kEvdcjkF!-s$1xVgE~0 zc)=*W)K=cz&gB) ze9nqN+qawUfjgLHpp5%*8k0DOn(#I11DmK1ym##nc$Rhr3s}d)dVdi0UXcrHw^5AX zT~r_sFlHCbd~ULI%%Ub(tqz#I#TME-SdU+EAO3Lun!gxI_=+vv7);rLM`-t=a(E3j z;w&!un={TUo#A9DDOSf^Mow>F*$Qu4$(n=#+cGq6O*IsA;Q z&Jx6<9OO_ForbgS%?qL!&KIwdpn&>5lP(kRJ|6i*6uSivtGJRCP zj!up~&_nH_>L@o;nYa3{Dcw5mTBNo{MG-3MPBmPq!P8WopEjz3J4w|^BvZ}iaigN2 z@o4ofxMb%mwJrHP4dthU8lfub|H=t&^vics_3O5;r^EfxNb#xnsQh?*y%cYYHx$eF LCxYgLm#p~Tq delta 1054 zcmZA0Pe>GD7{~Evb=7J&UClIgb7%ciySbZt5EVs)VxbNxC_~0T|HDA)FYUry$O}cL99X_HSrSa z{bihBep_`Nj+`f0L3?GL*)+!y#XoGh!1B4ZN3B6-W}J)INBdjs#T{f#c8pqJG!abL zjM``i>S(&qS3|$+FpM{-KXe^tv61=$l2uzm?WBl0f)(cm4p9G!!}t%`gXKK4+jtLk z1O=?e1=L1fd*q+KR-{2I`i5Hh4zhULL#66J>iG$3;t2Uwdjo1=9;!WuI^#j?!ciQ< z7pP49aPFgy_8{q-&2w|;9!#|b9Sf)dpJNEMdhO(5(IRfSMrBHa>c`Qh^!{B!3(<$% zOn5|&P?q(v+hamUprRe#Bsx`br3||XeK`6(wYxN-4^o-BL#XIi)bDp*THpUJZ^>q; kDnIPv?BJC2^OE95pLv#OCz7RfcpzGO8jHtD@4Wi5Q%9Ool>h($ diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.po b/evibes/locale/nl_NL/LC_MESSAGES/django.po index 3fd81281..78b7d5e3 100644 --- a/evibes/locale/nl_NL/LC_MESSAGES/django.po +++ b/evibes/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -243,62 +243,66 @@ msgstr "" "## Versie\n" "Huidige API versie: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Mijn site" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Dashboard" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Gezondheid" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Config" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Periodieke taken" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Taakbord" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Ondersteuning" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Dashboard" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Config" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Periodieke taken" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Taakbord" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Snelle links" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Gebruikers" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Groepen" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Bestellingen" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Producten" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Categorieën" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Merken" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/no_NO/LC_MESSAGES/django.mo b/evibes/locale/no_NO/LC_MESSAGES/django.mo index 55a2311f10087f285e40114c9275b5787d8fde35..4a78bdb1edf1666099f2fe7ad9dc3c79ffeb8859 100644 GIT binary patch delta 1073 zcmZA0Pe>GD7{~Ev+f6sK)m$^zt=;wi|4i{CKN z1Y!p@@Xlx6ciwm2_j%@>Pw5|N=b$3AVw7&` zHR`*7*)VnlxlsB-W>Y0*w=hb3C1O^N>sW=`*n$OYz+)`KB$ra`!V5TnML2@I&N5!x zu}OcxBaHDNiK$5BhZMbcuc zsPP*(fm{CbNQF193eVG@z-hii1MU&)OZKZRrxRwCIEg&6#e_L-@|WqTr(+!z$~ROF zexp9ZKUB`bJd{!21S+&vWQg^kUi<)Sa2BtkgKi+G`KzdnzE3({(l_ZCq~i#6Dw$1_j(a;*r%pv1(r0K=!!PIXCROL>I#twS(Z%~!1x_m5jyR3kt0|g7 zV#lb!!$_jrZr;K}ga-xj5bG2K9!$jd$346Fz<00T^Zb6#zwh(xSAH|^?KSw9jM7U) ziT6IUAw5^|LrMD0o?bCa;Z^Fhb!PRrijDXQlUT$K{DUD3@e{-tUdA*A@Gdf(<;r!> z9=H!iv6&Z7uoh?VI=(?o_zpF|N7MituKpeGP%q*=JVf=+(n*i?c7D}sDzs6pR4=A<$4V!Xm3Vk@;+9hhnjc})qfes znBP9Q4-TCtc#-x%gV{5VBZx(|{DS3c2kBO`YdDC!vN6;VOkq2|#Tb4?E$}DmC=O7W z`|JFVo*Dvtt(}IEHfuo*+=ngr5O3flp6vwHZw|H41yt%+Fo)ZyyAg_)7u1D1f??!z zY!o&A^EmnETbrgqD_lVBa2<671yrhjpgQg#*|rj@{Rq|1Prg+TqrQuvE@L+i;3L$+ z=TQ@{p!$7IcxDqke4{}bh_;pOM0LoZ54HMR#QCC0yIi9(q%riz(WaE44AD*KA}f<| zqL*kQblGj3(B)Inif$5}svi>+!coqNcI|WSDQndg8 diff --git a/evibes/locale/no_NO/LC_MESSAGES/django.po b/evibes/locale/no_NO/LC_MESSAGES/django.po index 6d64980a..d0385347 100644 --- a/evibes/locale/no_NO/LC_MESSAGES/django.po +++ b/evibes/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Versjon\n" "Gjeldende API-versjon: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Meny" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Min side" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Dashbord" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Helse" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfigurer" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Periodiske oppgaver" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Oppgavetavle" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Støtte" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Meny" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Dashbord" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfigurer" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Periodiske oppgaver" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Oppgavetavle" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Hurtigkoblinger" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Brukere" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grupper" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Bestillinger" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produkter" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategorier" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Merkevarer" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogginnlegg" diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.mo b/evibes/locale/pl_PL/LC_MESSAGES/django.mo index 3f94d7011a1581453de0584f713abadc17ec056d..82be2da860ec160a7c703230c24f72bec307f880 100644 GIT binary patch delta 1076 zcmZA0O-PhM9LMqhzNFS}>sy)YrqAPBX=J)66er^pILH={T^U^jBP6CS5foLdKTDm8jl$`f$P|Y z-%+`&q86<8qlvSqzK1%Teq;?hg&jD78lT2PxQNQ-bJWJ(AbYmAsKCm8V0MniCk6`m z2Q|SsX`pGBP|3fK%H2cf5|Tz+Ms0k}jc>W}ZB)d&sNBc9qFa?h1(0+01~fEr-VKbR zc76eMD@r(lFHsY1BNxSfp;B1I+nDS&YsD#4#7|IxJj0mYQ~Rj@m+<_Lx=}5xMG{oq z99`2qb&#s7tfL{I@V}GK(S2>$Jlddg3^5{%w2z^L5QV-B3NE3kRS^qyc7mqq%IyFR3bb| zWJn5v7YU)mUL?G%Cq4QHC*a^F+hbG$!^j%# z4W=zH`$$Ct&$|apSW9~iFX9%)aL2ie%IFX^(XnfLiLf0*pZ*%uPIhAn2B?WYqu!s# zXUuQQ?hhxIlPXWs2$x!O?ZkL z*Q*cPB^c<85>%MOQkcTKsQ#yz#8FhHA5a6#AZxT)RA%3?4_9yy|DfJ)VH>Dg7wQN` zP&@ew*)$vX*?+Bg(mhyn57tqcZljK14>?vlz(OWYuOS>ThU!nE7VM+$#C;sX_o#8! zQRC!MJGavin7yX5PscUvzZquw0+qpA^iZpBBK|L$^tS8N#F`{Ru+xQ0s$*#(bdhx= z^@I}ETsj(iPU!NfXu>+8Q4Lp$u$|Cq^?B+BX9;biwy>E{(Wj`-@4TeG{EpPNwbE3+ iWLG#S9rAg}P|-DSBgoSHTsHb3o_kjwOXQ~gWYHPoXi=2_ diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.po b/evibes/locale/pl_PL/LC_MESSAGES/django.po index a8fce11f..b7090574 100644 --- a/evibes/locale/pl_PL/LC_MESSAGES/django.po +++ b/evibes/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Wersja\n" "Aktualna wersja API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Moja strona" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Pulpit nawigacyjny" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Zdrowie" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfiguracja" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Zadania okresowe" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Tablica zadań" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Wsparcie" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Pulpit nawigacyjny" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfiguracja" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Zadania okresowe" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Tablica zadań" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Szybkie łącza" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Użytkownicy" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grupy" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Zamówienia" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produkty" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategorie" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Marki" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposts" diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.mo b/evibes/locale/pt_BR/LC_MESSAGES/django.mo index 5f60f1eac108c79445a2753fc5667f6bcdfd34b6..e03c7942aa09730e6362067660901597dbf5de9b 100644 GIT binary patch delta 1073 zcmZA0OGs2v9LMqhIOD5q93N?;<;>`4YGW$6&@xhj1Y2VIQT&YmppE?qKxw; zDn%REiXZVF{zgsE)!1E?UHssESU{$F)Zt5JglsX94Y zn6@WH)uL*s1e*KTv`sqh*QiRRivAZx-K2&qdDuZ!^jE0Ljsnw3i>F zv6XDFwoRu(2_uYL{Mzla(!z~?`Ri2ee*IQ7bfcs&{VcvP`*>z+I5J&Ul%9Fwx3&|- Fd8hXbTY>-p delta 1054 zcmZA0OGs2v9LMqhIFpUd6$OwroLQ_Nt0)tu<1VIE|Tv)p{ zF%yA>viaAo>AO4+)^1~{4O~ao zXtyzGzS%=68o1*ZCI@&|lkZHp6kmF+wiyuzWUW_mV+od~Bs%#4Ijj2DkAzM!SLxc*qcT z0kzR#R0c=U*NSdX(F?PvGkoOQuaU8A1vSwYYJeZ80e-vo9_DHP!vV~*eJykjPvSGw z5v;iWPpG@I?vek~RCef4io(3DGm2p+CQ(Pwk6LH}HSh!~g|n!I+;=`k-I*tN4j1t% zZlK0*=?=zEAW61tw{Lcn${-z@=#BFoYJ!g#LaqKR@qf`fXI$qo)EHqxS<}MK6Fr0$ zb%N+3a)gdYm)#}_rBp?KmkvT1sg@clI$P~te@|s6P3S^$?<%{5N;-9P)zbO=dpMEl mrKxb|p diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.po b/evibes/locale/pt_BR/LC_MESSAGES/django.po index 0fd3c7c3..bb0a89f5 100644 --- a/evibes/locale/pt_BR/LC_MESSAGES/django.po +++ b/evibes/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -242,62 +242,66 @@ msgstr "" "## Versão\n" "Versão atual da API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Meu site" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Painel de controle" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Saúde" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Configuração" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Tarefas periódicas" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Quadro de tarefas" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Suporte" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Painel de controle" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Configuração" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Tarefas periódicas" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Quadro de tarefas" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Links rápidos" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Usuários" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grupos" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Pedidos" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produtos" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Categorias" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Marcas" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Postagens em blogs" diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.mo b/evibes/locale/ro_RO/LC_MESSAGES/django.mo index 0b1fcc0b41def8479001e981b8c4b57b41e6a546..a54780653962a251b0f100d409df10cec5438cdf 100644 GIT binary patch delta 1075 zcmZA0OGs2v9LMqhIFqJL<1=eCy)$Yra~y}F?1hA&ZiYY+f?f*|l#GgOVVety+e&n3 z6GRl08#hxhvhp2tcYLZ-8P z*!S(Sd*B8pxiO7KB5J|cs0m7_2|l>~XFN&2jQv>2!+L)J^>*)IBKCOyn_!=3;c9$qZX*}7J|KT21!??k6;RKAUW6+^0P$_ zO6UV>&wNCRX4`Sf=|vbs0sGbhuT05#Q#lYtalexA?+7Gp`=uyB+*1@ zBbO63L>o~?XtUcLLYb>6vnt}UI\n" "Language-Team: LANGUAGE \n" @@ -242,62 +242,66 @@ msgstr "" "## Versiune\n" "Versiunea curentă a API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Meniu" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Site-ul meu" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Tablou de bord" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Sănătate" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Configurare" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Sarcini periodice" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Tablou de sarcini" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Sprijin" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Meniu" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Tablou de bord" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Configurare" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Sarcini periodice" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Tablou de sarcini" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Linkuri rapide" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Utilizatori" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grupuri" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Ordine" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produse" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Categorii" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Mărci" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogposturi" diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.mo b/evibes/locale/ru_RU/LC_MESSAGES/django.mo index f5e6b37f272f886ee04c860471ce74daec0099c3..29158a758f2d666ff4bc6a613d41e5684a961d48 100644 GIT binary patch delta 1079 zcmZY8zfTik9LMo*ZJ~%zutfAgX%$33pi~@Ci3a>NkS0a~8jLz9n#LFh9K_`!BrYZz zLqG=-2TTl0L(*udgDft(*qb!Q7;*CtaB+e6=k9dzNuPV&^W5F@(D9!#`MuDK0gb!L2xmm3Rgj z&T>K9wTs~kSJB}?9&2$Hci>ahgs)HotfB^33)>&@Fl`S9u#%Vc{Rz}}IWDZ-u3#Lm zp*C_06L!qZ=T* ze1?R@UZCDD;25rk&lAbuy+*8{zXdOohc+xxXIQU7GuUp{isPu2-ETM7Mz~p^;~f6P ze(XOGym%88t4FA0EFk0A67Iq`VgD!Wqx}sP%UUwpg~O-~-9~-?1X;5!B2lnHhii6+ zn>9LSG1F<*gGD@x>sW=Ij7EO!5Ng0-R1&TuKfA|86D%QXuodjaFJXVh!C=Qp)T!%5 zCHb_=jaD=oc1)s<;S>(xbIjvc)Xq;asupkoHQ_Wa<3nu1K2|SBP!YO;5!4A{kN*`v z|5~xiPO5gRzmD=#P0dgl+ds-0Sd(X|8eBPLUH+*9e?cus7XOtk+$l9WKYOT(8bR?- zA}MIHGz}GnWxszHTvBshw7G}n`+?W7iBlDWzlGfRfB9Zi%=Q(X*wLDJZaO`czdKnx aU;n{LESBGuOKI;xd8J(PW{OVN@#rRqu4ESg delta 1054 zcmZA0Pe_zO7{~Ev+jU)a%Rf=NuDY65?z*~yAyKXn9ufpKL@+}SUBo&l2z3a2i3$ae z;znrV&59s#4^lUwgLU)d$)KZNMUU0@_wIOUVBXKn`{$XNXXgDoelYI+stTuW%_R}nN{FByo#T&6?d@(kFgxfxkNF6C78xAb|c{|Tj+b% z?_Lxsgc|6?^#hfKei=4#KZeTWT`WcqHShxJ`y7rk zzHPV{&YXX+i2LCxvkA5%ieITun7%U9a>J|{dr=d8i~~52!}t@sFn+V}-ViEdbEqwu zN5a_>dNnlG-Gd$Mr2ie2(o;-fiVfC^Mo|HtBXhLZ$l@)BGq{PbusUhhj;nYde_#YF z38px;sIBNpk$(*^%te7;AYIwb>c}rC8 diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.po b/evibes/locale/ru_RU/LC_MESSAGES/django.po index 5aaab4c4..e98e1260 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/evibes/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Версия\n" "Текущая версия API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Меню" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Мой сайт" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Панель" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Здоровье" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Конфигурация" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Периодические задачи" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Канбан" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Поддержка" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Меню" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Панель" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Конфигурация" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Периодические задачи" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Канбан" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Быстрые ссылки" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Пользователи" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Группы" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Заказы" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Товары" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Категории" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Бренды" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Посты" diff --git a/evibes/locale/sv_SE/LC_MESSAGES/django.mo b/evibes/locale/sv_SE/LC_MESSAGES/django.mo index f95439836f45b453a9c11e982c5e7ce6c640ecf8..14e652c45253066ebbc0442f7108fe8bf17b6f1d 100644 GIT binary patch delta 1078 zcmZA0K}b|V9LMqh=B8%4Zf@a!HtG-* zhDa1ahm7#D1WP0lM9@j-utC?@LloV*bm>yx-+R-gfq9>qdGp?z`TytL&A-h1U)rLp zM#)n5P}d@6XKD~Jb7{sQ+=eHx9!HSZ zSt0EEcF|3^f=O-^u?278E_{Ic;0x3XHc&5k=lYv?lztU+SkGiVe+uoCsX`~srkNQA4xMB7RyXb$wMy%m>{NenyaypXmwYTJs@RL2bkA4;v!*SFn zA0lC~r>Oa5JdYdheylB=*N$5mPvIna$lxFLT4KF4t(0;(K=s#C=G#FUZyD&pZ>ShH zu^$CLc@<&tit@HU zXoZ*bO0}+QaFC8NtkaC5E_&iCHC4f+9jYVZ@ctPA-BXxD#>gv;{*JJy;#Oh{DV=9@)N-%R$~UM@CkA|8wuvV z<=q8inBb2|ti^e}kBg`cH&HkEh`Pann}5MU=4BkhbJY5N7HQoGKRmm=L?!SVc}APT zr1@s=IM9uY?vEX8V!n@e@EB|Ghw~>Yqu;2F&fGjy7tCw0jq?dqC7FV< zDwsuICx$qnYBq{3IEL!&96rJ&R4aB-nS4gw;45nVF^=MQ%wg0sYrt{r!vd-WMWk4^ zh2&`a9`$F99dSaXIYBKvMLkFbbyTT5R3>TEbx%EU<_nm|Jyb\n" "Language-Team: LANGUAGE \n" @@ -241,62 +241,66 @@ msgstr "" "## Version\n" "Aktuell API-version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Meny" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Min webbplats" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Instrumentpanel" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Hälsa" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfig" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Periodiska uppgifter" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Uppgiftstavla" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Stöd" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Meny" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Instrumentpanel" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfig" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Periodiska uppgifter" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Uppgiftstavla" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Snabblänkar" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Användare" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Grupper" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Beställningar" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Produkter" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategorier" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Brands" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blogginlägg" diff --git a/evibes/locale/th_TH/LC_MESSAGES/django.mo b/evibes/locale/th_TH/LC_MESSAGES/django.mo index d8d9d8763d5e29b79e08720a689a47615147def7..4cdf9be0791c07f1edb52ff6c01f26f6dddc2c8e 100644 GIT binary patch delta 1106 zcmZA0Pe@cz6vy$SV_G>gPEMJV=2)6#{%NLKXhkB1w3$VT^pA=NqoE?AAX>yTD zAwz#a+z1kp5E8s`V~dDr6SJ#L+?FkZS`^eG`u^U$HeGn{bI*Nm?mPF~JBz0$^4_QV zs)Et7T+LiF6=p-&9pOgnt1>&X+^ipy#D%z70-s_7F5o6CVLSfDI!tqm;uc(nyRaIE zk?AZ~jy*dVzHl5W*(h11NTuMmNl$A_ttfx84c8H8Q8gSv zeexkv7Mn)BKZm2}htK2n<@XwJ3F9qzlznK&SF6n?$afp#LtWGpFJlI0yUeo#bUrX} z7Bk&un{f(z@GUB#pU7O+$Y3LOp~m-w@hRL#?BPZ%;cones%>9yc~j5f8se*{`5yIp zX7}hkV_+KlNl%%6!~u+vW)yR%#13N%-b5uZgPr&WHQ_f@f|0D*UTj9~!C2@u)G3|9 zmAK&1Sxe`AIPewQh%2|69l{P&g5#(U#>q~{G=rLW6hGqyjNu5&l_yXMoyQ8)3DPnD zzXkiRlBuy(!Aa3yN0aNAYQLy{aFkU#B|(nCDs|l1x!}}6P$^ZXLqXUok)j0WM+;4I zsgku^3GGHJ9X0(KHw3-%Ej?L^H1+fl)N!dMI*MA;zox>gnCx9pllAkdsvXgq+?Cdg z`AcK-`xD>OoyBqI&${9*=Ra}98_vJu{DLdqb^e6&pF5xN+s=RC{KxZynLm-gJ@b4! delta 1054 zcmZA0Pe>GD7{~Ev+fB1wbzRLgZPzs`S9fj8j40N?E}o1KDT{~>VgGJ|9;XuZQgo1v zAkkxpQLv}FxO)>ib?lI^crplr$Ww&h-^}a97vA~I^UlosKJTA-{&4+)x0#5%HcFn_ zPJI_LyQ=#z7fN@;?Dk=^3^o$a)|tieEjHsSc4Ha4@F&(|J(n1!um-bOg%^Du@)!s2tGp%_y*O%dsGJ>UHk>l6PNKK?x4Ou!$4kmW`VBX}Jr@HBqLL9C#bxT7!F+c7*wd>_@}Q+$aFxQuDCQ=(\n" "Language-Team: LANGUAGE \n" @@ -206,62 +206,66 @@ msgstr "" "- ภาษาที่มีให้บริการสามารถดึงข้อมูลได้จากจุดสิ้นสุด `/app/languages/` - เนื้อหาที่แสดงต่อผู้ใช้ทั้งหมดรองรับหลายภาษาโดยอัตโนมัติ ## รูปแบบการตอบกลับ API รองรับรูปแบบการตอบกลับหลายรูปแบบ: - **JSON** (ค่าเริ่มต้น, รูปแบบ camelCase) - **XML** (เพิ่ม `?format=xml` หรือตั้งค่า `Accept: application/xml`)\n" "- **YAML** (เพิ่ม `?format=yaml` หรือตั้งค่า `Accept: application/x-yaml`) ## สุขภาพและการตรวจสอบ - การตรวจสอบสุขภาพ: `/health/` - เมตริก Prometheus (ป้องกันด้วย basic-auth): `/prometheus/` ## เวอร์ชัน เวอร์ชัน API ปัจจุบัน: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "เมนู" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "เว็บไซต์ของฉัน" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "แดชบอร์ด" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "สุขภาพ" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "การกำหนดค่า" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "งานประจำ" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "กระดานงาน" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "การสนับสนุน" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "เมนู" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "แดชบอร์ด" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "การกำหนดค่า" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "งานประจำ" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "กระดานงาน" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "ลิงก์ด่วน" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "ผู้ใช้" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "กลุ่ม" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "คำสั่ง" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "ผลิตภัณฑ์" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "หมวดหมู่" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "แบรนด์" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "บทความบล็อก" diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.mo b/evibes/locale/tr_TR/LC_MESSAGES/django.mo index dad5ae1f5b9bf000f302b24da145d4e5a8cdefd4..df5587a6cd85645da2bcb45c89c5d830616f9d58 100644 GIT binary patch delta 1076 zcmZA0OGs2v9LMqhIFnO3PU9nM)Mmyu?bdUzpw)TIM)lOLp7e(maGbfY{4et9#jr&`RSRDXXn9*L&0&W&L_ z!t&MOLrmdw)QaAs27ZSc_!DZNZ`h2h?s z-T2BqSj3~mU+^48TY}Bap$52!`fd_0;9VDgb*`W$x`rXt3DPnDzxeyV-`!QJl$J16 zvsbFRsO?nEzMjfL{eMl9Rf-Q$b?Q{~zbI?_6u44`-Be9x4^@+Iqbi$ZqTVtzRCGZ0 z`mNxSE|kIz9okiX3}YGo4sxRYm4meO%Xd=s>oymYk>jywb}Dl_e`mZnlE_t6^p8*G NC;WJ#INQ`$wh3S(U8Vp4 delta 1054 zcmZA0OGs2v9LMqhIOAkF=BrHeF*Es^@zF@gAcnYb(V$_X2uieQB`D}ZY!S%SMYU`Z zO$3Q;f(jvMT(xR;&L$AtPNJ@gc7?PGzd!HMMF;-#Ip^Ftum8DsJyX2neXj|1YplbMn7}-?;ZLl@N`4|3#f#X3VN4^_*^uA% zEaU!g4;y$eixs$xS8*M+;49Pw?@<$ca_ukJPdkqTc#ImKVvxoS@x$J29Cd&xWREt7 zQS;0mQPIR%_h17XX>VZ}?qE6YI*X_i{Xi}B+qDDLe!Cpw^f#a~c^faFhg$dN8eKO8&%VJZFL8nXvnM+EoT!93en%15LANgg6=+Y0vLQ|C4^g&jKoAW5-s%s)^a z>OfKSw4-h+8Zd~O=q_Ht$EYiLj@R%5>Lhv86%!~w(J#~;{Y70tgojF10`)H3LY+9{+Ow!DSi*W-b^TdP)84`{JVIS@ zs@0!AjT$%F>hZ!+nQw0JHV8jR!?swS&*h4?_p2@C#IsQ>@~ diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.po b/evibes/locale/tr_TR/LC_MESSAGES/django.po index 5ee43fee..85515970 100644 --- a/evibes/locale/tr_TR/LC_MESSAGES/django.po +++ b/evibes/locale/tr_TR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -242,62 +242,66 @@ msgstr "" "## Sürüm\n" "Geçerli API sürümü: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Menü" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Benim sitem" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Gösterge Tablosu" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Sağlık" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Konfigürasyon" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Periyodik Görevler" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Görev Panosu" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Destek" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Menü" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Gösterge Tablosu" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Konfigürasyon" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Periyodik Görevler" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Görev Panosu" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Hızlı Bağlantılar" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Kullanıcılar" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Gruplar" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Siparişler" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Ürünler" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Kategoriler" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Markalar" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Blog Yazıları" diff --git a/evibes/locale/vi_VN/LC_MESSAGES/django.mo b/evibes/locale/vi_VN/LC_MESSAGES/django.mo index 5b8f32a4835974bf98c3f14d25ad40ed906432bd..f1f402c253ab13f27f6dcb7c1ec11525bad4cbae 100644 GIT binary patch delta 1084 zcmZA0%WG3X6vy$CCZ<(utck6r)#jR{K2vLhi)sb&fw*WkmSRAx)=+8?6tp5j;Q9b@ zp`z4aS9T*5yC_Ihf-XcV1>I%iQf#3M{{RD zY?OXt3-Kagb__E?ekcPWvomYV4q%LSIbzm^FR=sP;ZCe!8h_(@Oz_i+eYhGAVHi&! zpR-)O?ONV{;T*>4DB?Q2i|zOXHQ_Ak169-qKKSh~xSw_n2QbXb8h;oyF2@hK+bA|; z0kx1z7_mV!mr8;Mk5CiLdmUzPu#5I5Y{Boi7JvBuoH`PSxmsI%Lw(8=Zlm3g+QVVg zl+TcDu^H6+^EiT4zdsVKzt@4Qc;1a?Ifpd1vz9yLyP4}Q4 zVfL+f5jEf*>X2rT?XkDMi>Rf1_4}7`JMCXcPUa*D%%Ub5MkRIywfEOihkGmOnw_Td zkO!lXz8$o?%0=1x$ z>vudrec(B2<#RZQ3z)~hsLb;{_5K3t7L@QdK1O{o$~MR(>d3Mfz!0Hp{(te#Un^DF zMChgj39UjC_7NFESGkj5hrR!rlGJtILxc$xt+bn9&PHjXwvSLUI$9;Yo6us}!A|d- zsC(zkA{r$zRSS0Y_R`jRw3)h!+^9y`MNNPCy#(81$x1wQu(dgN)45ih9Iu>e%fw<= b$1YDeH^whGg{AkiW6tEl>tdypnr`|B(r98p delta 1054 zcmZA0JxE(o7{>88CR$tLx7KRZ#71pm;s>QjF}T>pL5v{9ir5YvDhi@V-Q?;}96Gj* z2r7<6iyg9c5VDC-id{-I_6Eb| znJsgp4`|Ba34@ z&I9x`vqSg7F?LcvLvpavhh`CMLJgEcB{qTDf@#zq&)@{U#h3UU^?ovH_6Ubj?=7HK zYz0{~dmm-}A9J%sgA)0H>i7%!*)9qL0W@$_CjbBd diff --git a/evibes/locale/vi_VN/LC_MESSAGES/django.po b/evibes/locale/vi_VN/LC_MESSAGES/django.po index 080958ea..ac7d4f89 100644 --- a/evibes/locale/vi_VN/LC_MESSAGES/django.po +++ b/evibes/locale/vi_VN/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -208,62 +208,66 @@ msgstr "" "- Các ngôn ngữ có sẵn có thể được lấy từ điểm cuối `/app/languages/`. - Tất cả nội dung hiển thị cho người dùng đều hỗ trợ nhiều ngôn ngữ ngay từ đầu. ## Định dạng phản hồi API hỗ trợ nhiều định dạng phản hồi: - **JSON** (mặc định, định dạng camelCase) - **XML** (thêm `?format=xml` hoặc đặt `Accept: application/xml`)\n" "- **YAML** (thêm `?format=yaml` hoặc đặt `Accept: application/x-yaml`) ## Sức khỏe & Giám sát - Kiểm tra sức khỏe: `/health/` - Chỉ số Prometheus (bảo vệ bằng basic-auth): `/prometheus/` ## Phiên bản Phiên bản API hiện tại: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "Thực đơn" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "Trang web của tôi" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "Bảng điều khiển" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "Sức khỏe" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "Cấu hình" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "Các tác vụ định kỳ" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "Bảng nhiệm vụ" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "Hỗ trợ" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "Thực đơn" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "Bảng điều khiển" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "Cấu hình" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "Các tác vụ định kỳ" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "Bảng nhiệm vụ" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "Liên kết nhanh" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "Người dùng" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "Nhóm" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "Đơn hàng" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "Sản phẩm" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "Các danh mục" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "Thương hiệu" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "Bài viết trên blog" diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.mo b/evibes/locale/zh_Hans/LC_MESSAGES/django.mo index 43375ce6c05129cae12fbadb274a5afa828760e5..ef86cd4d02afa7715765b5164a1c1233987b5455 100644 GIT binary patch delta 1077 zcmZA0J7`l;9LMp0Y}(oy)0ft!wMn$Kz7lJxV10lQ#X$%{RZt2>kPg*JbP<$0*g>Hv zp%keII*1}_2cuAx;-U`X5?q|bMT2xwa1lhmzkB~K9ys@N&$;J){`Y<1dm;GL9-lGN z5P3EEZp>^S=IVHmM&f2;&1O5WgYrz$tQ8+%C%(W9SjB$)g)Nxjk-$N0!rj<_2aw^c z7?lG%<_$`i;==?k$IG}9%cu$OqXw8q4e-j#?{FLCDvn?Sjn#h-s$Y=@Yqt~Fh^J5+ zIfF^tWft&~q2d~9g1PX6*)!~+{2G_yXIzHg+@I5XV;zC^mTHTp?87ybhfrsD7&YY$ z(P?VmPf}{jc}hRj5eOucPZwm=2P2WSvGg zIgAg~E)?#Y$(l$>3*#VcKm|`rP#e*vxP>ruH=%Y%zC_k(sX6_2jj8 zMMNK2p{PUsmp1aEUw#W&zwX*fD!wz(SiF!uH*tQvGTM45nfQ98T)R10TPW8a&Q|WE HAI1Ixx4&J~ delta 1054 zcmZA0OGs2v9LMqh
      Qe3v>lqowB9*a%64A`D0%A-V{`aN#C!kvk)o7oi9@ZbYpx zDB461Tg4`gt&S8%8bQJ~Bs}#DoQA zPk2$sOa9?C#>jud65PZx{N{c~t>_Rn&~ML&s`B|VY@xgXwUd2Vi~(xk=cx8eILi3; z#w+C9e^^L)QMK6w#}UCfT1+v0HOz5NakMMG#i$9V+(Bd$?4f^u?9QSVI`1xGpn?@% z)bTrHEc@)PA#<@E)LHJM>YrdO{`Gv6*>sVw!&^9jsy~A|!l$Tque|&%s^8T(`=8)t z%`5!$3J0i({PFT)DyhRL)?*BHBt34%9YSsK7V`ryuGLfcaak~yFl0R|D;aZz3?*XzUarHyR-go;tfK(&`2~BnwS=$%Wh+Y22#?@ z*ima!#?u8%6IzviPu<`oq1AKmtdmgEuc+VeJjEA&6~wwyWOWm+61sxg)AOXCR<}m` WbB$=pCd0jv?4!!zXm%t1F?0%rXj6>< diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.po b/evibes/locale/zh_Hans/LC_MESSAGES/django.po index 8eebdb56..0653ba03 100644 --- a/evibes/locale/zh_Hans/LC_MESSAGES/django.po +++ b/evibes/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-08 10:56+0300\n" +"POT-Creation-Date: 2025-12-10 21:44+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -239,62 +239,66 @@ msgstr "" "## 版本\n" "当前 API 版本:{EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:57 -msgid "Menu" -msgstr "菜单" +#: evibes/settings/unfold.py:28 +msgid "My site" +msgstr "我的网站" -#: evibes/settings/unfold.py:62 -msgid "Dashboard" -msgstr "仪表板" - -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:36 msgid "Health" msgstr "健康" -#: evibes/settings/unfold.py:72 -msgid "Config" -msgstr "配置" - -#: evibes/settings/unfold.py:77 -msgid "Periodic Tasks" -msgstr "定期任务" - -#: evibes/settings/unfold.py:102 -msgid "Taskboard" -msgstr "任务板" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:40 msgid "Support" msgstr "支持" -#: evibes/settings/unfold.py:119 +#: evibes/settings/unfold.py:77 +msgid "Menu" +msgstr "菜单" + +#: evibes/settings/unfold.py:82 +msgid "Dashboard" +msgstr "仪表板" + +#: evibes/settings/unfold.py:87 +msgid "Config" +msgstr "配置" + +#: evibes/settings/unfold.py:92 +msgid "Periodic Tasks" +msgstr "定期任务" + +#: evibes/settings/unfold.py:117 +msgid "Taskboard" +msgstr "任务板" + +#: evibes/settings/unfold.py:129 msgid "Quick Links" msgstr "快速链接" -#: evibes/settings/unfold.py:124 +#: evibes/settings/unfold.py:134 msgid "Users" msgstr "用户" -#: evibes/settings/unfold.py:129 +#: evibes/settings/unfold.py:139 msgid "Groups" msgstr "组别" -#: evibes/settings/unfold.py:134 +#: evibes/settings/unfold.py:144 msgid "Orders" msgstr "订单" -#: evibes/settings/unfold.py:139 +#: evibes/settings/unfold.py:149 msgid "Products" msgstr "产品" -#: evibes/settings/unfold.py:144 +#: evibes/settings/unfold.py:154 msgid "Categories" msgstr "类别" -#: evibes/settings/unfold.py:149 +#: evibes/settings/unfold.py:159 msgid "Brands" msgstr "品牌" -#: evibes/settings/unfold.py:154 +#: evibes/settings/unfold.py:164 msgid "Blogposts" msgstr "博客文章"