From 27603edf4e6ec95a0d1f7dcd91671074ec9c07aa Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Sun, 29 Jun 2025 19:40:44 +0300 Subject: [PATCH] Features: 1) Introduced `RootDirectory` class for integration with management commands; 2) Added support for scanning root level configurations in `check_translated.py` and `deepl_translate.py`; Fixes: 1) Adjusted Django admin translations display logic for improved clarity; 2) Updated locale files across multiple regions (e.g., `ru_RU`, `zh_Hans`, `ro_RO`) to align with new context placeholders; Extra: Removed obsolete `STOCKS_ARE_SINGLE` setting; minor formatting and spacing corrections in translations and source files. --- blog/locale/ar_AR/LC_MESSAGES/django.po | 4 +- blog/locale/cs_CZ/LC_MESSAGES/django.po | 4 +- blog/locale/da_DK/LC_MESSAGES/django.po | 4 +- blog/locale/de_DE/LC_MESSAGES/django.po | 4 +- blog/locale/en_GB/LC_MESSAGES/django.po | 4 +- blog/locale/en_US/LC_MESSAGES/django.po | 4 +- blog/locale/es_ES/LC_MESSAGES/django.po | 4 +- blog/locale/fr_FR/LC_MESSAGES/django.po | 4 +- blog/locale/hi_IN/LC_MESSAGES/django.po | 4 +- blog/locale/it_IT/LC_MESSAGES/django.po | 4 +- blog/locale/ja_JP/LC_MESSAGES/django.po | 4 +- blog/locale/kk_KZ/LC_MESSAGES/django.po | 4 +- blog/locale/nl_NL/LC_MESSAGES/django.po | 4 +- blog/locale/pl_PL/LC_MESSAGES/django.po | 4 +- blog/locale/pt_BR/LC_MESSAGES/django.po | 4 +- blog/locale/ro_RO/LC_MESSAGES/django.po | 4 +- blog/locale/ru_RU/LC_MESSAGES/django.po | 4 +- blog/locale/zh_Hans/LC_MESSAGES/django.po | 4 +- core/locale/ar_AR/LC_MESSAGES/django.po | 577 +++++++-------- core/locale/cs_CZ/LC_MESSAGES/django.po | 569 +++++++-------- core/locale/da_DK/LC_MESSAGES/django.po | 592 +++++++-------- core/locale/de_DE/LC_MESSAGES/django.po | 624 ++++++++-------- core/locale/en_GB/LC_MESSAGES/django.po | 484 ++++++------- core/locale/en_US/LC_MESSAGES/django.po | 573 +++++++-------- core/locale/es_ES/LC_MESSAGES/django.po | 589 +++++++-------- core/locale/fr_FR/LC_MESSAGES/django.po | 606 ++++++++-------- core/locale/hi_IN/LC_MESSAGES/django.po | 484 ++++++------- core/locale/it_IT/LC_MESSAGES/django.po | 612 ++++++++-------- core/locale/ja_JP/LC_MESSAGES/django.po | 673 ++++++++++-------- core/locale/kk_KZ/LC_MESSAGES/django.po | 484 ++++++------- core/locale/nl_NL/LC_MESSAGES/django.po | 592 +++++++-------- core/locale/pl_PL/LC_MESSAGES/django.po | 575 +++++++-------- core/locale/pt_BR/LC_MESSAGES/django.po | 572 +++++++-------- core/locale/ro_RO/LC_MESSAGES/django.po | 593 +++++++-------- core/locale/ru_RU/LC_MESSAGES/django.po | 589 +++++++-------- core/locale/zh_Hans/LC_MESSAGES/django.po | 566 ++++++++------- core/management/commands/__init__.py | 7 + core/management/commands/check_translated.py | 7 +- core/management/commands/deepl_translate.py | 8 +- evibes/locale/ar_AR/LC_MESSAGES/django.mo | Bin 359 -> 10337 bytes evibes/locale/ar_AR/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/cs_CZ/LC_MESSAGES/django.mo | Bin 359 -> 8950 bytes evibes/locale/cs_CZ/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/da_DK/LC_MESSAGES/django.mo | Bin 359 -> 8623 bytes evibes/locale/da_DK/LC_MESSAGES/django.po | 254 ++++--- evibes/locale/de_DE/LC_MESSAGES/django.mo | Bin 359 -> 9077 bytes evibes/locale/de_DE/LC_MESSAGES/django.po | 254 ++++--- evibes/locale/en_GB/LC_MESSAGES/django.mo | Bin 402 -> 8420 bytes evibes/locale/en_GB/LC_MESSAGES/django.po | 248 ++++--- evibes/locale/en_US/LC_MESSAGES/django.mo | Bin 359 -> 8425 bytes evibes/locale/en_US/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/es_ES/LC_MESSAGES/django.mo | Bin 359 -> 9223 bytes evibes/locale/es_ES/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/fr_FR/LC_MESSAGES/django.mo | Bin 359 -> 9378 bytes evibes/locale/fr_FR/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/hi_IN/LC_MESSAGES/django.po | 68 +- evibes/locale/it_IT/LC_MESSAGES/django.mo | Bin 359 -> 9109 bytes evibes/locale/it_IT/LC_MESSAGES/django.po | 254 ++++--- evibes/locale/ja_JP/LC_MESSAGES/django.mo | Bin 359 -> 9408 bytes evibes/locale/ja_JP/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/kk_KZ/LC_MESSAGES/django.po | 68 +- evibes/locale/nl_NL/LC_MESSAGES/django.mo | Bin 359 -> 8727 bytes evibes/locale/nl_NL/LC_MESSAGES/django.po | 254 ++++--- evibes/locale/pl_PL/LC_MESSAGES/django.mo | Bin 359 -> 9038 bytes evibes/locale/pl_PL/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/pt_BR/LC_MESSAGES/django.mo | Bin 401 -> 9047 bytes evibes/locale/pt_BR/LC_MESSAGES/django.po | 256 ++++--- evibes/locale/ro_RO/LC_MESSAGES/django.mo | Bin 359 -> 9244 bytes evibes/locale/ro_RO/LC_MESSAGES/django.po | 255 ++++--- evibes/locale/ru_RU/LC_MESSAGES/django.mo | Bin 359 -> 11543 bytes evibes/locale/ru_RU/LC_MESSAGES/django.po | 254 ++++--- evibes/locale/zh_Hans/LC_MESSAGES/django.mo | Bin 395 -> 7887 bytes evibes/locale/zh_Hans/LC_MESSAGES/django.po | 256 ++++--- evibes/settings/constance.py | 4 - evibes/settings/jazzmin.py | 18 +- payments/locale/ar_AR/LC_MESSAGES/django.po | 14 +- payments/locale/cs_CZ/LC_MESSAGES/django.po | 14 +- payments/locale/da_DK/LC_MESSAGES/django.po | 14 +- payments/locale/de_DE/LC_MESSAGES/django.po | 14 +- payments/locale/en_GB/LC_MESSAGES/django.po | 6 +- payments/locale/en_US/LC_MESSAGES/django.po | 14 +- payments/locale/es_ES/LC_MESSAGES/django.po | 17 +- payments/locale/fr_FR/LC_MESSAGES/django.po | 20 +- payments/locale/hi_IN/LC_MESSAGES/django.po | 6 +- payments/locale/it_IT/LC_MESSAGES/django.po | 17 +- payments/locale/ja_JP/LC_MESSAGES/django.po | 13 +- payments/locale/kk_KZ/LC_MESSAGES/django.po | 6 +- payments/locale/nl_NL/LC_MESSAGES/django.po | 14 +- payments/locale/pl_PL/LC_MESSAGES/django.po | 17 +- payments/locale/pt_BR/LC_MESSAGES/django.po | 14 +- payments/locale/ro_RO/LC_MESSAGES/django.po | 14 +- payments/locale/ru_RU/LC_MESSAGES/django.po | 14 +- payments/locale/zh_Hans/LC_MESSAGES/django.po | 14 +- vibes_auth/locale/ar_AR/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/da_DK/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/de_DE/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/en_GB/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/en_US/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/es_ES/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/fr_FR/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/hi_IN/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/it_IT/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/ja_JP/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/nl_NL/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/pl_PL/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/pt_BR/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/ro_RO/LC_MESSAGES/django.po | 26 +- vibes_auth/locale/ru_RU/LC_MESSAGES/django.po | 26 +- .../locale/zh_Hans/LC_MESSAGES/django.po | 26 +- 111 files changed, 8090 insertions(+), 7296 deletions(-) diff --git a/blog/locale/ar_AR/LC_MESSAGES/django.po b/blog/locale/ar_AR/LC_MESSAGES/django.po index f5a9d070..d6829c39 100644 --- a/blog/locale/ar_AR/LC_MESSAGES/django.po +++ b/blog/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/cs_CZ/LC_MESSAGES/django.po b/blog/locale/cs_CZ/LC_MESSAGES/django.po index e915c706..132ad618 100644 --- a/blog/locale/cs_CZ/LC_MESSAGES/django.po +++ b/blog/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/da_DK/LC_MESSAGES/django.po b/blog/locale/da_DK/LC_MESSAGES/django.po index 46d72f62..125b261e 100644 --- a/blog/locale/da_DK/LC_MESSAGES/django.po +++ b/blog/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/de_DE/LC_MESSAGES/django.po b/blog/locale/de_DE/LC_MESSAGES/django.po index dedd31ad..770c510b 100644 --- a/blog/locale/de_DE/LC_MESSAGES/django.po +++ b/blog/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/en_GB/LC_MESSAGES/django.po b/blog/locale/en_GB/LC_MESSAGES/django.po index d7d73339..0007ac7a 100644 --- a/blog/locale/en_GB/LC_MESSAGES/django.po +++ b/blog/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/en_US/LC_MESSAGES/django.po b/blog/locale/en_US/LC_MESSAGES/django.po index 9272d2ef..4c5b42f4 100644 --- a/blog/locale/en_US/LC_MESSAGES/django.po +++ b/blog/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/es_ES/LC_MESSAGES/django.po b/blog/locale/es_ES/LC_MESSAGES/django.po index 0949d9d5..0cbd963b 100644 --- a/blog/locale/es_ES/LC_MESSAGES/django.po +++ b/blog/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/fr_FR/LC_MESSAGES/django.po b/blog/locale/fr_FR/LC_MESSAGES/django.po index f4d1c0df..81d9be0b 100644 --- a/blog/locale/fr_FR/LC_MESSAGES/django.po +++ b/blog/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/hi_IN/LC_MESSAGES/django.po b/blog/locale/hi_IN/LC_MESSAGES/django.po index cde6b30e..2aafbe02 100644 --- a/blog/locale/hi_IN/LC_MESSAGES/django.po +++ b/blog/locale/hi_IN/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/it_IT/LC_MESSAGES/django.po b/blog/locale/it_IT/LC_MESSAGES/django.po index 33bc4952..66658f56 100644 --- a/blog/locale/it_IT/LC_MESSAGES/django.po +++ b/blog/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/ja_JP/LC_MESSAGES/django.po b/blog/locale/ja_JP/LC_MESSAGES/django.po index 2963679c..ff9c3d99 100644 --- a/blog/locale/ja_JP/LC_MESSAGES/django.po +++ b/blog/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/kk_KZ/LC_MESSAGES/django.po b/blog/locale/kk_KZ/LC_MESSAGES/django.po index cde6b30e..2aafbe02 100644 --- a/blog/locale/kk_KZ/LC_MESSAGES/django.po +++ b/blog/locale/kk_KZ/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/nl_NL/LC_MESSAGES/django.po b/blog/locale/nl_NL/LC_MESSAGES/django.po index 1a2069d2..eadaa76a 100644 --- a/blog/locale/nl_NL/LC_MESSAGES/django.po +++ b/blog/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/pl_PL/LC_MESSAGES/django.po b/blog/locale/pl_PL/LC_MESSAGES/django.po index 9c80ceda..5c9342e6 100644 --- a/blog/locale/pl_PL/LC_MESSAGES/django.po +++ b/blog/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/pt_BR/LC_MESSAGES/django.po b/blog/locale/pt_BR/LC_MESSAGES/django.po index efa85afe..841e0faa 100644 --- a/blog/locale/pt_BR/LC_MESSAGES/django.po +++ b/blog/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/ro_RO/LC_MESSAGES/django.po b/blog/locale/ro_RO/LC_MESSAGES/django.po index 13146549..e4842420 100644 --- a/blog/locale/ro_RO/LC_MESSAGES/django.po +++ b/blog/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/ru_RU/LC_MESSAGES/django.po b/blog/locale/ru_RU/LC_MESSAGES/django.po index d1974a84..05e6f69a 100644 --- a/blog/locale/ru_RU/LC_MESSAGES/django.po +++ b/blog/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/blog/locale/zh_Hans/LC_MESSAGES/django.po b/blog/locale/zh_Hans/LC_MESSAGES/django.po index addf9a90..18ddad0c 100644 --- a/blog/locale/zh_Hans/LC_MESSAGES/django.po +++ b/blog/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" diff --git a/core/locale/ar_AR/LC_MESSAGES/django.po b/core/locale/ar_AR/LC_MESSAGES/django.po index 3438c4df..473525b5 100644 --- a/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/core/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -25,99 +25,98 @@ msgstr "يستخدم المعرف الفريد لتحديد أي كائن قاع msgid "is active" msgstr "نشط" -#: core/abstract.py:22 +#: 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 "" "إذا تم تعيينه على خطأ، لا يمكن للمستخدمين رؤية هذا الكائن دون الحاجة إلى إذن" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "تم إنشاؤها" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "عندما ظهر الكائن لأول مرة في قاعدة البيانات" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "تم التعديل" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "متى تم تحرير الكائن آخر مرة" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "الترجمات" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "جنرال لواء" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "العلاقات" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "البيانات الوصفية" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "الطوابع الزمنية" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "تنشيط المحدد %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s تم تفعيله بنجاح!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "إلغاء تنشيط %(verbose_name_plural)s المحددة" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s تم إلغاء تنشيطه بنجاح." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "قيمة السمة" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "قيم السمات" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "الصورة" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "الصور" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "المخزون" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "الأسهم" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "طلب المنتج" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "اطلب المنتجات" @@ -125,7 +124,7 @@ msgstr "اطلب المنتجات" msgid "children" msgstr "الأطفال" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "التكوين" @@ -187,7 +186,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "تطبيق مفتاح فقط لقراءة البيانات المسموح بها من ذاكرة التخزين المؤقت.\n" -"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين المؤقت." +"تطبيق مفتاح وبيانات ومهلة مع المصادقة لكتابة البيانات إلى ذاكرة التخزين " +"المؤقت." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -242,8 +242,7 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "إعادة كتابة مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "إعادة كتابة بعض حقول مجموعة سمات موجودة تحفظ غير القابلة للتعديل" #: core/docs/drf/viewsets.py:70 @@ -291,8 +290,7 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "إعادة كتابة قيمة سمة موجودة تحفظ غير القابلة للتعديل" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "إعادة كتابة بعض حقول قيمة سمة موجودة حفظ غير قابل للتعديل" #: core/docs/drf/viewsets.py:124 @@ -329,8 +327,8 @@ msgstr "بالنسبة للمستخدمين من غير الموظفين، يت #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "البحث في سلسلة فرعية غير حساسة لحالة الأحرف عبر human_readable_id و " "order_products.product.name و order_products.product.partnumber" @@ -366,9 +364,9 @@ msgstr "تصفية حسب حالة الطلب (مطابقة سلسلة فرعي #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "الترتيب حسب واحد من: uuid، معرف_بشري_مقروء، بريد_إلكتروني_مستخدم، مستخدم، " "حالة، إنشاء، تعديل، وقت_الشراء، عشوائي. البادئة بحرف \"-\" للترتيب التنازلي " @@ -438,8 +436,7 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" " -"المتوفرة." +"يضيف قائمة من المنتجات إلى طلب باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." #: core/docs/drf/viewsets.py:266 msgid "remove product from order" @@ -449,7 +446,8 @@ msgstr "إزالة منتج من الطلب" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." +msgstr "" +"يزيل منتجًا من أحد الطلبات باستخدام \"معرّف_المنتج\" و\"السمات\" المتوفرة." #: core/docs/drf/viewsets.py:272 msgid "remove product from order, quantities will not count" @@ -535,20 +533,32 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " +"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " +"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " +"`true`/`false` for booleans, integers, floats; otherwise treated as " +"string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," +"\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "تصفية حسب زوج واحد أو أكثر من أسماء/قيم السمات. \n" "- **صيغة**: `attr_name=الطريقة-القيمة[ ؛ attr2=الطريقة2-القيمة2]...`\n" -"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، \"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، \"lte\"، \"gt\"، \"gte\"، \"in\n" -"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم التعامل معها كسلسلة. \n" -"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- لتشفير القيمة الخام. \n" +"- **الأساليب** (افتراضيًا إلى \"يحتوي على\" إذا تم حذفها): \"بالضبط\"، " +"\"بالضبط\"، \"بالضبط\"، \"يحتوي\"، \"يحتوي\"، \"لاغية\"، \"يبدأ ب\"، \"يبدأ " +"ب\"، \"يبدأ ب\"، \"ينتهي ب\"، \"ينتهي ب\"، \"regex\"، \"iregex\"، \"lt\"، " +"\"lte\"، \"gt\"، \"gte\"، \"in\n" +"- **كتابة القيمة**: تتم تجربة JSON أولًا (حتى تتمكن من تمرير القوائم/" +"المجادلات)، \"صحيح\"/\"خطأ\" للمنطقيين والأعداد الصحيحة والعوامات؛ وإلا يتم " +"التعامل معها كسلسلة. \n" +"- **القاعدة 64**: البادئة ب \"b64-\" لتشفير القيمة الخام بأمان لقاعدة 64- " +"لتشفير القيمة الخام. \n" "أمثلة: \n" -"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، 'fatures=in-[\"wifi\",\"bluetooth\"],\n" +"'color=exact-red'، 'size=gt-10'، 'features=in-[\"wifi\"،\"bluetooth\"]، " +"'fatures=in-[\"wifi\",\"bluetooth\"],\n" "\"b64-description=icontains-aGVhdC1jb2xk" #: core/docs/drf/viewsets.py:349 @@ -601,7 +611,8 @@ msgstr "(بالضبط) الرقمية مقابل المادية" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" "قائمة مفصولة بفواصل من الحقول للفرز حسب. البادئة بـ \"-\" للفرز التنازلي. \n" @@ -731,7 +742,7 @@ msgstr "حذف علاقة الطلب-المنتج" msgid "add or remove feedback on an order–product relation" msgstr "إضافة أو إزالة الملاحظات على العلاقة بين الطلب والمنتج" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "لم يتم توفير مصطلح بحث." @@ -779,8 +790,8 @@ msgstr "السمات" msgid "Quantity" msgstr "الكمية" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "سبيكة" @@ -937,8 +948,8 @@ msgstr "شراء طلبية" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "الرجاء إرسال السمات كسلسلة منسقة مثل attr1=قيمة1، attr2=قيمة2" #: core/graphene/mutations.py:546 @@ -959,7 +970,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - يعمل مثل السحر" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "السمات" @@ -972,11 +983,11 @@ msgid "groups of attributes" msgstr "مجموعات السمات" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "الفئات" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "العلامات التجارية" @@ -985,7 +996,7 @@ msgid "category image url" msgstr "الفئات" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "النسبة المئوية للترميز" @@ -994,8 +1005,7 @@ msgid "which attributes and values can be used for filtering this category." msgstr "ما هي السمات والقيم التي يمكن استخدامها لتصفية هذه الفئة." #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +msgid "minimum and maximum prices for products in this category, if available." msgstr "" "الحد الأدنى والحد الأقصى لأسعار المنتجات في هذه الفئة، إذا كانت متوفرة." @@ -1007,7 +1017,7 @@ msgstr "العلامات الخاصة بهذه الفئة" msgid "products in this category" msgstr "المنتجات في هذه الفئة" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "البائعون" @@ -1032,7 +1042,7 @@ msgid "represents feedback from a user." msgstr "يمثل ملاحظات من المستخدم." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "الإشعارات" @@ -1044,7 +1054,7 @@ msgstr "تحميل الرابط الخاص بمنتج الطلب هذا إن أ msgid "a list of order products in this order" msgstr "قائمة بطلب المنتجات بهذا الترتيب" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "عنوان إرسال الفواتير" @@ -1068,7 +1078,7 @@ msgstr "إجمالي كمية المنتجات بالترتيب" msgid "are all products in the order digital" msgstr "هل جميع المنتجات في الطلب رقمي" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "الطلبات" @@ -1080,19 +1090,19 @@ msgstr "رابط الصورة" msgid "product's images" msgstr "صور المنتج" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "الفئة" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "الملاحظات" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "العلامة التجارية" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "مجموعات السمات" @@ -1116,7 +1126,7 @@ msgstr "الكمية" msgid "number of feedbacks" msgstr "عدد الملاحظات" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "المنتجات" @@ -1128,15 +1138,15 @@ msgstr "الرموز الترويجية" msgid "products on sale" msgstr "المنتجات المعروضة للبيع" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "العروض الترويجية" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "البائع" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1144,11 +1154,11 @@ msgstr "البائع" msgid "product" msgstr "المنتج" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "المنتجات المفضلة" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "قوائم التمنيات" @@ -1156,7 +1166,7 @@ msgstr "قوائم التمنيات" msgid "tagged products" msgstr "المنتجات الموسومة" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "علامات المنتج" @@ -1191,8 +1201,8 @@ msgstr "رقم هاتف الشركة" #: core/graphene/object_types.py:506 msgid "email from, sometimes it must be used instead of host user value" msgstr "" -"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم" -" المضيف" +"\"البريد الإلكتروني من\"، في بعض الأحيان يجب استخدامه بدلاً من قيمة المستخدم " +"المضيف" #: core/graphene/object_types.py:507 msgid "email host user" @@ -1243,799 +1253,796 @@ msgstr "نتائج البحث عن المنتجات" msgid "posts search results" msgstr "نتائج البحث عن المنتجات" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "والد هذه المجموعة" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "مجموعة السمات الرئيسية" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "اسم مجموعة السمات" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "مجموعة السمات" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "تخزين بيانات الاعتماد ونقاط النهاية المطلوبة لاتصالات واجهة برمجة التطبيقات " "الخاصة بالمورّد" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "معلومات المصادقة" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "تحديد الترميز للمنتجات المسترجعة من هذا البائع" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "نسبة هامش الربح للبائع" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "اسم هذا البائع" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "اسم البائع" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "معرّف العلامة الداخلي لعلامة المنتج" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "اسم العلامة" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "اسم سهل الاستخدام لعلامة المنتج" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "اسم عرض العلامة" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "علامة المنتج" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "علامة الفئة" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "علامات الفئة" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "تحميل صورة تمثل هذه الفئة" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "صورة الفئة" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "تحديد نسبة ترميز للمنتجات في هذه الفئة" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "أصل هذه الفئة لتكوين بنية هرمية" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "الفئة الرئيسية" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "اسم الفئة" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "تقديم اسم لهذه الفئة" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "إضافة وصف تفصيلي لهذه الفئة" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "وصف الفئة" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "العلامات التي تساعد في وصف هذه الفئة أو تجميعها" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "الأولوية" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "اسم هذه العلامة التجارية" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "اسم العلامة التجارية" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "تحميل شعار يمثل هذه العلامة التجارية" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "صورة العلامة التجارية الصغيرة" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "رفع شعار كبير يمثل هذه العلامة التجارية" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "صورة كبيرة للعلامة التجارية" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "إضافة وصف تفصيلي للعلامة التجارية" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "وصف العلامة التجارية" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "الفئات الاختيارية التي ترتبط بها هذه العلامة التجارية" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "الفئات" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "الفئة التي ينتمي إليها هذا المنتج" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "ربط هذا المنتج اختياريًا بعلامة تجارية" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "العلامات التي تساعد في وصف أو تجميع هذا المنتج" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "يشير إلى ما إذا كان هذا المنتج يتم تسليمه رقميًا أم لا" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "هل المنتج رقمي" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "توفير اسم تعريفي واضح للمنتج" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "اسم المنتج" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "إضافة وصف تفصيلي للمنتج" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "وصف المنتج" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "رقم الجزء لهذا المنتج" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "رقم الجزء" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "فئة هذه السمة" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "مجموعة هذه السمة" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "الخيط" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "عدد صحيح" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "تعويم" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "منطقية" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "المصفوفة" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "الكائن" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "نوع قيمة السمة" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "نوع القيمة" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "اسم هذه السمة" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "اسم السمة" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "السمة" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "سمة هذه القيمة" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "المنتج المحدد المرتبط بقيمة هذه السمة" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "المنتج المرتبط" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "القيمة المحددة لهذه السمة" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "توفير نص بديل للصورة لإمكانية الوصول" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "النص البديل للصورة" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "تحميل ملف الصورة لهذا المنتج" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "صورة المنتج" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "يحدد الترتيب الذي يتم عرض الصور به" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "أولوية العرض" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "المنتج الذي تمثله هذه الصورة" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "صور المنتج" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "النسبة المئوية للخصم على المنتجات المختارة" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "نسبة الخصم" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "تقديم اسم فريد لهذا العرض الترويجي" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "اسم الترقية" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "وصف الترقية" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "حدد المنتجات المشمولة في هذا العرض الترويجي" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "المنتجات المشمولة" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "الترقية" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "البائع الذي يورد هذا المنتج المخزون" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "البائع المرتبط" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "السعر النهائي للعميل بعد هوامش الربح" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "سعر البيع" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "المنتج المرتبط بإدخال المخزون هذا" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "السعر المدفوع للبائع مقابل هذا المنتج" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "سعر الشراء من البائع" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "الكمية المتوفرة من المنتج في المخزون" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "الكمية في المخزون" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU المعين من قبل البائع لتحديد المنتج" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "وحدة تخزين البائع" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "الملف الرقمي المرتبط بهذا المخزون إن أمكن" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "ملف رقمي" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "إدخالات المخزون" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "المنتجات التي حددها المستخدم على أنها مطلوبة" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "المستخدم الذي يمتلك قائمة الرغبات هذه" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "مالك قائمة الرغبات" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "قائمة الرغبات" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} غير موجود: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "فيلم وثائقي" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "الأفلام الوثائقية" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "لم يتم حلها" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "سطر العنوان للعميل" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "سطر العنوان" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "الشارع" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "المنطقة" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "المدينة" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "المنطقة" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "الرمز البريدي" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "البلد" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "نقطة تحديد الموقع الجغرافي(خط الطول، خط العرض)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "استجابة JSON كاملة من أداة التشفير الجغرافي لهذا العنوان" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "استجابة JSON مخزّنة من خدمة الترميز الجغرافي" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "العنوان" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "العناوين" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "الرمز الفريد الذي يستخدمه المستخدم لاسترداد قيمة الخصم" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "معرّف الرمز الترويجي" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "مبلغ الخصم الثابت المطبق في حالة عدم استخدام النسبة المئوية" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "مبلغ الخصم الثابت" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "النسبة المئوية للخصم المطبق في حالة عدم استخدام مبلغ ثابت" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "النسبة المئوية للخصم" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "الطابع الزمني عند انتهاء صلاحية الرمز الترويجي" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "وقت انتهاء الصلاحية" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "الطابع الزمني الذي يكون هذا الرمز الترويجي صالحاً منه" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "وقت بدء الصلاحية" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" -msgstr "" -"الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" +msgstr "الطابع الزمني عند استخدام الرمز الترويجي، فارغ إذا لم يتم استخدامه بعد" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "الطابع الزمني للاستخدام" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "المستخدم المعين لهذا الرمز الترويجي إن أمكن" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "المستخدم المعين" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "الرمز الترويجي" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "الرموز الترويجية" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين" -" أو لا هذا ولا ذاك." +"يجب تحديد نوع واحد فقط من الخصم (المبلغ أو النسبة المئوية)، وليس كلا النوعين " +"أو لا هذا ولا ذاك." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "تم استخدام الرمز الترويجي بالفعل" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "نوع الخصم غير صالح للرمز الترويجي {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "عنوان إرسال الفواتير المستخدم لهذا الطلب" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "الرمز الترويجي الاختياري المطبق على هذا الطلب" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "الرمز الترويجي المطبق" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "عنوان الشحن المستخدم لهذا الطلب" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "عنوان الشحن" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "الحالة الحالية للطلب في دورة حياته" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "حالة الطلب" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "بنية JSON للإشعارات التي سيتم عرضها للمستخدمين، في واجهة مستخدم المشرف، يتم " "استخدام عرض الجدول" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "تمثيل JSON لسمات الطلب لهذا الطلب" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "المستخدم الذي قدم الطلب" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "المستخدم" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "الطابع الزمني عند الانتهاء من الطلب" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "وقت الشراء" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "معرّف يمكن قراءته بواسطة البشر للطلب" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "معرّف يمكن قراءته من قبل البشر" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "الطلب" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "يجب أن يكون لدى المستخدم طلب واحد فقط معلق في كل مرة!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "لا يمكنك إضافة منتجات إلى طلب غير معلق إلى طلب غير معلق" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "لا يمكنك إضافة منتجات غير نشطة للطلب" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "لا يمكنك إضافة منتجات أكثر من المتوفرة في المخزون" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "لا يمكنك إزالة المنتجات من طلب غير معلق من طلب غير معلق" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} غير موجود مع الاستعلام <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "الرمز الترويجي غير موجود" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "يمكنك فقط شراء المنتجات المادية مع تحديد عنوان الشحن فقط!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "العنوان غير موجود" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "لا يمكنك الشراء في هذه اللحظة، يرجى المحاولة مرة أخرى بعد بضع دقائق." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "قيمة القوة غير صالحة" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "لا يمكنك شراء طلبية فارغة!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "عدم كفاية الأموال لإكمال الطلب" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد" -" الإلكتروني للعميل، رقم هاتف العميل" +"لا يمكنك الشراء بدون تسجيل، يرجى تقديم المعلومات التالية: اسم العميل، البريد " +"الإلكتروني للعميل، رقم هاتف العميل" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "طريقة الدفع غير صالحة: {payment_method} من {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "السعر الذي دفعه العميل لهذا المنتج وقت الشراء" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "سعر الشراء وقت الطلب" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "تعليقات داخلية للمسؤولين حول هذا المنتج المطلوب" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "التعليقات الداخلية" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "إشعارات المستخدم" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "تمثيل JSON لسمات هذا العنصر" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "سمات المنتج المطلوبة" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "الإشارة إلى الطلب الأصلي الذي يحتوي على هذا المنتج" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "ترتيب الوالدين" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "المنتج المحدد المرتبط بخط الطلب هذا" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "كمية هذا المنتج المحدد في الطلب" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "كمية المنتج" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "الحالة الحالية لهذا المنتج بالترتيب" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "حالة خط الإنتاج" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "إجراء خاطئ محدد للتغذية الراجعة: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "لا يمكنك التعليق على طلب لم يتم استلامه" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "تنزيل" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "التنزيلات" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "لا يمكنك تنزيل أصل رقمي لطلب غير مكتمل" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "التعليقات المقدمة من المستخدمين حول تجربتهم مع المنتج" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "تعليقات على الملاحظات" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "الإشارة إلى المنتج المحدد في الطلب الذي تدور حوله هذه الملاحظات" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "منتجات الطلبات ذات الصلة" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "التصنيف المعين من قبل المستخدم للمنتج" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "تصنيف المنتج" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "الملاحظات" @@ -2076,11 +2083,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! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل." -" فيما يلي تفاصيل طلبك:" +"شكرًا لك على طلبك #%(order.pk)s! يسعدنا إبلاغك بأننا قد أخذنا طلبك في العمل. " +"فيما يلي تفاصيل طلبك:" #: core/templates/digital_order_created_email.html:112 #: core/templates/digital_order_delivered_email.html:111 @@ -2166,7 +2174,8 @@ msgstr "المفتاح" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "شكرًا لك على طلبك! يسعدنا تأكيد طلبك. فيما يلي تفاصيل طلبك:" diff --git a/core/locale/cs_CZ/LC_MESSAGES/django.po b/core/locale/cs_CZ/LC_MESSAGES/django.po index ae574cb7..100f23b2 100644 --- a/core/locale/cs_CZ/LC_MESSAGES/django.po +++ b/core/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -26,100 +26,99 @@ msgstr "" msgid "is active" msgstr "Je aktivní" -#: core/abstract.py:22 +#: 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í." -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Vytvořeno" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Kdy se objekt poprvé objevil v databázi" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Upraveno" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Kdy byl objekt naposledy upraven" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Překlady" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Obecné" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Vztahy" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadata" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Časová razítka" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivovat vybrané %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s úspěšně aktivován!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktivovat vybrané %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s byl úspěšně deaktivován." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Hodnota atributu" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Hodnoty atributů" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Obrázek" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Obrázky" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stock" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Zásoby" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Objednat produkt" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Objednat produkty" @@ -127,7 +126,7 @@ msgstr "Objednat produkty" msgid "children" msgstr "Děti" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Konfigurace" @@ -246,8 +245,7 @@ msgstr "" "Přepsání existující skupiny atributů s uložením neupravitelných položek" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Přepsání některých polí existující skupiny atributů s uložením " "neupravitelných položek" @@ -299,8 +297,7 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Přepsání existující hodnoty atributu uložením neupravitelných položek" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Přepsání některých polí existující hodnoty atributu s uložením " "neupravitelných položek" @@ -342,12 +339,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "Vyhledávání podřetězců bez ohledu na velikost písmen v položkách " -"human_readable_id, order_products.product.name a " -"order_products.product.partnumber" +"human_readable_id, order_products.product.name a order_products.product." +"partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -383,9 +380,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Řazení podle jedné z následujících možností: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Pro sestupné " @@ -426,8 +423,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí" -" s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " +"Dokončí nákup objednávky. Pokud je použito `force_balance`, nákup se dokončí " +"s použitím zůstatku uživatele; pokud je použito `force_payment`, zahájí se " "transakce." #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 @@ -542,8 +539,7 @@ msgstr "Přidání mnoha produktů do seznamu přání" #: core/docs/drf/viewsets.py:320 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "" -"Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." +msgstr "Přidá mnoho produktů do seznamu přání pomocí zadaných `product_uuids`." #: core/docs/drf/viewsets.py:325 msgid "remove many products from wishlist" @@ -559,18 +555,28 @@ 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`" @@ -625,10 +631,12 @@ msgstr "(přesně) Digitální vs. fyzické" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné řazení použijte předponu `-`. \n" +"Seznam polí oddělených čárkou, podle kterých se má třídit. Pro sestupné " +"řazení použijte předponu `-`. \n" "**Povolené:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -756,7 +764,7 @@ msgstr "odstranit vztah objednávka-produkt" msgid "add or remove feedback on an order–product relation" msgstr "přidat nebo odebrat zpětnou vazbu na vztah objednávka-produkt." -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Nebyl zadán žádný vyhledávací termín." @@ -804,8 +812,8 @@ msgstr "Atributy" msgid "Quantity" msgstr "Množství" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Slug" @@ -962,11 +970,11 @@ msgstr "Koupit objednávku" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" -"Prosím, pošlete atributy jako řetězec ve formátu " -"attr1=hodnota1,attr2=hodnota2." +"Prosím, pošlete atributy jako řetězec ve formátu attr1=hodnota1," +"attr2=hodnota2." #: core/graphene/mutations.py:546 msgid "original address string provided by the user" @@ -986,7 +994,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funguje jako kouzlo" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Atributy" @@ -999,11 +1007,11 @@ msgid "groups of attributes" msgstr "Skupiny atributů" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Značky" @@ -1012,7 +1020,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Procento přirážky" @@ -1021,11 +1029,9 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Které atributy a hodnoty lze použít pro filtrování této kategorie." #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +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." #: core/graphene/object_types.py:135 msgid "tags for this category" @@ -1035,7 +1041,7 @@ msgstr "Štítky pro tuto kategorii" msgid "products in this category" msgstr "Produkty v této kategorii" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Prodejci" @@ -1060,7 +1066,7 @@ msgid "represents feedback from a user." msgstr "Představuje zpětnou vazbu od uživatele." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Oznámení" @@ -1072,7 +1078,7 @@ msgstr "Stáhněte si url adresu pro tento objednaný produkt, pokud je to možn msgid "a list of order products in this order" msgstr "Seznam objednaných produktů v tomto pořadí" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Fakturační adresa" @@ -1096,7 +1102,7 @@ msgstr "Celkové množství objednaných produktů" msgid "are all products in the order digital" msgstr "Jsou všechny produkty v objednávce digitální" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Objednávky" @@ -1108,19 +1114,19 @@ msgstr "Adresa URL obrázku" msgid "product's images" msgstr "Obrázky produktu" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Zpětná vazba" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Značka" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Skupiny atributů" @@ -1144,7 +1150,7 @@ msgstr "Množství" msgid "number of feedbacks" msgstr "Počet zpětných vazeb" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Produkty" @@ -1156,15 +1162,15 @@ msgstr "Propagační kódy" msgid "products on sale" msgstr "Produkty v prodeji" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Propagační akce" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Prodejce" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1172,11 +1178,11 @@ msgstr "Prodejce" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Produkty uvedené na seznamu přání" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Seznamy přání" @@ -1184,7 +1190,7 @@ msgstr "Seznamy přání" msgid "tagged products" msgstr "Produkty s příznakem" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Štítky produktu" @@ -1270,545 +1276,544 @@ msgstr "Výsledky vyhledávání produktů" msgid "posts search results" msgstr "Výsledky vyhledávání produktů" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Rodič této skupiny" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Nadřazená skupina atributů" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Název skupiny atributů" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Skupina atributů" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Ukládá pověření a koncové body potřebné pro komunikaci s rozhraním API " "dodavatele." -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Informace o ověřování" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Definice přirážky pro produkty získané od tohoto dodavatele" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Procento přirážky prodejce" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Název tohoto prodejce" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Název prodejce" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Interní identifikátor značky produktu" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Název štítku" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Uživatelsky přívětivý název pro značku produktu" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Zobrazení názvu štítku" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Štítek produktu" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "značka kategorie" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "štítky kategorií" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Nahrát obrázek reprezentující tuto kategorii" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Obrázek kategorie" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Definovat procento přirážky pro produkty v této kategorii." -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Nadřízený této kategorie, který tvoří hierarchickou strukturu." -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Nadřazená kategorie" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Název kategorie" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Uveďte název této kategorie" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Přidejte podrobný popis této kategorie" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Popis kategorie" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "značky, které pomáhají popsat nebo seskupit tuto kategorii" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Priorita" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Název této značky" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Název značky" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Nahrát logo reprezentující tuto značku" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Malý obrázek značky" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Nahrát velké logo reprezentující tuto značku" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Velká image značky" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Přidejte podrobný popis značky" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Popis značky" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Volitelné kategorie, se kterými je tato značka spojena" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Kategorie, do které tento produkt patří" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Volitelně přiřadit tento produkt ke značce" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Značky, které pomáhají popsat nebo seskupit tento produkt" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Označuje, zda je tento produkt dodáván digitálně" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Je produkt digitální" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Uveďte jasný identifikační název výrobku" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Název produktu" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Přidejte podrobný popis produktu" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Popis produktu" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Číslo dílu pro tento produkt" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Číslo dílu" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Kategorie tohoto atributu" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Skupina tohoto atributu" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Řetězec" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Celé číslo" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Float" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Boolean" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Pole" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Objekt" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Typ hodnoty atributu" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Typ hodnoty" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Název tohoto atributu" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Název atributu" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Atribut" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Atribut této hodnoty" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Konkrétní produkt spojený s hodnotou tohoto atributu" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Související produkt" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "Konkrétní hodnota tohoto atributu" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "Poskytněte alternativní text k obrázku kvůli přístupnosti." -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Text alt obrázku" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Nahrát soubor s obrázkem tohoto produktu" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Obrázek produktu" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Určuje pořadí, v jakém se obrázky zobrazují." -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Priorita zobrazení" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Výrobek, který tento obrázek představuje" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Obrázky produktů" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Procentuální sleva na vybrané produkty" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Procento slevy" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Uveďte jedinečný název této propagační akce" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Název akce" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Popis propagace" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Vyberte, které produkty jsou zahrnuty do této akce" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Zahrnuté produkty" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Propagace" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Prodejce dodávající tento výrobek na sklad" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Přidružený prodejce" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Konečná cena pro zákazníka po přirážkách" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Prodejní cena" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Produkt spojený s touto skladovou položkou" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Cena zaplacená prodejci za tento výrobek" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Kupní cena prodejce" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Dostupné množství produktu na skladě" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Množství na skladě" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU přidělený prodejcem pro identifikaci výrobku" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU prodejce" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Digitální soubor spojený s touto zásobou, je-li to vhodné" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Digitální soubor" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Zápisy do zásob" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Výrobky, které uživatel označil jako požadované" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Uživatel, který vlastní tento seznam přání" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Majitel seznamu přání" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Seznam přání" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} neexistuje: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Dokumentární film" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Dokumentární filmy" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Nevyřešené" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Adresní řádek pro zákazníka" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Adresní řádek" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Ulice" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Okres" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Město" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Region" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Poštovní směrovací číslo" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Země" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokace Bod(Zeměpisná délka, Zeměpisná šířka)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Úplná odpověď JSON z geokodéru pro tuto adresu" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Uložená odpověď JSON ze služby geokódování" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Adresa" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adresy" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Jedinečný kód, který uživatel použije k uplatnění slevy." -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Identifikátor propagačního kódu" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Pevná výše slevy, pokud není použito procento" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Pevná výše slevy" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentuální sleva uplatněná v případě nevyužití pevné částky" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Procentuální sleva" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Časové razítko ukončení platnosti promokódu" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Doba ukončení platnosti" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Časové razítko, od kterého je tento promokód platný" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Čas zahájení platnosti" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Časové razítko použití promokódu, prázdné, pokud ještě nebyl použit." -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Časové razítko použití" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Uživatel přiřazený k tomuto promokódu, je-li to relevantní" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Přiřazený uživatel" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Propagační kód" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Propagační kódy" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1816,137 +1821,136 @@ msgstr "" "Měl by být definován pouze jeden typ slevy (částka nebo procento), nikoli " "však oba typy slev nebo žádný z nich." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Promo kód byl již použit" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Neplatný typ slevy pro promocode {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "Fakturační adresa použitá pro tuto objednávku" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Volitelný promo kód použitý na tuto objednávku" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Použitý promo kód" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "Dodací adresa použitá pro tuto objednávku" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Dodací adresa" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Aktuální stav zakázky v jejím životním cyklu" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Stav objednávky" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "JSON struktura oznámení pro zobrazení uživatelům, v uživatelském rozhraní " "administrátora se používá tabulkové zobrazení." -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "JSON reprezentace atributů objednávky pro tuto objednávku" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "Uživatel, který zadal objednávku" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Uživatel" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Časové razítko, kdy byla objednávka dokončena." -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Kupte si čas" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Lidsky čitelný identifikátor objednávky" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "lidsky čitelné ID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Objednávka" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Uživatel smí mít vždy pouze jednu čekající objednávku!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" -msgstr "" -"Do objednávky, která není v procesu vyřizování, nelze přidat produkty." +msgstr "Do objednávky, která není v procesu vyřizování, nelze přidat produkty." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Do objednávky nelze přidat neaktivní produkty" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "Nelze přidat více produktů, než je dostupné na skladě" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "Nelze odebrat produkty z objednávky, která není nevyřízená." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} neexistuje s dotazem <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Promo kód neexistuje" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "Fyzické produkty můžete zakoupit pouze se zadanou dodací adresou!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Adresa neexistuje" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "V tuto chvíli nemůžete nakupovat, zkuste to prosím znovu za několik minut." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Neplatná hodnota síly" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Nelze zakoupit prázdnou objednávku!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Nedostatek finančních prostředků na dokončení objednávky" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1954,118 +1958,117 @@ msgstr "" "bez registrace nelze nakupovat, uveďte prosím následující údaje: jméno " "zákazníka, e-mail zákazníka, telefonní číslo zákazníka." -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Neplatný způsob platby: {payment_method} z {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "Cena, kterou zákazník zaplatil za tento produkt v době nákupu." -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Nákupní cena v době objednávky" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "Interní komentáře pro administrátory k tomuto objednanému produktu" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Interní připomínky" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Oznámení uživatele" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "JSON reprezentace atributů této položky" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Objednané atributy produktu" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Odkaz na nadřazenou objednávku, která obsahuje tento produkt" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Objednávka rodičů" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Konkrétní produkt spojený s touto objednávkou" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Množství tohoto konkrétního produktu v objednávce" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Množství produktu" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Aktuální stav tohoto produktu v objednávce" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Stav produktové řady" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "špatně zadaná akce pro zpětnou vazbu: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "nelze poskytnout zpětnou vazbu na objednávku, která nebyla přijata" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Stáhnout" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Ke stažení na" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "Digitální aktivum pro nedokončenou objednávku nelze stáhnout." -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Komentáře uživatelů o jejich zkušenostech s produktem" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Zpětná vazba" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "Odkazuje na konkrétní produkt v objednávce, kterého se tato zpětná vazba " "týká." -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Související objednávka produktu" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Hodnocení produktu přidělené uživatelem" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Hodnocení produktu" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Zpětná vazba" @@ -2107,7 +2110,8 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are the details of your\n" +" we have taken your order into work. below are " +"the details of your\n" " order:" msgstr "" "Děkujeme vám za vaši objednávku #%(order.pk)s! S potěšením Vám oznamujeme, " @@ -2201,7 +2205,8 @@ msgstr "Klíč" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Děkujeme vám za vaši objednávku! S potěšením potvrzujeme váš nákup. Níže " diff --git a/core/locale/da_DK/LC_MESSAGES/django.po b/core/locale/da_DK/LC_MESSAGES/django.po index 1ed0e4c7..f969839a 100644 --- a/core/locale/da_DK/LC_MESSAGES/django.po +++ b/core/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -25,100 +25,99 @@ msgstr "Unikt ID bruges til sikkert at identificere ethvert databaseobjekt" msgid "is active" msgstr "Er aktiv" -#: core/abstract.py:22 +#: 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." -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Oprettet" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Da objektet første gang dukkede op i databasen" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modificeret" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Hvornår objektet sidst blev redigeret" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Oversættelser" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Generelt" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relationer" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadata" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Tidsstempler" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktivér udvalgte %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s aktiveret med succes!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deaktiver udvalgte %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s deaktiveret med succes." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Attributværdi" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Attributværdier" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Billede" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Billeder" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Lager" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Aktier" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Bestil produkt" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Bestil produkter" @@ -126,7 +125,7 @@ msgstr "Bestil produkter" msgid "children" msgstr "Børn" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Konfig" @@ -188,7 +187,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Anvend kun en nøgle til at læse tilladte data fra cachen.\n" -"Anvend nøgle, data og timeout med autentificering for at skrive data til cachen." +"Anvend nøgle, data og timeout med autentificering for at skrive data til " +"cachen." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -245,8 +245,7 @@ msgstr "" "attributter" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Omskriv nogle felter i en eksisterende attributgruppe og gem ikke-" "redigerbare felter" @@ -299,11 +298,10 @@ msgstr "" "Omskriv en eksisterende attributværdi, der gemmer ikke-redigerbare filer" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare" -" felter" +"Omskriv nogle felter i en eksisterende attributværdi og gem ikke-redigerbare " +"felter" #: core/docs/drf/viewsets.py:124 msgid "list all categories (simple view)" @@ -337,17 +335,16 @@ msgstr "Liste over alle kategorier (enkel visning)" #: core/docs/drf/viewsets.py:152 msgid "for non-staff users, only their own orders are returned." -msgstr "" -"For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." +msgstr "For ikke-ansatte brugere er det kun deres egne ordrer, der returneres." #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "Substringsøgning uden brug af store og små bogstaver på tværs af " -"human_readable_id, order_products.product.name og " -"order_products.product.partnumber" +"human_readable_id, order_products.product.name og order_products.product." +"partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -379,13 +376,13 @@ msgstr "Filtrer efter ordrestatus (case-insensitive substring match)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Bestil efter en af: uuid, human_readable_id, user_email, user, status, " -"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge" -" (f.eks. '-buy_time')." +"created, modified, buy_time, random. Præfiks med '-' for faldende rækkefølge " +"(f.eks. '-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -535,8 +532,7 @@ msgstr "Fjern et produkt fra ønskelisten" #: core/docs/drf/viewsets.py:314 msgid "removes a product from an wishlist using the provided `product_uuid`" msgstr "" -"Fjerner et produkt fra en ønskeliste ved hjælp af den angivne " -"`product_uuid`." +"Fjerner et produkt fra en ønskeliste ved hjælp af den angivne `product_uuid`." #: core/docs/drf/viewsets.py:319 msgid "add many products to wishlist" @@ -563,18 +559,28 @@ 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`." @@ -629,10 +635,12 @@ msgstr "(præcis) Digital vs. fysisk" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` for faldende. \n" +"Kommasepareret liste over felter, der skal sorteres efter. Præfiks med `-` " +"for faldende. \n" "**Tilladt:** uuid, vurdering, navn, slug, oprettet, ændret, pris, tilfældig" #: core/docs/drf/viewsets.py:441 @@ -758,7 +766,7 @@ msgstr "slette en ordre-produkt-relation" msgid "add or remove feedback on an order–product relation" msgstr "tilføje eller fjerne feedback på en ordre-produkt-relation" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Der er ikke angivet noget søgeord." @@ -806,8 +814,8 @@ msgstr "Egenskaber" msgid "Quantity" msgstr "Mængde" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Snegl" @@ -964,11 +972,11 @@ msgstr "Køb en ordre" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" -"Send venligst attributterne som en streng formateret som " -"attr1=værdi1,attr2=værdi2" +"Send venligst attributterne som en streng formateret som attr1=værdi1," +"attr2=værdi2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" @@ -988,7 +996,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fungerer som en charme" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Egenskaber" @@ -1001,11 +1009,11 @@ msgid "groups of attributes" msgstr "Grupper af attributter" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Kategorier" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Mærker" @@ -1014,19 +1022,17 @@ msgid "category image url" msgstr "Kategorier" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Markup-procentdel" #: core/graphene/object_types.py:129 msgid "which attributes and values can be used for filtering this category." msgstr "" -"Hvilke attributter og værdier, der kan bruges til at filtrere denne " -"kategori." +"Hvilke attributter og værdier, der kan bruges til at filtrere denne kategori." #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +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." @@ -1039,7 +1045,7 @@ msgstr "Tags for denne kategori" msgid "products in this category" msgstr "Produkter i denne kategori" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Leverandører" @@ -1066,7 +1072,7 @@ msgid "represents feedback from a user." msgstr "Repræsenterer feedback fra en bruger." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Meddelelser" @@ -1078,7 +1084,7 @@ msgstr "Download url for dette ordreprodukt, hvis det er relevant" msgid "a list of order products in this order" msgstr "En liste over bestillingsprodukter i denne ordre" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Faktureringsadresse" @@ -1102,7 +1108,7 @@ msgstr "Samlet antal produkter i ordren" msgid "are all products in the order digital" msgstr "Er alle produkterne i ordren digitale?" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Bestillinger" @@ -1114,19 +1120,19 @@ msgstr "Billed-URL" msgid "product's images" msgstr "Produktets billeder" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Kategori" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Tilbagemeldinger" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Attributgrupper" @@ -1150,7 +1156,7 @@ msgstr "Mængde" msgid "number of feedbacks" msgstr "Antal tilbagemeldinger" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Produkter" @@ -1162,15 +1168,15 @@ msgstr "Promokoder" msgid "products on sale" msgstr "Produkter til salg" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Kampagner" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Leverandør" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1178,11 +1184,11 @@ msgstr "Leverandør" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Produkter på ønskelisten" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Ønskelister" @@ -1190,7 +1196,7 @@ msgstr "Ønskelister" msgid "tagged products" msgstr "Mærkede produkter" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Produktmærker" @@ -1276,546 +1282,545 @@ msgstr "Søgeresultater for produkter" msgid "posts search results" msgstr "Søgeresultater for produkter" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Forælder til denne gruppe" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Overordnet attributgruppe" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Attributgruppens navn" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Attributgruppe" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Gemmer legitimationsoplysninger og slutpunkter, der er nødvendige for " "leverandørens API-kommunikation" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Oplysninger om godkendelse" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Definer markeringen for produkter, der hentes fra denne leverandør" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Sælgerens markup-procentdel" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Navn på denne leverandør" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Leverandørens navn" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Intern tag-identifikator for produkttagget" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Tag-navn" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Brugervenligt navn til produktmærket" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Navn på tag-visning" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Produktmærke" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "Kategori-tag" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "Kategori-tags" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Upload et billede, der repræsenterer denne kategori" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Kategori billede" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Definer en markup-procentdel for produkter i denne kategori" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Forælder til denne kategori for at danne en hierarkisk struktur" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Overordnet kategori" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Navn på kategori" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Giv et navn til denne kategori" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Tilføj en detaljeret beskrivelse af denne kategori" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Beskrivelse af kategori" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "tags, der hjælper med at beskrive eller gruppere denne kategori" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Prioritet" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Navnet på dette mærke" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Varemærke" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Upload et logo, der repræsenterer dette brand" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Brandets lille image" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Upload et stort logo, der repræsenterer dette brand" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Brandets store image" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Tilføj en detaljeret beskrivelse af brandet" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Varemærkebeskrivelse" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Valgfrie kategorier, som dette brand er forbundet med" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Kategorier" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Kategori, som dette produkt tilhører" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Tilknyt eventuelt dette produkt til et brand" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tags, der hjælper med at beskrive eller gruppere dette produkt" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Angiver, om dette produkt leveres digitalt" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Er produktet digitalt?" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Giv produktet et klart identificerende navn" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Produktets navn" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Tilføj en detaljeret beskrivelse af produktet" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Produktbeskrivelse" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Reservedelsnummer for dette produkt" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Varenummer" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Kategori for denne attribut" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Gruppe af denne attribut" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Streng" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Heltal" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Flyder" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Boolsk" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Array" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Objekt" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Type af attributtens værdi" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Værditype" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Navn på denne attribut" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Attributtens navn" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Attribut" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Attribut for denne værdi" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Det specifikke produkt, der er knyttet til denne attributs værdi" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Tilknyttet produkt" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "Den specifikke værdi for denne attribut" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "Giv alternativ tekst til billedet af hensyn til tilgængeligheden" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Billedets alt-tekst" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Upload billedfilen til dette produkt" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Produktbillede" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Bestemmer den rækkefølge, billederne vises i" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Skærm-prioritet" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Det produkt, som dette billede repræsenterer" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Produktbilleder" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Procentvis rabat for de valgte produkter" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Rabatprocent" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Giv et unikt navn til denne kampagne" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Navn på kampagne" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Beskrivelse af kampagnen" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Vælg, hvilke produkter der er inkluderet i denne kampagne" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Inkluderede produkter" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Forfremmelse" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Den leverandør, der leverer dette produkt, lagerfører" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Tilknyttet leverandør" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Endelig pris til kunden efter tillæg" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Salgspris" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Det produkt, der er knyttet til denne lagerpost" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Den pris, der er betalt til sælgeren for dette produkt" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Leverandørens købspris" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Tilgængelig mængde af produktet på lager" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Antal på lager" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "Leverandørtildelt SKU til identifikation af produktet" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "Leverandørens SKU" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Digital fil knyttet til dette lager, hvis relevant" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Digital fil" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Lagerposteringer" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Produkter, som brugeren har markeret som ønskede" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Bruger, der ejer denne ønskeliste" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Ønskelistens ejer" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Ønskeliste" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} findes ikke: {product_uuid}." -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Dokumentarfilm" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Uafklaret" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Adresselinje til kunden" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Adresselinje" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Gade" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Distrikt" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "By" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Region" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Postnummer" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Land" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolokaliseringspunkt (længdegrad, breddegrad)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Fuldt JSON-svar fra geokoderen for denne adresse" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Gemt JSON-svar fra geokodningstjenesten" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Adresse" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adresser" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Unik kode, der bruges af en bruger til at indløse en rabat" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Identifikator for kampagnekode" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Fast rabatbeløb anvendes, hvis procent ikke bruges" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Fast rabatbeløb" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentvis rabat, hvis det faste beløb ikke bruges" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Procentvis rabat" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Tidsstempel, når promokoden udløber" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Slut gyldighedstid" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Tidsstempel, hvorfra denne promokode er gyldig" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Start gyldighedstid" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Tidsstempel, hvor promokoden blev brugt, blank, hvis den ikke er brugt endnu" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Tidsstempel for brug" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Bruger tildelt denne promokode, hvis relevant" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Tildelt bruger" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Kampagnekode" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Kampagnekoder" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1823,137 +1828,136 @@ msgstr "" "Der skal kun defineres én type rabat (beløb eller procent), men ikke begge " "eller ingen af dem." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Promokoden er allerede blevet brugt" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ugyldig rabattype for promokode {self.uuid}." -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "Den faktureringsadresse, der bruges til denne ordre" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Valgfri kampagnekode anvendt på denne ordre" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Anvendt kampagnekode" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "Den leveringsadresse, der er brugt til denne ordre" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Leveringsadresse" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Ordrens aktuelle status i dens livscyklus" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Bestillingsstatus" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" -"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges" -" tabelvisningen" +"JSON-struktur af meddelelser, der skal vises til brugerne, i admin UI bruges " +"tabelvisningen" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "JSON-repræsentation af ordreattributter for denne ordre" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "Den bruger, der har afgivet ordren" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Bruger" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Tidsstemplet for, hvornår ordren blev afsluttet" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Køb tid" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "En menneskeligt læsbar identifikator for ordren" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "menneskeligt læsbart ID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Bestil" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "En bruger må kun have én afventende ordre ad gangen!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "Du kan ikke tilføje produkter til en ordre, der ikke er i gang." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Du kan ikke tilføje inaktive produkter til en ordre" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "Du kan ikke tilføje flere produkter, end der er på lager" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " -"ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} findes ikke med forespørgsel <{query}>." -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Promokode findes ikke" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "Du kan kun købe fysiske produkter med angivet leveringsadresse!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Adressen findes ikke" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "Du kan ikke købe i øjeblikket, prøv venligst igen om et par minutter." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Ugyldig kraftværdi" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Du kan ikke købe en tom ordre!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Utilstrækkelige midler til at gennemføre ordren" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1961,120 +1965,117 @@ msgstr "" "du kan ikke købe uden registrering, angiv venligst følgende oplysninger: " "kundens navn, kundens e-mail, kundens telefonnummer" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ugyldig betalingsmetode: {payment_method} fra {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "Den pris, som kunden har betalt for dette produkt på købstidspunktet" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Købspris på bestillingstidspunktet" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "Interne kommentarer til administratorer om dette bestilte produkt" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Interne kommentarer" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Notifikationer til brugere" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "JSON-repræsentation af dette elements attributter" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Bestilte produktattributter" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Henvisning til den overordnede ordre, der indeholder dette produkt" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Forældreordre" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Det specifikke produkt, der er knyttet til denne ordrelinje" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Mængde af dette specifikke produkt i ordren" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Produktmængde" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Aktuel status for dette produkt i bestillingen" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Status for produktlinje" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "forkert handling angivet for feedback: {action}." -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" -"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende " -"ordre." +"Du kan ikke fjerne produkter fra en ordre, der ikke er en igangværende ordre." -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Download" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Downloads" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "Du kan ikke downloade et digitalt aktiv for en ikke-færdiggjort ordre" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Brugernes kommentarer om deres oplevelse med produktet" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Kommentarer til feedback" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" -"Henviser til det specifikke produkt i en ordre, som denne feedback handler " -"om" +"Henviser til det specifikke produkt i en ordre, som denne feedback handler om" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Relateret ordreprodukt" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Brugertildelt vurdering af produktet" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Produktvurdering" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Feedback" @@ -2117,7 +2118,8 @@ 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, " @@ -2210,7 +2212,8 @@ msgstr "Nøgle" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Tak for din bestilling! Vi er glade for at kunne bekræfte dit køb. Nedenfor " @@ -2286,8 +2289,7 @@ msgstr "Parameteren NOMINATIM_URL skal være konfigureret!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} " -"pixels." +"Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} pixels." #: core/validators.py:22 msgid "invalid phone number format" diff --git a/core/locale/de_DE/LC_MESSAGES/django.po b/core/locale/de_DE/LC_MESSAGES/django.po index c3c5f7b7..cfaadc1b 100644 --- a/core/locale/de_DE/LC_MESSAGES/django.po +++ b/core/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "Ist aktiv" -#: core/abstract.py:22 +#: 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." -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Erstellt" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Wann das Objekt zum ersten Mal in der Datenbank erschienen ist" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Geändert" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Wann das Objekt zuletzt bearbeitet wurde" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Übersetzungen" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Allgemein" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Beziehungen" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadaten" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Zeitstempel" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s aktivieren" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s erfolgreich aktiviert!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Ausgewählte %(verbose_name_plural)s deaktivieren" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s wurde erfolgreich deaktiviert." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Attribut Wert" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Attribut Werte" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Bild" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Bilder" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Lagerbestand" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Bestände" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Produkt bestellen" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Produkte bestellen" @@ -128,7 +127,7 @@ msgstr "Produkte bestellen" msgid "children" msgstr "Kinder" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Konfigurieren Sie" @@ -189,8 +188,10 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu lesen.\n" -"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den Cache zu schreiben." +"Wenden Sie nur einen Schlüssel an, um erlaubte Daten aus dem Cache zu " +"lesen.\n" +"Schlüssel, Daten und Timeout mit Authentifizierung anwenden, um Daten in den " +"Cache zu schreiben." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -247,8 +248,7 @@ msgstr "" "Editierbarkeit" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Umschreiben einiger Felder einer bestehenden Attributgruppe, wobei nicht " "editierbare Felder gespeichert werden" @@ -278,8 +278,8 @@ msgstr "" #: core/docs/drf/viewsets.py:90 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" -" Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " +"Daten zu speichern" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -304,8 +304,7 @@ msgstr "" "Editierbarkeit" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Umschreiben einiger Felder eines vorhandenen Attributwerts, wobei nicht " "bearbeitbare Daten gespeichert werden" @@ -334,8 +333,8 @@ msgstr "" #: core/docs/drf/viewsets.py:144 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" -" Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " +"Daten zu speichern" #: core/docs/drf/viewsets.py:151 msgid "list all orders (simple view)" @@ -348,12 +347,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "Groß- und Kleinschreibung unempfindliche Teilstringsuche über " -"human_readable_id, order_products.product.name und " -"order_products.product.partnumber" +"human_readable_id, order_products.product.name und order_products.product." +"partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -389,9 +388,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Sortierung nach einem von: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Präfix mit '-' für absteigend " @@ -421,8 +420,8 @@ msgstr "" #: core/docs/drf/viewsets.py:227 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" -" Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " +"Daten zu speichern" #: core/docs/drf/viewsets.py:231 msgid "purchase an order" @@ -445,8 +444,7 @@ msgstr "eine Bestellung kaufen, ohne ein Konto anzulegen" #: core/docs/drf/viewsets.py:246 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer " -"ab." +"schließt den Kauf einer Bestellung für einen nicht registrierten Benutzer ab." #: core/docs/drf/viewsets.py:254 msgid "add product to order" @@ -463,8 +461,8 @@ msgstr "" #: core/docs/drf/viewsets.py:260 msgid "add a list of products to order, quantities will not count" msgstr "" -"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht" -" gezählt" +"Fügen Sie eine Liste der zu bestellenden Produkte hinzu, Mengen werden nicht " +"gezählt" #: core/docs/drf/viewsets.py:261 msgid "" @@ -533,8 +531,8 @@ msgstr "" #: core/docs/drf/viewsets.py:303 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare" -" Daten zu speichern" +"Umschreiben einiger Felder eines vorhandenen Attributs, um nicht editierbare " +"Daten zu speichern" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -581,18 +579,29 @@ 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`" @@ -620,8 +629,7 @@ msgstr "(genau) Kategorie UUID" #: core/docs/drf/viewsets.py:378 msgid "(list) Tag names, case-insensitive" -msgstr "" -"(Liste) Tag-Namen, Groß- und Kleinschreibung wird nicht berücksichtigt" +msgstr "(Liste) Tag-Namen, Groß- und Kleinschreibung wird nicht berücksichtigt" #: core/docs/drf/viewsets.py:384 msgid "(gte) Minimum stock price" @@ -649,10 +657,12 @@ msgstr "(genau) Digital vs. physisch" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. Präfix mit \"-\" für absteigend. \n" +"Durch Kommata getrennte Liste der Felder, nach denen sortiert werden soll. " +"Präfix mit \"-\" für absteigend. \n" "**Erlaubt:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -672,8 +682,8 @@ msgstr "Ein Produkt erstellen" #: core/docs/drf/viewsets.py:463 msgid "rewrite an existing product, preserving non-editable fields" msgstr "" -"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer" -" Felder" +"Umschreiben eines bestehenden Produkts unter Beibehaltung nicht editierbarer " +"Felder" #: core/docs/drf/viewsets.py:478 msgid "" @@ -721,10 +731,10 @@ msgstr "Autovervollständigung der Adresseingabe" #: core/docs/drf/viewsets.py:576 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" -" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " -"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans" -" -a core -a geo -a payments -a vibes_auth -a blog" +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " +"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"it-it -l ja-jp -l kk-kz -l nl-nl -l pl -l pt-br -l ro-ro -l ru-ru -l zh-hans " +"-a core -a geo -a payments -a vibes_auth -a blog" #: core/docs/drf/viewsets.py:582 msgid "limit the results amount, 1 < limit < 10, default: 5" @@ -754,8 +764,8 @@ msgstr "" #: core/docs/drf/viewsets.py:615 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare" -" Daten zu speichern" +"Umschreiben einiger Felder einer bestehenden Kategorie, um nicht editierbare " +"Daten zu speichern" #: core/docs/drf/viewsets.py:622 msgid "list all order–product relations (simple view)" @@ -786,7 +796,7 @@ msgid "add or remove feedback on an order–product relation" msgstr "" "Feedback zu einer Bestellung-Produkt-Beziehung hinzufügen oder entfernen" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Kein Suchbegriff angegeben." @@ -834,8 +844,8 @@ msgstr "Attribute" msgid "Quantity" msgstr "Menge" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Schnecke" @@ -850,8 +860,8 @@ msgstr "Unterkategorien einbeziehen" #: core/filters.py:147 msgid "there must be a category_uuid to use include_subcategories flag" msgstr "" -"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories" -" zu verwenden" +"Es muss eine category_uuid vorhanden sein, um das Flag include_subcategories " +"zu verwenden" #: core/filters.py:280 msgid "Search (ID, product name or part number)" @@ -995,8 +1005,8 @@ msgstr "Eine Bestellung kaufen" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" "Bitte senden Sie die Attribute als String im Format attr1=wert1,attr2=wert2" @@ -1018,7 +1028,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funktioniert wie ein Zauber" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Attribute" @@ -1031,11 +1041,11 @@ msgid "groups of attributes" msgstr "Gruppen von Attributen" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Kategorien" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Marken" @@ -1044,7 +1054,7 @@ msgid "category image url" msgstr "Kategorien" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Markup Percentage" @@ -1055,11 +1065,9 @@ msgstr "" "verwendet werden." #: core/graphene/object_types.py:133 -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." #: core/graphene/object_types.py:135 msgid "tags for this category" @@ -1069,7 +1077,7 @@ msgstr "Tags für diese Kategorie" msgid "products in this category" msgstr "Produkte in dieser Kategorie" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Anbieter" @@ -1095,7 +1103,7 @@ msgid "represents feedback from a user." msgstr "Stellt das Feedback eines Benutzers dar." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Benachrichtigungen" @@ -1107,7 +1115,7 @@ msgstr "Download-Url für dieses Bestellprodukt, falls zutreffend" msgid "a list of order products in this order" msgstr "Eine Liste der bestellten Produkte in dieser Reihenfolge" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Rechnungsadresse" @@ -1131,7 +1139,7 @@ msgstr "Gesamtmenge der bestellten Produkte" msgid "are all products in the order digital" msgstr "Sind alle Produkte in der Bestellung digital" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Bestellungen" @@ -1143,19 +1151,19 @@ msgstr "Bild URL" msgid "product's images" msgstr "Bilder des Produkts" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Kategorie" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Rückmeldungen" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Marke" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Attribut-Gruppen" @@ -1179,7 +1187,7 @@ msgstr "Menge" msgid "number of feedbacks" msgstr "Anzahl der Rückmeldungen" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Produkte" @@ -1191,15 +1199,15 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Zum Verkauf stehende Produkte" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Werbeaktionen" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Anbieter" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1207,11 +1215,11 @@ msgstr "Anbieter" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Auf dem Wunschzettel stehende Produkte" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Wunschzettel" @@ -1219,7 +1227,7 @@ msgstr "Wunschzettel" msgid "tagged products" msgstr "Markierte Produkte" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Produkt-Tags" @@ -1305,560 +1313,556 @@ msgstr "Suchergebnisse für Produkte" msgid "posts search results" msgstr "Suchergebnisse für Produkte" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Elternteil dieser Gruppe" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Übergeordnete Attributgruppe" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Name der Attributgruppe" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Attribut-Gruppe" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Speichert Anmeldeinformationen und Endpunkte, die für die API-Kommunikation " "des Anbieters erforderlich sind" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Informationen zur Authentifizierung" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definieren Sie den Aufschlag für Produkte, die von diesem Lieferanten " "bezogen werden" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Prozentualer Aufschlag des Lieferanten" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Name dieses Anbieters" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Name des Anbieters" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Interner Tag-Identifikator für das Produkt-Tag" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Tag name" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Benutzerfreundlicher Name für den Produktanhänger" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Tag-Anzeigename" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Produkt-Tag" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "Kategorie-Tag" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "Kategorie-Tags" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Laden Sie ein Bild hoch, das diese Kategorie repräsentiert" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Kategorie Bild" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "" "Definieren Sie einen prozentualen Aufschlag für Produkte in dieser Kategorie" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "" "Übergeordneter dieser Kategorie, um eine hierarchische Struktur zu bilden" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Übergeordnete Kategorie" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Name der Kategorie" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Geben Sie einen Namen für diese Kategorie an" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Fügen Sie eine detaillierte Beschreibung für diese Kategorie hinzu" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Beschreibung der Kategorie" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "Tags, die helfen, diese Kategorie zu beschreiben oder zu gruppieren" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Priorität" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Name dieser Marke" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Markenname" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Laden Sie ein Logo hoch, das diese Marke repräsentiert" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Marke kleines Bild" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Laden Sie ein großes Logo hoch, das diese Marke repräsentiert" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Großes Image der Marke" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Fügen Sie eine detaillierte Beschreibung der Marke hinzu" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Beschreibung der Marke" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "" "Optionale Kategorien, mit denen diese Marke in Verbindung gebracht wird" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Kategorien" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Kategorie, zu der dieses Produkt gehört" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Optional können Sie dieses Produkt mit einer Marke verknüpfen" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tags, die helfen, dieses Produkt zu beschreiben oder zu gruppieren" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Gibt an, ob dieses Produkt digital geliefert wird" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Ist das Produkt digital" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" -msgstr "" -"Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." +msgstr "Geben Sie einen eindeutigen Namen zur Identifizierung des Produkts an." -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Name des Produkts" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Fügen Sie eine detaillierte Beschreibung des Produkts hinzu" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Beschreibung des Produkts" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Teilenummer für dieses Produkt" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Teilnummer" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Kategorie dieses Attributs" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Gruppe dieses Attributs" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Zeichenfolge" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Integer" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Schwimmer" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Boolesche" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Array" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Objekt" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Typ des Attributwerts" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Werttyp" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Name dieses Attributs" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Name des Attributs" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Attribut" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Attribut dieses Wertes" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "" "Das spezifische Produkt, das mit dem Wert dieses Attributs verbunden ist" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Zugehöriges Produkt" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "Der spezifische Wert für dieses Attribut" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "" "Geben Sie einen alternativen Text für das Bild an, um die Barrierefreiheit " "zu gewährleisten." -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Bild-Alt-Text" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Laden Sie die Bilddatei für dieses Produkt hoch" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Produktbild" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Legt die Reihenfolge fest, in der die Bilder angezeigt werden" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Priorität anzeigen" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Das Produkt, das dieses Bild darstellt" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Produktbilder" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Prozentualer Rabatt für die ausgewählten Produkte" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Prozentsatz der Ermäßigung" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Geben Sie einen eindeutigen Namen für diese Aktion an" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Name der Aktion" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Wählen Sie aus, welche Produkte in dieser Aktion enthalten sind" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Enthaltene Produkte" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Förderung" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Der Verkäufer, der dieses Produkt liefert, hat folgende Bestände" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Zugehöriger Anbieter" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Endpreis für den Kunden nach Aufschlägen" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Verkaufspreis" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Das mit diesem Bestandseintrag verbundene Produkt" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Der an den Verkäufer gezahlte Preis für dieses Produkt" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Einkaufspreis des Verkäufers" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Verfügbare Menge des Produkts auf Lager" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Vorrätige Menge" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "Vom Hersteller zugewiesene SKU zur Identifizierung des Produkts" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU des Verkäufers" -#: core/models.py:641 +#: core/models.py:960 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" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Digitale Datei" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Bestandseinträge" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Produkte, die der Benutzer als gewünscht markiert hat" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Benutzer, dem diese Wunschliste gehört" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Besitzer der Wishlist" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Wunschzettel" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} existiert nicht: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Dokumentarfilm" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Dokumentarfilme" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Ungelöst" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Adresszeile für den Kunden" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Adresszeile" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Straße" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Bezirk" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Stadt" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Region" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Postleitzahl" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Land" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Längengrad, Breitengrad)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Vollständige JSON-Antwort vom Geocoder für diese Adresse" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Gespeicherte JSON-Antwort vom Geokodierungsdienst" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Adresse" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adressen" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "" "Einzigartiger Code, den ein Nutzer zum Einlösen eines Rabatts verwendet" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Kennung des Promo-Codes" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "" -"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet " -"wird" +"Fester Rabattbetrag, der angewandt wird, wenn kein Prozentsatz verwendet wird" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Fester Rabattbetrag" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Prozentualer Rabatt, wenn der Festbetrag nicht verwendet wird" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Prozentualer Rabatt" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Zeitstempel, wann der Promocode abläuft" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Ende der Gültigkeitsdauer" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Zeitstempel, ab dem dieser Promocode gültig ist" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Beginn der Gültigkeitsdauer" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Zeitstempel, wann der Promocode verwendet wurde, leer, wenn noch nicht " "verwendet" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Zeitstempel der Verwendung" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Diesem Promocode zugewiesener Benutzer, falls zutreffend" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Zugewiesener Benutzer" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Promo-Code" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Promo-Codes" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1866,142 +1870,142 @@ msgstr "" "Es sollte nur eine Art von Rabatt definiert werden (Betrag oder " "Prozentsatz), aber nicht beides oder keines von beiden." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Promocode wurde bereits verwendet" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ungültiger Rabatttyp für Promocode {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "Die für diese Bestellung verwendete Rechnungsadresse" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Optionaler Promo-Code für diese Bestellung" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Angewandter Promo-Code" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "Die für diese Bestellung verwendete Lieferadresse" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Lieferadresse" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Aktueller Status des Auftrags in seinem Lebenszyklus" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Status der Bestellung" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "JSON-Struktur der Benachrichtigungen, die den Benutzern angezeigt werden " "sollen; in der Admin-UI wird die Tabellenansicht verwendet" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "JSON-Darstellung der Auftragsattribute für diesen Auftrag" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "Der Benutzer, der die Bestellung aufgegeben hat" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Benutzer" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Der Zeitstempel, zu dem der Auftrag abgeschlossen wurde" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Zeit kaufen" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Ein von Menschen lesbarer Identifikator für den Auftrag" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "menschenlesbare ID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Bestellung" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Ein Benutzer darf immer nur einen schwebenden Auftrag haben!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Sie können keine Produkte zu einem Auftrag hinzufügen, der nicht in " "Bearbeitung ist." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Sie können keine inaktiven Produkte zur Bestellung hinzufügen" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "Sie können nicht mehr Produkte hinzufügen, als auf Lager sind" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Bearbeitung ist." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} existiert nicht mit Abfrage <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Promocode existiert nicht" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" "Sie können nur physische Produkte mit angegebener Lieferadresse kaufen!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Adresse ist nicht vorhanden" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Sie können im Moment nicht kaufen, bitte versuchen Sie es in ein paar " "Minuten erneut." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Ungültiger Force-Wert" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Sie können keine leere Bestellung kaufen!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Unzureichende Mittel für die Ausführung des Auftrags" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -2009,124 +2013,123 @@ msgstr "" "Sie können nicht ohne Registrierung kaufen, bitte geben Sie die folgenden " "Informationen an: Kundenname, Kunden-E-Mail, Kunden-Telefonnummer" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Ungültige Zahlungsmethode: {payment_method} von {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "" "Der Preis, den der Kunde zum Zeitpunkt des Kaufs für dieses Produkt bezahlt " "hat" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Einkaufspreis zum Zeitpunkt der Bestellung" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "Interne Kommentare für Administratoren zu diesem bestellten Produkt" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Interne Kommentare" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Benutzerbenachrichtigungen" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "JSON-Darstellung der Attribute dieses Artikels" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Bestellte Produktattribute" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Verweis auf den übergeordneten Auftrag, der dieses Produkt enthält" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Übergeordneter Auftrag" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Das spezifische Produkt, das mit dieser Auftragszeile verbunden ist" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Menge dieses spezifischen Produkts in der Bestellung" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Produktmenge" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Aktueller Status dieses Produkts im Auftrag" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Status der Produktlinie" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "falsche Aktion für die Rückmeldung angegeben: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" "Sie können keine Produkte aus einer Bestellung entfernen, die nicht in " "Bearbeitung ist." -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Herunterladen" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Herunterladen" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "" "Sie können kein digitales Asset für eine nicht abgeschlossene Bestellung " "herunterladen" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Kommentare der Nutzer über ihre Erfahrungen mit dem Produkt" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Kommentare zum Feedback" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" -"Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese" -" Rückmeldung bezieht" +"Verweist auf das spezifische Produkt in einer Bestellung, auf das sich diese " +"Rückmeldung bezieht" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Produkt zur Bestellung" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Vom Benutzer zugewiesene Bewertung für das Produkt" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Produktbewertung" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Rückmeldung" @@ -2169,7 +2172,8 @@ 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 " @@ -2263,7 +2267,8 @@ msgstr "Schlüssel" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Vielen Dank für Ihre Bestellung! Wir freuen uns, Ihren Kauf zu bestätigen. " @@ -2300,8 +2305,7 @@ msgstr "Sowohl Daten als auch Timeout sind erforderlich" #: core/utils/caching.py:43 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "" -"Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" +msgstr "Ungültiger Timeout-Wert, er muss zwischen 0 und 216000 Sekunden liegen" #: core/utils/db.py:14 #, python-brace-format diff --git a/core/locale/en_GB/LC_MESSAGES/django.po b/core/locale/en_GB/LC_MESSAGES/django.po index f745b8ec..ba53b619 100644 --- a/core/locale/en_GB/LC_MESSAGES/django.po +++ b/core/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 Egor "fureunoir" Gorbunov # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -29,98 +29,98 @@ msgstr "Unique ID is used to surely identify any database object" msgid "is active" msgstr "Is Active" -#: core/abstract.py:22 +#: core/abstract.py:21 msgid "" "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" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Created" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "When the object first appeared on the database" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modified" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Translations" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "General" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relations" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadata" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s activated successfully!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s deactivated successfully." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Image" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Images" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stock" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Stocks" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Order Product" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Order Products" @@ -128,7 +128,7 @@ msgstr "Order Products" msgid "children" msgstr "Children" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Config" @@ -744,7 +744,7 @@ msgstr "delete an order–product relation" msgid "add or remove feedback on an order–product relation" msgstr "add or remove feedback on an order–product relation" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "No search term provided." @@ -792,8 +792,8 @@ msgstr "Attributes" msgid "Quantity" msgstr "Quantity" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 core/models.py:307 -#: core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Slug" @@ -973,7 +973,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Attributes" @@ -986,11 +986,11 @@ msgid "groups of attributes" msgstr "Groups of attributes" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Brands" @@ -999,7 +999,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Markup Percentage" @@ -1020,7 +1020,7 @@ msgstr "Tags for this category" msgid "products in this category" msgstr "Products in this category" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Vendors" @@ -1045,7 +1045,7 @@ msgid "represents feedback from a user." msgstr "Represents feedback from a user." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Notifications" @@ -1057,7 +1057,7 @@ msgstr "Download url for this order product if applicable" msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Billing address" @@ -1081,7 +1081,7 @@ msgstr "Total quantity of products in order" msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Orders" @@ -1093,19 +1093,19 @@ msgstr "Image URL" msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Attribute groups" @@ -1129,7 +1129,7 @@ msgstr "Quantity" msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Products" @@ -1141,15 +1141,15 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1157,11 +1157,11 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Wishlists" @@ -1169,7 +1169,7 @@ msgstr "Wishlists" msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Product tags" @@ -1254,543 +1254,543 @@ msgstr "Products search results" msgid "posts search results" msgstr "Products search results" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Tag name" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Product tag" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "category tag" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "category tags" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Category image" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Parent category" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Category name" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Category description" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Priority" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Brand name" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Brand description" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Categories" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tags that help describe or group this product" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Product name" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Product description" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Part number" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "String" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Integer" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Float" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Boolean" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Array" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Object" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Value type" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Attribute" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: core/models.py:507 core/models.py:546 core/models.py:617 core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Associated product" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Product image" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Display priority" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Product images" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Included products" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promotion" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Selling price" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Digital file" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documentary" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Address line" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Street" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "District" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "City" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Region" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Postal code" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Country" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Address" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adresses" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "End validity time" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Timestamp when the promocode was used, blank if not used yet" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Promo code" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1798,136 +1798,136 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Order status" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "JSON structure of notifications to display to users, in admin UI the table-" "view is used" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "User" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Buy time" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Order" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "A user must have only one pending order at a time!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "You cannot add products to an order that is not a pending one" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "You cannot remove products from an order that is not a pending one" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "You can only buy physical products with shipping address specified!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "You can not purchase at this moment, please try again in a few minutes." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1935,116 +1935,116 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "The price paid by the customer for this product at purchase time" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Parent order" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Product line status" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "wrong action specified for feedback: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Download" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Downloads" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "You can not download a digital asset for a non-finished order" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:1490 +#: core/models.py:1929 msgid "references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Related order product" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Product rating" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Feedback" diff --git a/core/locale/en_US/LC_MESSAGES/django.po b/core/locale/en_US/LC_MESSAGES/django.po index 640e7f77..e904e8d9 100644 --- a/core/locale/en_US/LC_MESSAGES/django.po +++ b/core/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -25,100 +25,98 @@ msgstr "Unique ID is used to surely identify any database object" msgid "is active" msgstr "Is Active" -#: core/abstract.py:22 +#: 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" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Created" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "When the object first appeared on the database" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modified" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "When the object was last edited" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Translations" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "General" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relations" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadata" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activate selected %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s activated successfully!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactivate selected %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s deactivated successfully." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Attribute Value" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Attribute Values" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Image" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Images" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stock" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Stocks" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Order Product" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Order Products" @@ -126,7 +124,7 @@ msgstr "Order Products" msgid "children" msgstr "Children" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Config" @@ -243,8 +241,7 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Rewrite an existing attribute group saving non-editables" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rewrite some fields of an existing attribute group saving non-editables" @@ -293,8 +290,7 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Rewrite an existing attribute value saving non-editables" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rewrite some fields of an existing attribute value saving non-editables" @@ -332,11 +328,11 @@ msgstr "For non-staff users, only their own orders are returned." #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -368,13 +364,13 @@ msgstr "Filter by order status (case-insensitive substring match)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -540,17 +536,26 @@ 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" @@ -606,10 +611,12 @@ msgstr "(exact) Digital vs. physical" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -732,7 +739,7 @@ msgstr "delete an order–product relation" msgid "add or remove feedback on an order–product relation" msgstr "add or remove feedback on an order–product relation" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "No search term provided." @@ -780,8 +787,8 @@ msgstr "Attributes" msgid "Quantity" msgstr "Quantity" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Slug" @@ -937,11 +944,11 @@ msgstr "Buy an order" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" -"Please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"Please send the attributes as the string formatted like attr1=value1," +"attr2=value2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" @@ -961,7 +968,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - works like a charm" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Attributes" @@ -974,11 +981,11 @@ msgid "groups of attributes" msgstr "Groups of attributes" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Categories" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Brands" @@ -987,7 +994,7 @@ msgid "category image url" msgstr "Categories" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Markup Percentage" @@ -996,8 +1003,7 @@ msgid "which attributes and values can be used for filtering this category." msgstr "Which attributes and values can be used for filtering this category." #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +msgid "minimum and maximum prices for products in this category, if available." msgstr "" "Minimum and maximum prices for products in this category, if available." @@ -1009,7 +1015,7 @@ msgstr "Tags for this category" msgid "products in this category" msgstr "Products in this category" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Vendors" @@ -1034,7 +1040,7 @@ msgid "represents feedback from a user." msgstr "Represents feedback from a user." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Notifications" @@ -1046,7 +1052,7 @@ msgstr "Download url for this order product if applicable" msgid "a list of order products in this order" msgstr "A list of order products in this order" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Billing address" @@ -1070,7 +1076,7 @@ msgstr "Total quantity of products in order" msgid "are all products in the order digital" msgstr "Are all of the products in the order digital" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Orders" @@ -1082,19 +1088,19 @@ msgstr "Image URL" msgid "product's images" msgstr "Product's images" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Category" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Attribute groups" @@ -1118,7 +1124,7 @@ msgstr "Quantity" msgid "number of feedbacks" msgstr "Number of feedbacks" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Products" @@ -1130,15 +1136,15 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Products on sale" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1146,11 +1152,11 @@ msgstr "Vendor" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Wishlisted products" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Wishlists" @@ -1158,7 +1164,7 @@ msgstr "Wishlists" msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Product tags" @@ -1243,544 +1249,543 @@ msgstr "Products search results" msgid "posts search results" msgstr "Products search results" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Parent of this group" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Parent attribute group" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Attribute group's name" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Attribute group" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stores credentials and endpoints required for vendor's API communication" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Authentication info" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Define the markup for products retrieved from this vendor" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Vendor markup percentage" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Name of this vendor" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Vendor name" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Internal tag identifier for the product tag" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Tag name" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "User-friendly name for the product tag" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Tag display name" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Product tag" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "category tag" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "category tags" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Upload an image representing this category" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Category image" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Define a markup percentage for products in this category" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Parent of this category to form a hierarchical structure" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Parent category" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Category name" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Provide a name for this category" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Add a detailed description for this category" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Category description" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "tags that help describe or group this category" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Priority" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Name of this brand" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Brand name" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Upload a logo representing this brand" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Brand small image" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Upload a big logo representing this brand" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Brand big image" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Add a detailed description of the brand" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Brand description" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Optional categories that this brand is associated with" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Categories" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Category this product belongs to" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Optionally associate this product with a brand" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tags that help describe or group this product" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Indicates whether this product is digitally delivered" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Is product digital" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Provide a clear identifying name for the product" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Product name" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Add a detailed description of the product" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Product description" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Part number for this product" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Part number" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Category of this attribute" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Group of this attribute" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "String" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Integer" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Float" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Boolean" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Array" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Object" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Type of the attribute's value" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Value type" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Name of this attribute" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Attribute's name" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Attribute" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Attribute of this value" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "The specific product associated with this attribute's value" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Associated product" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "The specific value for this attribute" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "Provide alternative text for the image for accessibility" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Image alt text" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Upload the image file for this product" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Product image" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Determines the order in which images are displayed" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Display priority" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "The product that this image represents" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Product images" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Percentage discount for the selected products" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Discount percentage" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Provide a unique name for this promotion" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Promotion name" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Select which products are included in this promotion" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Included products" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promotion" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "The vendor supplying this product stock" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Associated vendor" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Final price to the customer after markups" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Selling price" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "The product associated with this stock entry" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "The price paid to the vendor for this product" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Vendor purchase price" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Available quantity of the product in stock" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Quantity in stock" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "Vendor-assigned SKU for identifying the product" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "Vendor's SKU" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Digital file associated with this stock if applicable" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Digital file" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Stock entries" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Products that the user has marked as wanted" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "User who owns this wishlist" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Wishlist's Owner" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Wishlist" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} does not exist: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documentary" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Unresolved" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Address line for the customer" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Address line" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Street" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "District" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "City" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Region" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Postal code" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Country" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Full JSON response from geocoder for this address" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Stored JSON response from the geocoding service" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Address" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adresses" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Unique code used by a user to redeem a discount" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Fixed discount amount applied if percent is not used" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Fixed discount amount" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Percentage discount applied if fixed amount is not used" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Percentage discount" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Timestamp when the promocode expires" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "End validity time" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Timestamp from which this promocode is valid" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Start validity time" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "Timestamp when the promocode was used, blank if not used yet" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Usage timestamp" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "User assigned to this promocode if applicable" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Assigned user" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Promo code" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1788,136 +1793,136 @@ msgstr "" "Only one type of discount should be defined (amount or percent), but not " "both or neither." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Promocode has been used already" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Invalid discount type for promocode {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "The billing address used for this order" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Optional promo code applied to this order" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Applied promo code" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "The shipping address used for this order" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Shipping address" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Current status of the order in its lifecycle" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Order status" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "JSON structure of notifications to display to users, in admin UI the table-" "view is used" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "JSON representation of order attributes for this order" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "The user who placed the order" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "User" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "The timestamp when the order was finalized" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Buy time" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "A human-readable identifier for the order" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "human-readable ID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Order" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "A user must have only one pending order at a time!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "You cannot add products to an order that is not a pending one" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "You cannot add inactive products to order" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "You cannot add more products than available in stock" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "You cannot remove products from an order that is not a pending one" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} does not exist with query <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Promocode does not exist" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "You can only buy physical products with shipping address specified!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Address does not exist" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "You can not purchase at this moment, please try again in a few minutes." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Invalid force value" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "You cannot purchase an empty order!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Insufficient funds to complete the order" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1925,117 +1930,116 @@ msgstr "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Invalid payment method: {payment_method} from {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "The price paid by the customer for this product at purchase time" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Purchase price at order time" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "Internal comments for admins about this ordered product" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Internal comments" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "User notifications" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "JSON representation of this item's attributes" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Ordered product attributes" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Reference to the parent order that contains this product" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Parent order" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "The specific product associated with this order line" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Quantity of this specific product in the order" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Product quantity" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Current status of this product in the order" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Product line status" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "wrong action specified for feedback: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "you cannot feedback an order which is not received" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Download" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Downloads" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "You can not download a digital asset for a non-finished order" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "User-provided comments about their experience with the product" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Feedback comments" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "References the specific product in an order that this feedback is about" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Related order product" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "User-assigned rating for the product" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Product rating" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Feedback" @@ -2077,11 +2081,12 @@ msgstr "Hello %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are the details of your\n" +" we have taken your order into work. below are " +"the details of your\n" " order:" msgstr "" -"Thank you for your order #%(order.pk)s! We are pleased to inform you that we" -" have taken your order into work. Below are the details of your order:" +"Thank you for your order #%(order.pk)s! We are pleased to inform you that we " +"have taken your order into work. Below are the details of your order:" #: core/templates/digital_order_created_email.html:112 #: core/templates/digital_order_delivered_email.html:111 @@ -2170,11 +2175,12 @@ msgstr "Key" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" -"Thank you for your order! We are pleased to confirm your purchase. Below are" -" the details of your order:" +"Thank you for your order! We are pleased to confirm your purchase. Below are " +"the details of your order:" #: core/templates/shipped_order_created_email.html:123 #: core/templates/shipped_order_delivered_email.html:123 @@ -2245,8 +2251,7 @@ msgstr "NOMINATIM_URL parameter must be configured!" #: core/validators.py:16 #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" -msgstr "" -"Image dimensions should not exceed w{max_width} x h{max_height} pixels" +msgstr "Image dimensions should not exceed w{max_width} x h{max_height} pixels" #: core/validators.py:22 msgid "invalid phone number format" diff --git a/core/locale/es_ES/LC_MESSAGES/django.po b/core/locale/es_ES/LC_MESSAGES/django.po index 4bd2f4e6..d236fe42 100644 --- a/core/locale/es_ES/LC_MESSAGES/django.po +++ b/core/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "Está activo" -#: core/abstract.py:22 +#: 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" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Creado" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Cuando el objeto apareció por primera vez en la base de datos" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modificado" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Cuándo se editó el objeto por última vez" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Traducciones" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "General" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relaciones" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadatos" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Marcas de tiempo" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activar %(verbose_name_plural)s seleccionados" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "¡%(verbose_name_plural)s activado con éxito!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desactivar %(verbose_name_plural)s seleccionados" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s desactivado con éxito." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Atributo Valor" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Valores de los atributos" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Imagen" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Imágenes" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stock" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Acciones" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Pedir un producto" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Pedir productos" @@ -128,7 +127,7 @@ msgstr "Pedir productos" msgid "children" msgstr "Niños" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Configurar" @@ -190,7 +189,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar sólo una clave para leer datos permitidos de la caché.\n" -"Aplicar clave, datos y tiempo de espera con autenticación para escribir datos en la caché." +"Aplicar clave, datos y tiempo de espera con autenticación para escribir " +"datos en la caché." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -222,8 +222,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Compra un pedido como empresa, utilizando los `productos` proporcionados con" -" `product_uuid` y `attributes`." +"Compra un pedido como empresa, utilizando los `productos` proporcionados con " +"`product_uuid` y `attributes`." #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -246,8 +246,7 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescribir un grupo de atributos existente guardando los no editables" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescribir algunos campos de un grupo de atributos existente guardando los " "no editables" @@ -275,8 +274,7 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: core/docs/drf/viewsets.py:90 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no " -"editables" +"Reescribir algunos campos de un atributo existente guardando los no editables" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -299,11 +297,10 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescribir un valor de atributo existente guardando los no editables" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" -"Reescribir algunos campos de un valor de atributo existente guardando los no" -" editables" +"Reescribir algunos campos de un valor de atributo existente guardando los no " +"editables" #: core/docs/drf/viewsets.py:124 msgid "list all categories (simple view)" @@ -343,12 +340,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "Búsqueda de subcadenas sin distinción entre mayúsculas y minúsculas en " -"human_readable_id, order_products.product.name y " -"order_products.product.partnumber" +"human_readable_id, order_products.product.name y order_products.product." +"partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -369,8 +366,8 @@ msgstr "Filtrar por ID de pedido exacto legible por el ser humano" #: core/docs/drf/viewsets.py:185 msgid "Filter by user's email (case-insensitive exact match)" msgstr "" -"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a" -" mayúsculas y minúsculas)" +"Filtrar por correo electrónico del usuario (coincidencia exacta insensible a " +"mayúsculas y minúsculas)" #: core/docs/drf/viewsets.py:190 msgid "Filter by user's UUID" @@ -384,9 +381,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Ordenar por: uuid, human_readable_id, user_email, user, status, created, " "modified, buy_time, random. Utilice el prefijo '-' para orden descendente " @@ -521,8 +518,7 @@ msgstr "Reescribir un atributo existente guardando los no editables" #: core/docs/drf/viewsets.py:303 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Reescribir algunos campos de un atributo existente guardando los no " -"editables" +"Reescribir algunos campos de un atributo existente guardando los no editables" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -569,20 +565,31 @@ msgstr "" msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " +"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " +"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " +"`true`/`false` for booleans, integers, floats; otherwise treated as " +"string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," +"\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "Filtrar por uno o varios pares nombre/valor de atributo. \n" "- Sintaxis**: `nombre_attr=método-valor[;attr2=método2-valor2]...`.\n" -"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- Tipificación de valores**: Se intenta primero JSON (para poder pasar listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso contrario se trata como cadena. \n" -"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin procesar. \n" +"- Métodos** (por defecto `icontiene` si se omite): `iexact`, `exact`, " +"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " +"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- Tipificación de valores**: Se intenta primero JSON (para poder pasar " +"listas/dictos), `true`/`false` para booleanos, enteros, flotantes; en caso " +"contrario se trata como cadena. \n" +"- Base64**: prefiérelo con `b64-` para codificar en base64 el valor sin " +"procesar. \n" "Ejemplos: \n" -"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", \"bluetooth\"]`,\n" +"`color=rojo exacto`, `tamaño=gt-10`, `características=en-[\"wifi\", " +"\"bluetooth\"]`,\n" "`b64-description=icontains-aGVhdC1jb2xk`." #: core/docs/drf/viewsets.py:349 @@ -637,10 +644,12 @@ msgstr "(exacto) Digital frente a físico" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` para que sea descendente. \n" +"Lista separada por comas de campos por los que ordenar. Prefiérela con `-` " +"para que sea descendente. \n" "**Permitido:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -768,7 +777,7 @@ msgstr "suprimir una relación pedido-producto" msgid "add or remove feedback on an order–product relation" msgstr "añadir o eliminar comentarios en una relación pedido-producto" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "No se proporciona ningún término de búsqueda." @@ -816,8 +825,8 @@ msgstr "Atributos" msgid "Quantity" msgstr "Cantidad" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Babosa" @@ -831,8 +840,7 @@ msgstr "Incluir subcategorías" #: core/filters.py:147 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "" -"Debe haber un category_uuid para usar la bandera include_subcategories" +msgstr "Debe haber un category_uuid para usar la bandera include_subcategories" #: core/filters.py:280 msgid "Search (ID, product name or part number)" @@ -932,8 +940,7 @@ msgstr "Indique order_uuid o order_hr_id, ¡se excluyen mutuamente!" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 #: core/graphene/mutations.py:483 core/viewsets.py:341 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "" -"Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" +msgstr "Tipo incorrecto proveniente del método order.buy(): {type(instance)!s}" #: core/graphene/mutations.py:233 msgid "perform an action on a list of products in the order" @@ -975,11 +982,11 @@ msgstr "Comprar un pedido" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" -"Por favor, envíe los atributos como una cadena formateada como " -"attr1=valor1,attr2=valor2" +"Por favor, envíe los atributos como una cadena formateada como attr1=valor1," +"attr2=valor2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" @@ -999,7 +1006,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona a las mil maravillas" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Atributos" @@ -1012,11 +1019,11 @@ msgid "groups of attributes" msgstr "Grupos de atributos" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Categorías" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Marcas" @@ -1025,7 +1032,7 @@ msgid "category image url" msgstr "Categorías" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Porcentaje de recargo" @@ -1035,8 +1042,7 @@ msgstr "" "Qué atributos y valores se pueden utilizar para filtrar esta categoría." #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +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." @@ -1049,7 +1055,7 @@ msgstr "Etiquetas para esta categoría" msgid "products in this category" msgstr "Productos de esta categoría" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Vendedores" @@ -1068,15 +1074,14 @@ msgstr "Cómo" #: core/graphene/object_types.py:262 msgid "rating value from 1 to 10, inclusive, or 0 if not set." msgstr "" -"Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está " -"configurado." +"Valor de calificación de 1 a 10, ambos inclusive, o 0 si no está configurado." #: core/graphene/object_types.py:269 msgid "represents feedback from a user." msgstr "Representa la opinión de un usuario." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Notificaciones" @@ -1088,7 +1093,7 @@ msgstr "Descargar url para este producto de pedido si procede" msgid "a list of order products in this order" msgstr "Una lista de los productos del pedido" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Dirección de facturación" @@ -1112,7 +1117,7 @@ msgstr "Cantidad total de productos del pedido" msgid "are all products in the order digital" msgstr "¿Están todos los productos en el pedido digital" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Pedidos" @@ -1124,19 +1129,19 @@ msgstr "URL de la imagen" msgid "product's images" msgstr "Imágenes del producto" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Categoría" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Comentarios" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Grupos de atributos" @@ -1160,7 +1165,7 @@ msgstr "Cantidad" msgid "number of feedbacks" msgstr "Número de reacciones" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Productos" @@ -1172,15 +1177,15 @@ msgstr "Códigos promocionales" msgid "products on sale" msgstr "Productos a la venta" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promociones" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Vendedor" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1188,11 +1193,11 @@ msgstr "Vendedor" msgid "product" msgstr "Producto" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Productos deseados" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Listas de deseos" @@ -1200,7 +1205,7 @@ msgstr "Listas de deseos" msgid "tagged products" msgstr "Productos con etiqueta" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Etiquetas del producto" @@ -1286,549 +1291,548 @@ msgstr "Resultados de la búsqueda de productos" msgid "posts search results" msgstr "Resultados de la búsqueda de productos" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Padre de este grupo" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Grupo de atributos padre" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Nombre del grupo de atributos" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Almacena las credenciales y los puntos finales necesarios para la " "comunicación API del proveedor" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Información de autenticación" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definir el margen de beneficio para los productos recuperados de este " "proveedor" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Porcentaje de margen del vendedor" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Nombre de este vendedor" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Nombre del vendedor" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Identificador interno de la etiqueta del producto" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Nombre de la etiqueta" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Nombre fácil de usar para la etiqueta del producto" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Nombre de la etiqueta" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Etiqueta del producto" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "etiqueta de categoría" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "etiquetas de categoría" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Cargar una imagen que represente esta categoría" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Categoría imagen" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Definir un porcentaje de recargo para los productos de esta categoría" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Padre de esta categoría para formar una estructura jerárquica" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Categoría de padres" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Nombre de la categoría" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Indique un nombre para esta categoría" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Añadir una descripción detallada para esta categoría" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Descripción de la categoría" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "etiquetas que ayudan a describir o agrupar esta categoría" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Prioridad" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Nombre de esta marca" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Marca" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Cargar un logotipo que represente a esta marca" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Marca pequeña imagen" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Sube un logotipo grande que represente a esta marca" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Gran imagen de marca" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Añadir una descripción detallada de la marca" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Descripción de la marca" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Categorías opcionales a las que se asocia esta marca" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Categorías" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Categoría a la que pertenece este producto" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Si lo desea, puede asociar este producto a una marca" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Etiquetas que ayudan a describir o agrupar este producto" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Indica si este producto se entrega digitalmente" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "¿Es digital el producto?" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Proporcionar un nombre que identifique claramente el producto" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Nombre del producto" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Añada una descripción detallada del producto" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Descripción del producto" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Número de pieza de este producto" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Número de pieza" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Categoría de este atributo" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Grupo de este atributo" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Cadena" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Entero" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Flotador" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Booleano" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Matriz" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Objeto" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Tipo del valor del atributo" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Nombre de este atributo" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Nombre del atributo" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Atributo" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Atributo de este valor" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "El producto específico asociado al valor de este atributo" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Producto asociado" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "El valor específico de este atributo" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "" "Proporcione un texto alternativo para la imagen en aras de la accesibilidad" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Texto alternativo de la imagen" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Cargar el archivo de imagen para este producto" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Imagen del producto" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Determina el orden de visualización de las imágenes" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Prioridad de visualización" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "El producto que representa esta imagen" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Imágenes de productos" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Porcentaje de descuento para los productos seleccionados" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Porcentaje de descuento" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Proporcione un nombre único para esta promoción" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Nombre de la promoción" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Descripción de la promoción" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Seleccione los productos incluidos en esta promoción" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Productos incluidos" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promoción" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "El vendedor que suministra este producto dispone de" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Proveedor asociado" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Precio final al cliente después de márgenes" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Precio de venta" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "El producto asociado a esta entrada en stock" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "El precio pagado al vendedor por este producto" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Precio de compra al vendedor" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Cantidad disponible del producto en stock" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Cantidad en stock" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU asignada por el proveedor para identificar el producto" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU del vendedor" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Archivo digital asociado a esta acción, si procede" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Archivo digital" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Entradas en existencias" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Productos que el usuario ha marcado como deseados" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Usuario propietario de esta lista de deseos" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Propietario de Wishlist" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Lista de deseos" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} no existe: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documental" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentaries" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Sin resolver" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Dirección del cliente" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Dirección" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Calle" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Distrito" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Ciudad" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Región" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Promo code" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "País" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocalización Punto(Longitud, Latitud)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Respuesta JSON completa del geocodificador para esta dirección" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Respuesta JSON almacenada del servicio de geocodificación" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Dirección" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Direcciones" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Código único utilizado por un usuario para canjear un descuento" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Promo code identifier" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Se aplica un descuento fijo si no se utiliza el porcentaje" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Importe fijo del descuento" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Porcentaje de descuento aplicado si no se utiliza el importe fijo" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Porcentaje de descuento" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Fecha de caducidad del promocode" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Hora de fin de validez" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Fecha a partir de la cual es válido este promocode" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Hora de inicio de validez" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Fecha en la que se utilizó el promocode, en blanco si aún no se ha utilizado" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Marca de tiempo de uso" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Usuario asignado a este promocode si procede" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Usuario asignado" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Promo code" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Promo codes" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1836,138 +1840,138 @@ msgstr "" "Sólo debe definirse un tipo de descuento (importe o porcentaje), pero no " "ambos ni ninguno." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "El código promocional ya ha sido utilizado" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tipo de descuento no válido para promocode {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "La dirección de facturación utilizada para este pedido" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "La dirección de envío utilizada para este pedido" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Dirección de envío" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Estado actual del pedido en su ciclo de vida" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Estado del pedido" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "Estructura JSON de las notificaciones para mostrar a los usuarios, en la " "interfaz de administración se utiliza la vista de tabla." -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "Representación JSON de los atributos de la orden para esta orden" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "El usuario que realizó el pedido" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Usuario" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Fecha de finalización de la orden" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Comprar tiempo" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Un identificador legible por el ser humano para la orden" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "ID legible por humanos" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Pida" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Un usuario sólo puede tener una orden pendiente a la vez." -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "No puede añadir productos a un pedido que no esté pendiente" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "No se pueden añadir productos inactivos al pedido" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "No puede añadir más productos de los disponibles en stock" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "No puede eliminar productos de un pedido que no esté pendiente" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} no existe con la consulta <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Promocode no existe" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" "Sólo puede comprar productos físicos con la dirección de envío especificada." -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "La dirección no existe" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "No puede comprar en este momento, por favor inténtelo de nuevo en unos " "minutos." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Valor de fuerza no válido" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "No se puede comprar un pedido vacío." -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Fondos insuficientes para completar el pedido" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1975,120 +1979,119 @@ msgstr "" "no puede comprar sin registrarse, facilite la siguiente información: nombre " "del cliente, correo electrónico del cliente, número de teléfono del cliente" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Forma de pago no válida: ¡{payment_method} de {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "" "El precio pagado por el cliente por este producto en el momento de la compra" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Precio de compra en el momento del pedido" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarios internos para los administradores sobre este producto solicitado" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Comentarios internos" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Notificaciones a los usuarios" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "Representación JSON de los atributos de este elemento" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Atributos ordenados del producto" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Referencia al pedido principal que contiene este producto" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Orden de los padres" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "El producto específico asociado a esta línea de pedido" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Cantidad de este producto específico en el pedido" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Cantidad de productos" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Estado actual de este producto en el pedido" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Estado de la línea de productos" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "acción incorrecta especificada para la retroalimentación: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "no se puede comentar un pedido no recibido" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Descargar" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Descargas" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "No puede descargar un activo digital para un pedido no finalizado" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Comentarios de los usuarios sobre su experiencia con el producto" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Comentarios" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "Hace referencia al producto específico de un pedido sobre el que trata esta " "opinión" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Producto relacionado con el pedido" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Valoración del producto asignada por el usuario" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Valoración del producto" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Comentarios" @@ -2131,7 +2134,8 @@ 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 " @@ -2224,7 +2228,8 @@ msgstr "Clave" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Gracias por su pedido. Nos complace confirmarle su compra. A continuación " diff --git a/core/locale/fr_FR/LC_MESSAGES/django.po b/core/locale/fr_FR/LC_MESSAGES/django.po index 20b653a6..a9a3ee62 100644 --- a/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/core/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "Est actif" -#: core/abstract.py:22 +#: 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." -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Créée" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Date de la première apparition de l'objet dans la base de données" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modifié" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Date de la dernière modification de l'objet" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Traductions" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Général" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relations" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Métadonnées" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Horodatage" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activer les %(verbose_name_plural)s sélectionnés" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s activé avec succès !" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Désactiver les %(verbose_name_plural)s sélectionnés" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "Désactivation réussie de %(verbose_name_plural)s." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Valeur de l'attribut" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Valeurs des attributs" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Image" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Images" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stock" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Stocks" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Commander un produit" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Commander des produits" @@ -128,7 +127,7 @@ msgstr "Commander des produits" msgid "children" msgstr "Les enfants" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Config" @@ -189,8 +188,10 @@ msgid "" "apply only a key to read permitted data from cache.\n" "apply key, data and timeout with authentication to write data to cache." msgstr "" -"Appliquer uniquement une clé pour lire les données autorisées dans la mémoire cache.\n" -"Appliquer une clé, des données et un délai d'attente avec authentification pour écrire des données dans la mémoire cache." +"Appliquer uniquement une clé pour lire les données autorisées dans la " +"mémoire cache.\n" +"Appliquer une clé, des données et un délai d'attente avec authentification " +"pour écrire des données dans la mémoire cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -248,8 +249,7 @@ msgstr "" "modifiables" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Réécrire certains champs d'un groupe d'attributs existant en sauvegardant " "les non-éditables" @@ -278,8 +278,8 @@ msgstr "" #: core/docs/drf/viewsets.py:90 msgid "rewrite some fields of an existing attribute saving non-editables" msgstr "" -"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" -" non modifiables" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments " +"non modifiables" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -304,8 +304,7 @@ msgstr "" "modifiables" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Réécrire certains champs d'une valeur d'attribut existante en sauvegardant " "les éléments non modifiables" @@ -348,11 +347,11 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" -"Recherche insensible à la casse dans human_readable_id, " -"order_products.product.name, et order_products.product.partnumber" +"Recherche insensible à la casse dans human_readable_id, order_products." +"product.name, et order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -388,13 +387,13 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Ordonner par l'un des éléments suivants : uuid, human_readable_id, " -"user_email, user, status, created, modified, buy_time, random. Préfixer avec" -" '-' pour l'ordre décroissant (par exemple '-buy_time')." +"user_email, user, status, created, modified, buy_time, random. Préfixer avec " +"'-' pour l'ordre décroissant (par exemple '-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -432,8 +431,8 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est" -" complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " +"Finalise l'achat de la commande. Si `force_balance` est utilisé, l'achat est " +"complété en utilisant le solde de l'utilisateur ; Si `force_payment` est " "utilisé, une transaction est initiée." #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 @@ -493,8 +492,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Supprime une liste de produits d'une commande en utilisant le `product_uuid`" -" et les `attributs` fournis." +"Supprime une liste de produits d'une commande en utilisant le `product_uuid` " +"et les `attributs` fournis." #: core/docs/drf/viewsets.py:281 msgid "list all wishlists (simple view)" @@ -530,8 +529,8 @@ msgstr "" #: core/docs/drf/viewsets.py:303 msgid "rewrite some fields of an existing wishlist saving non-editables" msgstr "" -"Réécrire certains champs d'un attribut existant en sauvegardant les éléments" -" non modifiables" +"Réécrire certains champs d'un attribut existant en sauvegardant les éléments " +"non modifiables" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -578,18 +577,29 @@ 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`" @@ -644,10 +654,12 @@ msgstr "(exact) Numérique ou physique" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un tri descendant. \n" +"Liste de champs séparés par des virgules à trier. Préfixer avec `-` pour un " +"tri descendant. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -778,7 +790,7 @@ msgstr "" "ajouter ou supprimer un retour d'information sur une relation commande-" "produit" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Aucun terme de recherche n'est fourni." @@ -826,8 +838,8 @@ msgstr "Attributs" msgid "Quantity" msgstr "Quantité" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Limace" @@ -988,8 +1000,8 @@ msgstr "Acheter une commande" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" "Veuillez envoyer les attributs sous la forme d'une chaîne formatée comme " "attr1=valeur1,attr2=valeur2." @@ -1012,7 +1024,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - fonctionne comme un charme" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Attributs" @@ -1025,11 +1037,11 @@ msgid "groups of attributes" msgstr "Groupes d'attributs" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Catégories" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Marques" @@ -1038,7 +1050,7 @@ msgid "category image url" msgstr "Catégories" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Markup Percentage" @@ -1049,8 +1061,7 @@ msgstr "" "catégorie." #: core/graphene/object_types.py:133 -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." @@ -1063,7 +1074,7 @@ msgstr "Tags pour cette catégorie" msgid "products in this category" msgstr "Produits dans cette catégorie" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Vendeurs" @@ -1088,7 +1099,7 @@ msgid "represents feedback from a user." msgstr "Représente le retour d'information d'un utilisateur." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Notifications" @@ -1100,7 +1111,7 @@ msgstr "URL de téléchargement pour ce produit de la commande, le cas échéant msgid "a list of order products in this order" msgstr "Une liste des produits commandés dans cette commande" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Adresse de facturation" @@ -1109,8 +1120,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" #: core/graphene/object_types.py:311 msgid "total price of this order" @@ -1124,7 +1135,7 @@ msgstr "Quantité totale de produits dans la commande" msgid "are all products in the order digital" msgstr "Tous les produits de la commande sont-ils numériques ?" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Commandes" @@ -1136,19 +1147,19 @@ msgstr "Image URL" msgid "product's images" msgstr "Images du produit" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Catégorie" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Retour d'information" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Marque" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Groupes d'attributs" @@ -1172,7 +1183,7 @@ msgstr "Quantité" msgid "number of feedbacks" msgstr "Nombre de retours d'information" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Produits" @@ -1184,15 +1195,15 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Produits en vente" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promotions" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Vendeur" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1200,11 +1211,11 @@ msgstr "Vendeur" msgid "product" msgstr "Produit" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Produits en liste de souhaits" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Liste de souhaits" @@ -1212,7 +1223,7 @@ msgstr "Liste de souhaits" msgid "tagged products" msgstr "Produits marqués" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Étiquettes du produit" @@ -1299,552 +1310,548 @@ msgstr "Résultats de la recherche de produits" msgid "posts search results" msgstr "Résultats de la recherche de produits" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Parent de ce groupe" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Groupe d'attributs parent" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Nom du groupe d'attributs" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Groupe d'attributs" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stocke les informations d'identification et les points d'extrémité " "nécessaires à la communication avec l'API du fournisseur." -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Informations sur l'authentification" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "" "Définir la majoration pour les produits récupérés auprès de ce fournisseur" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Pourcentage de marge du vendeur" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Nom de ce vendeur" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Nom du vendeur" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Identifiant interne de l'étiquette du produit" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Nom du jour" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Nom convivial pour l'étiquette du produit" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Nom d'affichage de l'étiquette" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Étiquette du produit" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "étiquette de catégorie" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "balises de catégorie" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Télécharger une image représentant cette catégorie" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Image de catégorie" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "" "Définir un pourcentage de majoration pour les produits de cette catégorie" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Parent de cette catégorie pour former une structure hiérarchique" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Catégorie de parents" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Nom de la catégorie" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Donnez un nom à cette catégorie" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Ajouter une description détaillée pour cette catégorie" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Description de la catégorie" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "les étiquettes qui aident à décrire ou à regrouper cette catégorie" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Priorité" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Nom de cette marque" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Nom de marque" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Télécharger un logo représentant cette marque" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Petite image de marque" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Télécharger un grand logo représentant cette marque" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Une grande image de marque" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Ajouter une description détaillée de la marque" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Description de la marque" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Catégories facultatives auxquelles cette marque est associée" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Catégories" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Catégorie à laquelle appartient ce produit" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Possibilité d'associer ce produit à une marque" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Étiquettes permettant de décrire ou de regrouper ce produit" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Indique si ce produit est livré numériquement" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Le produit est-il numérique ?" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Fournir un nom d'identification clair pour le produit" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Nom du produit" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Ajouter une description détaillée du produit" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Description du produit" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Numéro de pièce pour ce produit" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Numéro de pièce" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Catégorie de cet attribut" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Groupe de cet attribut" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Chaîne" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Entier" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Flotteur" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Booléen" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Tableau" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Objet" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Type de la valeur de l'attribut" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Type de valeur" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Nom de cet attribut" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Nom de l'attribut" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Attribut" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Attribut de cette valeur" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Le produit spécifique associé à la valeur de cet attribut" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Produit associé" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "La valeur spécifique de cet attribut" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "Fournir un texte alternatif pour l'image afin d'en faciliter l'accès" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Texte alt de l'image" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Télécharger le fichier image pour ce produit" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Image du produit" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Détermine l'ordre d'affichage des images" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Priorité à l'affichage" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Le produit que cette image représente" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Images du produit" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Pourcentage de réduction pour les produits sélectionnés" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Pourcentage de réduction" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Donnez un nom unique à cette promotion" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Nom de la promotion" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Promotion description" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Sélectionnez les produits inclus dans cette promotion" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Produits inclus" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promotion" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Le vendeur qui fournit ce stock de produits" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Vendeur associé" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Prix final pour le client après majoration" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Prix de vente" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Le produit associé à cette entrée de stock" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Le prix payé au vendeur pour ce produit" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Prix d'achat du vendeur" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Quantité disponible du produit en stock" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Quantité en stock" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU attribué par le fournisseur pour identifier le produit" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "UGS du vendeur" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Fichier numérique associé à ce stock, le cas échéant" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Fichier numérique" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Entrées de stock" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Produits que l'utilisateur a marqués comme souhaités" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Utilisateur qui possède cette liste de souhaits" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Propriétaire de la liste de souhaits" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Liste de souhaits" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} n'existe pas : {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documentaire" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Non résolu" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Ligne d'adresse du client" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Ligne d'adresse" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Rue" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "District" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Ville" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Région" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Code postal" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Pays" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Point de géolocalisation (longitude, latitude)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Réponse JSON complète du géocodeur pour cette adresse" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Réponse JSON stockée du service de géocodage" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Adresse" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adresses" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" -msgstr "" -"Code unique utilisé par un utilisateur pour bénéficier d'une réduction" +msgstr "Code unique utilisé par un utilisateur pour bénéficier d'une réduction" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Identifiant du code promotionnel" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" -msgstr "" -"Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" +msgstr "Montant fixe de la remise appliqué si le pourcentage n'est pas utilisé" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Montant de l'escompte fixe" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" -msgstr "" -"Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" +msgstr "Pourcentage de réduction appliqué si le montant fixe n'est pas utilisé" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Pourcentage de réduction" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Date d'expiration du code promotionnel" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Heure de fin de validité" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Date à partir de laquelle ce code promotionnel est valable" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Heure de début de validité" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore" -" été utilisé." +"Date à laquelle le code promotionnel a été utilisé, vide s'il n'a pas encore " +"été utilisé." -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Horodatage de l'utilisation" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Utilisateur assigné à ce code promo, le cas échéant" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Utilisateur assigné" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Code promo" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Codes promotionnels" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1852,144 +1859,143 @@ msgstr "" "Un seul type de remise doit être défini (montant ou pourcentage), mais pas " "les deux ni aucun des deux." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Le code promotionnel a déjà été utilisé" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Type de réduction non valide pour le code promo {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "L'adresse de facturation utilisée pour cette commande" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Code promo optionnel appliqué à cette commande" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Code promo appliqué" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "L'adresse de livraison utilisée pour cette commande" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Adresse de livraison" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Statut actuel de la commande dans son cycle de vie" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Statut de la commande" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "Structure JSON des notifications à afficher aux utilisateurs ; dans " "l'interface d'administration, la vue en tableau est utilisée." -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "Représentation JSON des attributs de cette commande" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "L'utilisateur qui a passé la commande" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Utilisateur" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "L'heure à laquelle la commande a été finalisée." -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Temps d'achat" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Un identifiant lisible par l'homme pour la commande" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "ID lisible par l'homme" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Commande" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Un utilisateur ne peut avoir qu'un seul ordre en cours à la fois !" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "" -"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en " -"cours." +"Vous ne pouvez pas ajouter de produits à une commande qui n'est pas en cours." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Vous ne pouvez pas ajouter des produits inactifs à la commande" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "" "Vous ne pouvez pas ajouter plus de produits que ceux disponibles en stock" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " "cours." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} n'existe pas avec la requête <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Le code promotionnel n'existe pas" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" "Vous ne pouvez acheter que des produits physiques dont l'adresse de " "livraison est spécifiée !" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "L'adresse n'existe pas" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Vous ne pouvez pas acheter en ce moment, veuillez réessayer dans quelques " "minutes." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Valeur de force non valide" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Vous ne pouvez pas acheter une commande vide !" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Insuffisance de fonds pour compléter la commande" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1998,7 +2004,7 @@ msgstr "" "informations suivantes : nom du client, courriel du client, numéro de " "téléphone du client" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -2006,116 +2012,114 @@ msgstr "" "Méthode de paiement non valide : {payment_method} de " "{available_payment_methods} !" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "Le prix payé par le client pour ce produit au moment de l'achat" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Prix d'achat au moment de la commande" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" -msgstr "" -"Commentaires internes pour les administrateurs sur ce produit commandé" +msgstr "Commentaires internes pour les administrateurs sur ce produit commandé" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Commentaires internes" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Notifications aux utilisateurs" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "Représentation JSON des attributs de cet élément" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Attributs du produit ordonnés" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Référence à l'ordre parent qui contient ce produit" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Ordonnance parentale" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Le produit spécifique associé à cette ligne de commande" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Quantité de ce produit spécifique dans la commande" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Quantité de produits" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Statut actuel de ce produit dans la commande" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Statut de la ligne de produits" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "mauvaise action spécifiée pour le retour d'information : {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" "Vous ne pouvez pas retirer des produits d'une commande qui n'est pas en " "cours." -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Télécharger" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Téléchargements" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "" "Vous ne pouvez pas télécharger un bien numérique pour une commande non " "terminée." -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Commentaires des utilisateurs sur leur expérience du produit" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Commentaires" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "Fait référence au produit spécifique d'une commande sur lequel porte le " "retour d'information." -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Produit de commande apparenté" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Note attribuée par l'utilisateur au produit" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Evaluation du produit" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Retour d'information" @@ -2158,7 +2162,8 @@ 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 " @@ -2252,7 +2257,8 @@ msgstr "Clé" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Nous vous remercions pour votre commande ! Nous avons le plaisir de " @@ -2291,8 +2297,8 @@ msgstr "Les données et le délai d'attente sont tous deux nécessaires" #: core/utils/caching.py:43 msgid "invalid timeout value, it must be between 0 and 216000 seconds" msgstr "" -"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre" -" 0 et 216000 secondes." +"La valeur du délai d'attente n'est pas valide, elle doit être comprise entre " +"0 et 216000 secondes." #: core/utils/db.py:14 #, python-brace-format diff --git a/core/locale/hi_IN/LC_MESSAGES/django.po b/core/locale/hi_IN/LC_MESSAGES/django.po index 8a0441eb..845780f1 100644 --- a/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/core/locale/hi_IN/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -28,97 +28,97 @@ msgstr "" msgid "is active" msgstr "" -#: core/abstract.py:22 +#: core/abstract.py:21 msgid "" "if set to false, this object can't be seen by users without needed permission" msgstr "" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "" -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "" @@ -126,7 +126,7 @@ msgstr "" msgid "children" msgstr "" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "" @@ -702,7 +702,7 @@ msgstr "" msgid "add or remove feedback on an order–product relation" msgstr "" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "" @@ -750,8 +750,8 @@ msgstr "" msgid "Quantity" msgstr "" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 core/models.py:307 -#: core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "" @@ -929,7 +929,7 @@ msgid "elasticsearch - works like a charm" msgstr "" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "" @@ -942,11 +942,11 @@ msgid "groups of attributes" msgstr "" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "" @@ -955,7 +955,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "" @@ -975,7 +975,7 @@ msgstr "" msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "" @@ -1000,7 +1000,7 @@ msgid "represents feedback from a user." msgstr "" #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "" @@ -1012,7 +1012,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "" @@ -1046,19 +1046,19 @@ msgstr "" msgid "product's images" msgstr "" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "" @@ -1082,7 +1082,7 @@ msgstr "" msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "" @@ -1094,15 +1094,15 @@ msgstr "" msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1110,11 +1110,11 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "" @@ -1122,7 +1122,7 @@ msgstr "" msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "" @@ -1207,787 +1207,787 @@ msgstr "" msgid "posts search results" msgstr "" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:507 core/models.py:546 core/models.py:617 core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "" -#: core/models.py:1490 +#: core/models.py:1929 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "" diff --git a/core/locale/it_IT/LC_MESSAGES/django.po b/core/locale/it_IT/LC_MESSAGES/django.po index 262e790d..bf2a393d 100644 --- a/core/locale/it_IT/LC_MESSAGES/django.po +++ b/core/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "È attivo" -#: core/abstract.py:22 +#: 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." -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Creato" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Quando l'oggetto è apparso per la prima volta nel database" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modificato" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Quando l'oggetto è stato modificato per l'ultima volta" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Traduzioni" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Generale" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relazioni" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadati" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Timestamp" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Attivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s attivato con successo!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Disattivare il %(verbose_name_plural)s selezionato" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s disattivato con successo." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Valore dell'attributo" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Valori degli attributi" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Immagine" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Immagini" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stock" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Le scorte" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Ordina il prodotto" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Ordinare i prodotti" @@ -128,7 +127,7 @@ msgstr "Ordinare i prodotti" msgid "children" msgstr "I bambini" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Configurazione" @@ -190,7 +189,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Applicare solo una chiave per leggere i dati consentiti dalla cache.\n" -"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella cache." +"Applicare chiave, dati e timeout con autenticazione per scrivere dati nella " +"cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -247,8 +247,7 @@ msgstr "" "Riscrivere un gruppo di attributi esistente salvando i non modificabili" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Riscrivere alcuni campi di un gruppo di attributi esistente salvando quelli " "non modificabili" @@ -303,8 +302,7 @@ msgstr "" "modificabili" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Riscrivere alcuni campi di un valore di attributo esistente salvando i " "valori non modificabili" @@ -333,8 +331,8 @@ msgstr "" #: core/docs/drf/viewsets.py:144 msgid "rewrite some fields of an existing category saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" -" modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " +"modificabili" #: core/docs/drf/viewsets.py:151 msgid "list all orders (simple view)" @@ -348,12 +346,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "Ricerca di sottostringhe senza distinzione di maiuscole e minuscole tra " -"human_readable_id, order_products.product.name e " -"order_products.product.partnumber" +"human_readable_id, order_products.product.name e order_products.product." +"partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -389,9 +387,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Ordinare per uno dei seguenti criteri: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefisso con '-' per la " @@ -421,8 +419,8 @@ msgstr "" #: core/docs/drf/viewsets.py:227 msgid "rewrite some fields of an existing order saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" -" modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " +"modificabili" #: core/docs/drf/viewsets.py:231 msgid "purchase an order" @@ -435,8 +433,8 @@ msgid "" "transaction is initiated." msgstr "" "Finalizza l'acquisto dell'ordine. Se si utilizza `forza_bilancio`, " -"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza" -" `forza_pagamento`, viene avviata una transazione." +"l'acquisto viene completato utilizzando il saldo dell'utente; se si utilizza " +"`forza_pagamento`, viene avviata una transazione." #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 msgid "purchase an order without account creation" @@ -504,8 +502,8 @@ msgstr "Elenco di tutti gli attributi (vista semplice)" #: core/docs/drf/viewsets.py:282 msgid "for non-staff users, only their own wishlists are returned." msgstr "" -"Per gli utenti che non fanno parte del personale, vengono restituite solo le" -" loro liste dei desideri." +"Per gli utenti che non fanno parte del personale, vengono restituite solo le " +"loro liste dei desideri." #: core/docs/drf/viewsets.py:286 msgid "retrieve a single wishlist (detailed view)" @@ -578,18 +576,28 @@ 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`" @@ -645,10 +653,12 @@ msgstr "(esatto) Digitale e fisico" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per l'ordinamento discendente. \n" +"Elenco separato da virgole dei campi da ordinare. Prefisso con `-` per " +"l'ordinamento discendente. \n" "**Consentito:** uuid, rating, nome, slug, creato, modificato, prezzo, casuale" #: core/docs/drf/viewsets.py:441 @@ -667,8 +677,7 @@ msgstr "Creare un prodotto" #: core/docs/drf/viewsets.py:463 msgid "rewrite an existing product, preserving non-editable fields" -msgstr "" -"Riscrivere un prodotto esistente, preservando i campi non modificabili" +msgstr "Riscrivere un prodotto esistente, preservando i campi non modificabili" #: core/docs/drf/viewsets.py:478 msgid "" @@ -746,8 +755,8 @@ msgstr "" #: core/docs/drf/viewsets.py:615 msgid "rewrite some fields of an existing feedback saving non-editables" msgstr "" -"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non" -" modificabili" +"Riscrivere alcuni campi di una categoria esistente salvando gli elementi non " +"modificabili" #: core/docs/drf/viewsets.py:622 msgid "list all order–product relations (simple view)" @@ -777,7 +786,7 @@ msgstr "eliminare una relazione ordine-prodotto" msgid "add or remove feedback on an order–product relation" msgstr "aggiungere o rimuovere un feedback su una relazione ordine-prodotto" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Non è stato fornito alcun termine di ricerca." @@ -825,8 +834,8 @@ msgstr "Attributi" msgid "Quantity" msgstr "Quantità" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Lumaca" @@ -942,8 +951,7 @@ msgstr "" #: core/graphene/mutations.py:225 core/graphene/mutations.py:442 #: core/graphene/mutations.py:483 core/viewsets.py:341 msgid "wrong type came from order.buy() method: {type(instance)!s}" -msgstr "" -"Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" +msgstr "Il metodo order.buy() ha fornito un tipo sbagliato: {type(instance)!s}" #: core/graphene/mutations.py:233 msgid "perform an action on a list of products in the order" @@ -985,11 +993,11 @@ msgstr "Acquistare un ordine" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" -"Inviare gli attributi come stringa formattata come " -"attr1=valore1,attr2=valore2" +"Inviare gli attributi come stringa formattata come attr1=valore1," +"attr2=valore2" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" @@ -1009,7 +1017,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch: funziona a meraviglia" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Attributi" @@ -1022,11 +1030,11 @@ msgid "groups of attributes" msgstr "Gruppi di attributi" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Categorie" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Marche" @@ -1035,7 +1043,7 @@ msgid "category image url" msgstr "Categorie" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Percentuale di markup" @@ -1046,8 +1054,7 @@ msgstr "" "categoria." #: core/graphene/object_types.py:133 -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." @@ -1059,7 +1066,7 @@ msgstr "Tag per questa categoria" msgid "products in this category" msgstr "Prodotti in questa categoria" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Venditori" @@ -1084,7 +1091,7 @@ msgid "represents feedback from a user." msgstr "Rappresenta il feedback di un utente." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Notifiche" @@ -1096,7 +1103,7 @@ msgstr "URL di download per il prodotto dell'ordine, se applicabile" msgid "a list of order products in this order" msgstr "Un elenco di prodotti ordinati in questo ordine" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Indirizzo di fatturazione" @@ -1120,7 +1127,7 @@ msgstr "Quantità totale di prodotti in ordine" msgid "are all products in the order digital" msgstr "Tutti i prodotti sono presenti nell'ordine digitale" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Ordini" @@ -1132,19 +1139,19 @@ msgstr "URL immagine" msgid "product's images" msgstr "Immagini del prodotto" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Feedback" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Marchio" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Gruppi di attributi" @@ -1168,7 +1175,7 @@ msgstr "Quantità" msgid "number of feedbacks" msgstr "Numero di feedback" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Prodotti" @@ -1180,15 +1187,15 @@ msgstr "Codici promozionali" msgid "products on sale" msgstr "Prodotti in vendita" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promozioni" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Venditore" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1196,11 +1203,11 @@ msgstr "Venditore" msgid "product" msgstr "Prodotto" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Prodotti desiderati" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Liste dei desideri" @@ -1208,7 +1215,7 @@ msgstr "Liste dei desideri" msgid "tagged products" msgstr "Prodotti contrassegnati" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Tag del prodotto" @@ -1294,691 +1301,689 @@ msgstr "Risultati della ricerca dei prodotti" msgid "posts search results" msgstr "Risultati della ricerca dei prodotti" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Genitore di questo gruppo" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Gruppo di attributi padre" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Nome del gruppo di attributi" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Gruppo di attributi" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Memorizza le credenziali e gli endpoint necessari per la comunicazione API " "del fornitore." -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Informazioni sull'autenticazione" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Definire il markup per i prodotti recuperati da questo fornitore" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Percentuale di ricarico del fornitore" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Nome del fornitore" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Nome del fornitore" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Identificatore interno dell'etichetta del prodotto" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Nome del tag" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Nome intuitivo per l'etichetta del prodotto" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Nome del tag" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Etichetta del prodotto" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "tag categoria" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "tag di categoria" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Caricare un'immagine che rappresenti questa categoria" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Categoria immagine" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "" "Definire una percentuale di ricarico per i prodotti di questa categoria" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Genitore di questa categoria per formare una struttura gerarchica" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Categoria di genitori" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Nome della categoria" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Indicare un nome per questa categoria" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Aggiungere una descrizione dettagliata per questa categoria" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Descrizione della categoria" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "tag che aiutano a descrivere o raggruppare questa categoria" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Priorità" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Nome del marchio" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Nome del marchio" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Caricare un logo che rappresenti questo marchio" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Immagine piccola del marchio" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Caricare un grande logo che rappresenti questo marchio" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Grande immagine del marchio" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Aggiungere una descrizione dettagliata del marchio" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Descrizione del marchio" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Categorie opzionali a cui questo marchio è associato" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Categorie" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Categoria a cui appartiene questo prodotto" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Associare facoltativamente questo prodotto a un marchio" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tag che aiutano a descrivere o raggruppare questo prodotto" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Indica se il prodotto è consegnato in formato digitale" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Il prodotto è digitale" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Fornire un nome identificativo chiaro per il prodotto" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Nome del prodotto" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Aggiungere una descrizione dettagliata del prodotto" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Descrizione del prodotto" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Numero di parte per questo prodotto" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Numero di parte" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Categoria di questo attributo" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Gruppo di questo attributo" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Stringa" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Intero" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Galleggiante" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Booleano" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Array" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Oggetto" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Tipo di valore dell'attributo" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Tipo di valore" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Nome dell'attributo" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Nome dell'attributo" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Attributo" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Attributo di questo valore" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Il prodotto specifico associato al valore di questo attributo" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Prodotto associato" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "Il valore specifico per questo attributo" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "" "Fornire un testo alternativo per l'immagine ai fini dell'accessibilità." -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Testo alt dell'immagine" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Caricare il file immagine per questo prodotto" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Immagine del prodotto" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Determina l'ordine di visualizzazione delle immagini" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Priorità del display" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Il prodotto che questa immagine rappresenta" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Immagini del prodotto" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Percentuale di sconto per i prodotti selezionati" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Percentuale di sconto" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Fornite un nome unico per questa promozione" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Nome della promozione" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Descrizione della promozione" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Selezionare i prodotti inclusi in questa promozione" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Prodotti inclusi" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promozione" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Il venditore che fornisce questo stock di prodotti" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Venditore associato" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Prezzo finale al cliente dopo i ricarichi" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Prezzo di vendita" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Il prodotto associato a questa voce di magazzino" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Il prezzo pagato al venditore per questo prodotto" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Prezzo di acquisto del fornitore" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Quantità disponibile del prodotto in magazzino" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Quantità in magazzino" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU assegnato dal fornitore per identificare il prodotto" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU del venditore" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "File digitale associato a questo stock, se applicabile" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "File digitale" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Voci di magazzino" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Prodotti che l'utente ha contrassegnato come desiderati" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Utente che possiede questa wishlist" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Proprietario della lista dei desideri" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Lista dei desideri" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} non esiste: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documentario" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentari" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Non risolto" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Indirizzo del cliente" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Linea di indirizzo" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Via" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Distretto" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Città" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Regione" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Codice postale" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Paese" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Punto di geolocalizzazione(Longitudine, Latitudine)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Risposta JSON completa di geocoder per questo indirizzo" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Risposta JSON memorizzata dal servizio di geocodifica" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Indirizzo" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Indirizzi" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Codice univoco utilizzato da un utente per riscattare uno sconto" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Identificatore del codice promozionale" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" -msgstr "" -"Importo fisso dello sconto applicato se non si utilizza la percentuale" +msgstr "Importo fisso dello sconto applicato se non si utilizza la percentuale" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Importo fisso dello sconto" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Sconto percentuale applicato se l'importo fisso non viene utilizzato" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Sconto percentuale" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Data di scadenza del codice promozionale" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Tempo di validità finale" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Data a partire dalla quale il codice promozionale è valido" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Ora di inizio validità" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Timestamp in cui è stato utilizzato il codice promozionale, vuoto se non " "ancora utilizzato" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Timestamp d'uso" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Utente assegnato a questo codice promozionale, se applicabile" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Utente assegnato" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Codice promozionale" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Codici promozionali" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"È necessario definire un solo tipo di sconto (importo o percentuale), ma non" -" entrambi o nessuno." +"È necessario definire un solo tipo di sconto (importo o percentuale), ma non " +"entrambi o nessuno." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Il codice promozionale è già stato utilizzato" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tipo di sconto non valido per il codice promozionale {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "L'indirizzo di fatturazione utilizzato per questo ordine" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Codice promozionale opzionale applicato a questo ordine" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Codice promozionale applicato" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "L'indirizzo di spedizione utilizzato per questo ordine" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Indirizzo di spedizione" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Stato attuale dell'ordine nel suo ciclo di vita" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Stato dell'ordine" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "Struttura JSON delle notifiche da mostrare agli utenti; nell'interfaccia " "utente dell'amministratore viene utilizzata la visualizzazione a tabella." -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "Rappresentazione JSON degli attributi dell'ordine per questo ordine" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "L'utente che ha effettuato l'ordine" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Utente" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Il timestamp del momento in cui l'ordine è stato finalizzato" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Acquista tempo" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Un identificatore leggibile dall'uomo per l'ordine" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "ID leggibile dall'uomo" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Ordine" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Un utente può avere un solo ordine pendente alla volta!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Non è possibile aggiungere prodotti a un ordine che non sia in sospeso." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Non è possibile aggiungere all'ordine prodotti inattivi" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "" "Non è possibile aggiungere più prodotti di quelli disponibili in magazzino" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "Non è possibile rimuovere i prodotti da un ordine che non è in corso." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} non esiste con la query <{query}>." -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Il codice promozionale non esiste" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" "È possibile acquistare solo prodotti fisici con indirizzo di spedizione " "specificato!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "L'indirizzo non esiste" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "In questo momento non è possibile acquistare, riprovare tra qualche minuto." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Valore di forza non valido" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Non è possibile acquistare un ordine vuoto!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Fondi insufficienti per completare l'ordine" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1987,7 +1992,7 @@ msgstr "" "seguenti informazioni: nome del cliente, e-mail del cliente, numero di " "telefono del cliente" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -1995,111 +2000,110 @@ msgstr "" "Metodo di pagamento non valido: {payment_method} da " "{available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "" "Il prezzo pagato dal cliente per questo prodotto al momento dell'acquisto." -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Prezzo di acquisto al momento dell'ordine" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "Commenti interni per gli amministratori su questo prodotto ordinato" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Commenti interni" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Notifiche degli utenti" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "Rappresentazione JSON degli attributi di questo elemento" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Attributi del prodotto ordinati" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Riferimento all'ordine padre che contiene questo prodotto" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Ordine dei genitori" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Il prodotto specifico associato a questa riga d'ordine" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Quantità di questo prodotto specifico nell'ordine" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Quantità di prodotto" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Stato attuale di questo prodotto nell'ordine" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Stato della linea di prodotti" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "azione errata specificata per il feedback: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "non è possibile dare un riscontro a un ordine non ricevuto" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Scaricare" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Scaricamento" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "Non è possibile scaricare un bene digitale per un ordine non finito." -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Commenti degli utenti sulla loro esperienza con il prodotto" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Commenti di feedback" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "Riferisce il prodotto specifico in un ordine di cui si tratta il feedback." -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Prodotto correlato all'ordine" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Valutazione del prodotto assegnata dall'utente" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Valutazione del prodotto" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Feedback" @@ -2107,8 +2111,8 @@ msgstr "Feedback" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"per aggiungere un feedback è necessario fornire un commento, una valutazione" -" e l'uuid del prodotto dell'ordine." +"per aggiungere un feedback è necessario fornire un commento, una valutazione " +"e l'uuid del prodotto dell'ordine." #: core/signals.py:62 msgid "error during promocode creation: {e!s}" @@ -2142,7 +2146,8 @@ 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 " @@ -2171,8 +2176,8 @@ msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." msgstr "" -"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero" -" %(config.EMAIL_HOST_USER)s." +"Per qualsiasi domanda, non esitate a contattare il nostro supporto al numero " +"%(config.EMAIL_HOST_USER)s." #: core/templates/digital_order_created_email.html:133 #, python-format @@ -2221,8 +2226,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." #: core/templates/digital_order_delivered_email.html:166 #, python-format @@ -2236,7 +2241,8 @@ msgstr "Chiave" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Grazie per il vostro ordine! Siamo lieti di confermare il suo acquisto. Di " @@ -2313,8 +2319,8 @@ msgstr "Il parametro NOMINATIM_URL deve essere configurato!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height}" -" pixel" +"Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height} " +"pixel" #: core/validators.py:22 msgid "invalid phone number format" diff --git a/core/locale/ja_JP/LC_MESSAGES/django.po b/core/locale/ja_JP/LC_MESSAGES/django.po index 98076e69..3e9f234c 100644 --- a/core/locale/ja_JP/LC_MESSAGES/django.po +++ b/core/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -19,104 +19,106 @@ msgstr "ユニークID" #: core/abstract.py:13 msgid "unique id is used to surely identify any database object" -msgstr "ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" +msgstr "" +"ユニークIDは、データベースオブジェクトを確実に識別するために使用されます。" #: core/abstract.py:20 msgid "is active" msgstr "アクティブ" -#: core/abstract.py:22 +#: 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に設定された場合、このオブジェクトは必要なパーミッションのないユーザーに" +"は見えない。" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "作成" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "そのオブジェクトが初めてデータベースに登場した時" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "変形" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "オブジェクトの最終編集日時" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "翻訳" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "一般" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "関係" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "メタデータ" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "タイムスタンプ" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "選択した %(verbose_name_plural)s をアクティブにする。" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)sは正常に起動しました!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "選択された %(verbose_name_plural)s を非アクティブにする。" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)sは正常に停止しました。" -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "属性値" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "属性値" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "画像" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "画像" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "在庫" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "株式" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "商品のご注文" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "商品のご注文" @@ -124,7 +126,7 @@ msgstr "商品のご注文" msgid "children" msgstr "子供たち" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "コンフィグ" @@ -186,7 +188,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "許可されたデータをキャッシュから読み出すには、キーのみを適用する。\n" -"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用する。" +"キャッシュにデータを書き込むには、認証付きのキー、データ、タイムアウトを適用" +"する。" #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -216,7 +219,9 @@ msgstr "ビジネスとして注文を購入する" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスとして注文を購入する。" +msgstr "" +"提供された `product` と `product_uuid` と `attributes` を使用して、ビジネスと" +"して注文を購入する。" #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -239,9 +244,10 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "既存の属性グループを書き換えて、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" -msgstr "既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgid "rewrite some fields of an existing attribute group saving non-editables" +msgstr "" +"既存の属性グループのいくつかのフィールドを書き換え、編集不可能なものを保存す" +"る。" #: core/docs/drf/viewsets.py:70 msgid "list all attributes (simple view)" @@ -265,7 +271,8 @@ msgstr "既存の属性を書き換える。" #: core/docs/drf/viewsets.py:90 msgid "rewrite some fields of an existing attribute saving non-editables" -msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "" +"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:97 msgid "list all attribute values (simple view)" @@ -288,9 +295,9 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "既存の属性値を書き換える。" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" -msgstr "既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" +msgid "rewrite some fields of an existing attribute value saving non-editables" +msgstr "" +"既存の属性値のいくつかのフィールドを書き換え、編集不可能な値を保存する。" #: core/docs/drf/viewsets.py:124 msgid "list all categories (simple view)" @@ -326,10 +333,11 @@ msgstr "スタッフ以外のユーザーについては、自分の注文のみ #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" -"human_readable_id、order_products.product.name、order_products.product.partnumberの大文字小文字を区別しない部分文字列検索" +"human_readable_id、order_products.product.name、order_products.product." +"partnumberの大文字小文字を区別しない部分文字列検索" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -349,7 +357,8 @@ msgstr "人間が読み取れる正確な注文IDによるフィルタリング" #: core/docs/drf/viewsets.py:185 msgid "Filter by user's email (case-insensitive exact match)" -msgstr "ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" +msgstr "" +"ユーザーのEメールによるフィルタリング(大文字・小文字を区別しない完全一致)" #: core/docs/drf/viewsets.py:190 msgid "Filter by user's UUID" @@ -357,15 +366,19 @@ msgstr "ユーザーのUUIDによるフィルタリング" #: core/docs/drf/viewsets.py:195 msgid "Filter by order status (case-insensitive substring match)" -msgstr "注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッチ)" +msgstr "" +"注文ステータスによるフィルタリング(大文字と小文字を区別しない部分文字列マッ" +"チ)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" -"uuid、human_readable_id、user_email、user、status、created、modified、buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつける(例:'-buy_time')。" +"uuid、human_readable_id、user_email、user、status、created、modified、" +"buy_time、randomのいずれかによる順序。降順の場合は'-'をプレフィックスとしてつ" +"ける(例:'-buy_time')。" #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -401,8 +414,9 @@ msgid "" "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." msgstr "" -"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用して購入が完了します。 `force_payment` " -"が使用された場合、トランザクションが開始されます。" +"注文の購入を確定する。force_balance` が使用された場合、ユーザーの残高を使用し" +"て購入が完了します。 `force_payment` が使用された場合、トランザクションが開始" +"されます。" #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 msgid "purchase an order without account creation" @@ -420,7 +434,8 @@ msgstr "注文に商品を追加する" msgid "" "adds a product to an order using the provided `product_uuid` and " "`attributes`." -msgstr "指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" +msgstr "" +"指定した `product_uuid` と `attributes` を使用して、商品を注文に追加する。" #: core/docs/drf/viewsets.py:260 msgid "add a list of products to order, quantities will not count" @@ -430,7 +445,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` を使用して、注文に商品のリストを追" +"加する。" #: core/docs/drf/viewsets.py:266 msgid "remove product from order" @@ -440,7 +457,9 @@ msgstr "注文から商品を削除する" msgid "" "removes a product from an order using the provided `product_uuid` and " "`attributes`." -msgstr "指定された `product_uuid` と `attributes` を使用して、注文から商品を削除する。" +msgstr "" +"指定された `product_uuid` と `attributes` を使用して、注文から商品を削除す" +"る。" #: core/docs/drf/viewsets.py:272 msgid "remove product from order, quantities will not count" @@ -450,7 +469,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` を用いて、注文から商品のリストを削" +"除する。" #: core/docs/drf/viewsets.py:281 msgid "list all wishlists (simple view)" @@ -482,7 +503,8 @@ msgstr "既存の属性を書き換える。" #: core/docs/drf/viewsets.py:303 msgid "rewrite some fields of an existing wishlist saving non-editables" -msgstr "既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" +msgstr "" +"既存の属性のいくつかのフィールドを書き換え、編集不可能なものを保存する。" #: core/docs/drf/viewsets.py:307 msgid "add product to wishlist" @@ -498,7 +520,8 @@ msgstr "ウィッシュリストから商品を削除する" #: core/docs/drf/viewsets.py:314 msgid "removes a product from an wishlist using the provided `product_uuid`" -msgstr "指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" +msgstr "" +"指定された `product_uuid` を使ってウィッシュリストから商品を削除します。" #: core/docs/drf/viewsets.py:319 msgid "add many products to wishlist" @@ -506,7 +529,8 @@ msgstr "ウィッシュリストに多くの商品を追加する" #: core/docs/drf/viewsets.py:320 msgid "adds many products to an wishlist using the provided `product_uuids`" -msgstr "指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" +msgstr "" +"指定された `product_uuids` を使ってウィッシュリストに多くの商品を追加する。" #: core/docs/drf/viewsets.py:325 msgid "remove many products from wishlist" @@ -515,24 +539,34 @@ msgstr "注文から商品を削除する" #: core/docs/drf/viewsets.py:326 msgid "" "removes many products from an wishlist using the provided `product_uuids`" -msgstr "指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" +msgstr "" +"指定された `product_uuids` を使ってウィッシュリストから多くの商品を削除する。" #: core/docs/drf/viewsets.py:333 msgid "" "Filter by one or more attribute name/value pairs. \n" "• **Syntax**: `attr_name=method-value[;attr2=method2-value2]…` \n" -"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" -"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), `true`/`false` for booleans, integers, floats; otherwise treated as string. \n" +"• **Methods** (defaults to `icontains` if omitted): `iexact`, `exact`, " +"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " +"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in` \n" +"• **Value typing**: JSON is attempted first (so you can pass lists/dicts), " +"`true`/`false` for booleans, integers, floats; otherwise treated as " +"string. \n" "• **Base64**: prefix with `b64-` to URL-safe base64-encode the raw value. \n" "Examples: \n" -"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\",\"bluetooth\"]`, \n" +"`color=exact-red`, `size=gt-10`, `features=in-[\"wifi\"," +"\"bluetooth\"]`, \n" "`b64-description=icontains-aGVhdC1jb2xk`" msgstr "" "1つまたは複数の属性名/値のペアでフィルタリングします。 \n" "- シンタックス**:attr_name=method-value[;attr2=method2-value2]...`。\n" -"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, `icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, `iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" -"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場合は文字列として扱う。 \n" -"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとしてつけると、生の値を URL-safe base64-encode することができる。 \n" +"- メソッド** (省略された場合のデフォルトは `icontains`):`iexact`, `exact`, " +"`icontains`, `contains`, `isnull`, `startswith`, `istartswith`, `endswith`, " +"`iendswith`, `regex`, `iregex`, `lt`, `lte`, `gt`, `gte`, `in`.\n" +"- 値の型付け**:boolean, integer, float の場合は `true`/`false`; それ以外の場" +"合は文字列として扱う。 \n" +"- それ以外は文字列として扱われる。 **Base64**: `b64-` をプレフィックスとして" +"つけると、生の値を URL-safe base64-encode することができる。 \n" "例 \n" "color=exact-red`、`size=gt-10`、`features=in-[\"wifi\", \"bluetooth\"]`、\n" "b64-description=icontains-aGVhdC1jb2xk`。" @@ -587,10 +621,12 @@ msgstr "(正確には)デジタルとフィジカル" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスとしてつける。 \n" +"カンマ区切りの並べ替えフィールドのリスト。降順の場合は `-` をプレフィックスと" +"してつける。 \n" "**許可:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -614,7 +650,9 @@ msgstr "編集不可能なフィールドを保持したまま、既存の製品 #: core/docs/drf/viewsets.py:478 msgid "" "update some fields of an existing product, preserving non-editable fields" -msgstr "編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新する。" +msgstr "" +"編集不可能なフィールドを保持したまま、既存の製品の一部のフィールドを更新す" +"る。" #: core/docs/drf/viewsets.py:493 msgid "delete a product" @@ -655,8 +693,8 @@ msgstr "オートコンプリート住所入力" #: core/docs/drf/viewsets.py:576 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" -" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " +"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l n-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a payments -a vibes_auth -a blog" @@ -686,7 +724,9 @@ msgstr "既存のフィードバックを書き換える。" #: core/docs/drf/viewsets.py:615 msgid "rewrite some fields of an existing feedback saving non-editables" -msgstr "既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保存する。" +msgstr "" +"既存のフィードバックのいくつかのフィールドを書き換えて、編集不可能なものを保" +"存する。" #: core/docs/drf/viewsets.py:622 msgid "list all order–product relations (simple view)" @@ -716,7 +756,7 @@ msgstr "注文と商品の関係を削除する" msgid "add or remove feedback on an order–product relation" msgstr "注文と商品の関係に関するフィードバックを追加または削除する。" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "検索語はありません。" @@ -764,8 +804,8 @@ msgstr "属性" msgid "Quantity" msgstr "数量" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "スラッグ" @@ -779,7 +819,8 @@ msgstr "サブカテゴリーを含む" #: core/filters.py:147 msgid "there must be a category_uuid to use include_subcategories flag" -msgstr "include_subcategoriesフラグを使うには、category_uuidがなければならない。" +msgstr "" +"include_subcategoriesフラグを使うには、category_uuidがなければならない。" #: core/filters.py:280 msgid "Search (ID, product name or part number)" @@ -921,9 +962,10 @@ msgstr "注文する" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" -msgstr "属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" +msgstr "" +"属性は、attr1=value1,attr2=value2のような形式の文字列として送信してください。" #: core/graphene/mutations.py:546 msgid "original address string provided by the user" @@ -943,7 +985,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 魅力のように動作" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "属性" @@ -956,11 +998,11 @@ msgid "groups of attributes" msgstr "属性のグループ" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "カテゴリー" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "ブランド" @@ -969,7 +1011,7 @@ msgid "category image url" msgstr "カテゴリー" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "マークアップ率" @@ -978,8 +1020,7 @@ msgid "which attributes and values can be used for filtering this category." msgstr "このカテゴリのフィルタリングに使用できる属性と値。" #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +msgid "minimum and maximum prices for products in this category, if available." msgstr "このカテゴリーの商品の最低価格と最高価格がある場合。" #: core/graphene/object_types.py:135 @@ -990,7 +1031,7 @@ msgstr "このカテゴリのタグ" msgid "products in this category" msgstr "このカテゴリの製品" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "ベンダー" @@ -1015,7 +1056,7 @@ msgid "represents feedback from a user." msgstr "ユーザーからのフィードバックを表す。" #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "お知らせ" @@ -1027,7 +1068,7 @@ msgstr "該当する場合は、この注文商品のダウンロードURLを入 msgid "a list of order products in this order" msgstr "注文商品のリスト" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "請求先住所" @@ -1049,7 +1090,7 @@ msgstr "注文商品の総数量" msgid "are all products in the order digital" msgstr "ご注文の商品はすべてデジタルですか?" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "受注状況" @@ -1061,19 +1102,19 @@ msgstr "画像URL" msgid "product's images" msgstr "製品画像" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "カテゴリー" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "フィードバック" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "ブランド" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "属性グループ" @@ -1097,7 +1138,7 @@ msgstr "数量" msgid "number of feedbacks" msgstr "フィードバック数" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "製品紹介" @@ -1109,15 +1150,15 @@ msgstr "プロモコード" msgid "products on sale" msgstr "販売商品" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "プロモーション" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "ベンダー" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1125,11 +1166,11 @@ msgstr "ベンダー" msgid "product" msgstr "製品" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "ウィッシュリスト掲載商品" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "ウィッシュリスト" @@ -1137,7 +1178,7 @@ msgstr "ウィッシュリスト" msgid "tagged products" msgstr "タグ別アーカイブ" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "商品タグ" @@ -1222,796 +1263,803 @@ msgstr "製品検索結果" msgid "posts search results" msgstr "製品検索結果" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "このグループの親" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "親属性グループ" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "属性グループ名" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "属性グループ" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "ベンダーのAPI通信に必要な認証情報とエンドポイントを保存する。" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "認証情報" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "このベンダーから取得した商品のマークアップを定義する。" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "ベンダーのマークアップ率" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "このベンダーの名前" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "ベンダー名" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "商品タグの内部タグ識別子" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "タグ名" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "商品タグのユーザーフレンドリーな名前" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "タグ表示名" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "商品タグ" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "カテゴリタグ" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "カテゴリータグ" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "このカテゴリーを表す画像をアップロードする" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "カテゴリーイメージ" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "このカテゴリの商品のマークアップ率を定義する" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "階層構造を形成するこのカテゴリの親" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "親カテゴリー" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "カテゴリー名" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "このカテゴリの名前を入力してください。" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "このカテゴリの詳細説明を追加する" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "カテゴリー説明" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "このカテゴリーを説明またはグループ化するのに役立つタグ" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "優先順位" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "ブランド名" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "ブランド名" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "このブランドを代表するロゴをアップロードする" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "小さなブランドイメージ" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "このブランドを象徴する大きなロゴをアップロードする" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "大きなブランドイメージ" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "ブランドの詳細な説明を加える" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "ブランド説明" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "このブランドが関連するオプション・カテゴリー" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "カテゴリー" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "この製品が属するカテゴリ" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "オプションでこの製品をブランドと関連付ける" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "この商品の説明やグループ分けに役立つタグ" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "この製品がデジタル配信されるかどうかを示す" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "製品はデジタルか" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "製品の明確な識別名を提供する" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "商品名" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "商品の詳細説明を追加する" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "商品説明" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "この製品の品番" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "品番" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "この属性のカテゴリー" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "この属性のグループ" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "ストリング" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "整数" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "フロート" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "ブーリアン" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "配列" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "対象" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "属性値のタイプ" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "値の種類" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "この属性の名前" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "属性名" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "属性" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "この値の属性" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "この属性の値に関連する特定の製品" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "関連製品" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "この属性の具体的な値" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "アクセシビリティのために、画像に代替テキストを提供する。" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "画像のaltテキスト" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "この商品の画像ファイルをアップロードする" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "商品画像" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "画像の表示順を決める" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "表示優先度" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "この画像が表す製品" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "商品画像" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "選択した商品の割引率" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "割引率" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "このプロモーションのユニークな名前を入力してください。" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "プロモーション名" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "プロモーション内容" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "キャンペーン対象商品をお選びください。" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "含まれる製品" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "プロモーション" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "この製品の在庫を供給しているベンダー" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "関連ベンダー" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "マークアップ後の顧客への最終価格" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "販売価格" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "このストックエントリーに関連する製品" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "この製品に対してベンダーに支払われた価格" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "ベンダーの購入価格" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "在庫数" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "在庫数" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "製品を識別するためにベンダーが割り当てたSKU" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "ベンダーのSKU" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "この銘柄に関連するデジタルファイル(該当する場合" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "デジタルファイル" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "ストックエントリー" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "ユーザーが欲しいとマークした商品" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "このウィッシュリストを所有しているユーザー" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "ウィッシュリストのオーナー" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "ウィッシュリスト" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name}が存在しません:{product_uuid}が存在しません。" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "ドキュメンタリー" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "ドキュメンタリー" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "未解決" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "お客様の住所" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "住所" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "ストリート" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "地区" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "都市" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "地域" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "郵便番号" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "国名" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "ジオロケーションポイント(経度、緯度)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "この住所に対するジオコーダーからの完全なJSON応答" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "ジオコーディング・サービスからの保存されたJSONレスポンス" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "住所" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "住所" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "ユーザーが割引を利用する際に使用する固有のコード" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "プロモコード識別子" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "パーセントを使用しない場合に適用される固定割引額" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "固定割引額" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "定額を使用しない場合に適用される割引率" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "割引率" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "プロモコードの有効期限が切れるタイムスタンプ" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "終了有効時間" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "このプロモコードが有効なタイムスタンプ" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "開始有効時間" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "プロモコードが使用されたタイムスタンプ、未使用の場合は空白" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "使用タイムスタンプ" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "該当する場合、このプロモコードに割り当てられたユーザー" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "担当ユーザー" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "プロモコード" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "プロモコード" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちらも定義してはならない。" +msgstr "" +"割引の種類は1つだけ(金額またはパーセント)定義されるべきで、両方またはどちら" +"も定義してはならない。" -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "プロモコードはすでに使用されています" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "プロモコード {self.uuid} の割引タイプが無効です。" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "この注文に使用される請求先住所" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "この注文に適用されるプロモコード" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "プロモーションコード適用" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "この注文に使用された配送先住所" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "配送先住所" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "ライフサイクルにおける現在の注文状況" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "注文状況" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" -msgstr "ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" +msgstr "" +"ユーザーに表示する通知のJSON構造、管理UIではテーブルビューが使用されます。" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "この注文の注文属性のJSON表現" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "注文を行ったユーザー" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "ユーザー" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "注文が確定したタイムスタンプ" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "時間を買う" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "オーダーの人間が読み取り可能な識別子。" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "人間が読めるID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "オーダー" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "ユーザーは一度に1つの未決注文しか持つことができません!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "保留中の注文以外の注文に商品を追加することはできません。" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "アクティブでない商品を注文に追加することはできません。" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "在庫以上の商品を追加することはできません。" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "保留中の注文以外の注文から商品を削除することはできません。" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "クエリ<{query}>で{name}が存在しません。" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "プロモコードが存在しない" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "配送先住所が指定された現物商品のみ購入可能!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "アドレスが存在しない" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "現在ご購入いただけません。数分後にもう一度お試しください。" -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "無効なフォース値" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "空注文はできません!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "注文を完了するための資金不足" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" -msgstr "ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お客様のお名前、お客様のEメール、お客様の電話番号" +msgstr "" +"ご登録がない場合はご購入いただけませんので、以下の情報をお知らせください:お" +"客様のお名前、お客様のEメール、お客様の電話番号" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" -msgstr "支払方法が無効です:{available_payment_methods}からの{payment_method}が無効です!" +msgstr "" +"支払方法が無効です:{available_payment_methods}からの{payment_method}が無効で" +"す!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "この商品の購入時に顧客が支払った価格" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "注文時の購入価格" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "この注文商品に関する管理者への内部コメント" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "社内コメント" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "ユーザー通知" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "このアイテムの属性のJSON表現" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "製品属性の順序" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "この商品を含む親注文への参照" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "親注文" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "この注文ラインに関連する特定の製品" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "注文に含まれる特定の商品の数量" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "製品数量" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "この商品の現在のご注文状況" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "製品ラインの状況" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "フィードバックに指定されたアクションが間違っています:{action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "受信していない注文をフィードバックすることはできません。" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "ダウンロード" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "ダウンロード" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "未完成の注文のデジタル資産をダウンロードすることはできません。" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "ユーザーから寄せられた製品使用体験に関するコメント" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "フィードバック・コメント" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "このフィードバックが対象としている注文の特定の製品を参照する。" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "関連注文商品" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "ユーザーによる製品の評価" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "製品評価" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "フィードバック" #: core/serializers/utility.py:87 msgid "" "you must provide a comment, rating, and order product uuid to add feedback." -msgstr "フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力する必要があります。" +msgstr "" +"フィードバックを追加するには、コメント、評価、および注文商品の uuid を入力す" +"る必要があります。" #: core/signals.py:62 msgid "error during promocode creation: {e!s}" @@ -2045,9 +2093,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!ご注文を承りましたことをお知らせいたします。以下、ご注文の詳細です:" +msgstr "" +"ご注文ありがとうございます#%(order.pk)s!ご注文を承りましたことをお知らせいた" +"します。以下、ご注文の詳細です:" #: core/templates/digital_order_created_email.html:112 #: core/templates/digital_order_delivered_email.html:111 @@ -2070,7 +2121,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までお気軽にお問い合わ" +"せください。" #: core/templates/digital_order_created_email.html:133 #, python-format @@ -2096,7 +2149,8 @@ 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が正常に処理されました!以下はご注文の詳細です:" #: core/templates/digital_order_delivered_email.html:129 msgid "" @@ -2116,7 +2170,9 @@ 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までお気軽にお問い合わせくださ" +"い。" #: core/templates/digital_order_delivered_email.html:166 #, python-format @@ -2130,9 +2186,12 @@ msgstr "キー" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" -msgstr "ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の詳細です:" +msgstr "" +"ご注文ありがとうございます!ご購入を確認させていただきました。以下、ご注文の" +"詳細です:" #: core/templates/shipped_order_created_email.html:123 #: core/templates/shipped_order_delivered_email.html:123 diff --git a/core/locale/kk_KZ/LC_MESSAGES/django.po b/core/locale/kk_KZ/LC_MESSAGES/django.po index 8a0441eb..845780f1 100644 --- a/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/core/locale/kk_KZ/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -28,97 +28,97 @@ msgstr "" msgid "is active" msgstr "" -#: core/abstract.py:22 +#: core/abstract.py:21 msgid "" "if set to false, this object can't be seen by users without needed permission" msgstr "" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "" -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "" @@ -126,7 +126,7 @@ msgstr "" msgid "children" msgstr "" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "" @@ -702,7 +702,7 @@ msgstr "" msgid "add or remove feedback on an order–product relation" msgstr "" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "" @@ -750,8 +750,8 @@ msgstr "" msgid "Quantity" msgstr "" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 core/models.py:307 -#: core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "" @@ -929,7 +929,7 @@ msgid "elasticsearch - works like a charm" msgstr "" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "" @@ -942,11 +942,11 @@ msgid "groups of attributes" msgstr "" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "" @@ -955,7 +955,7 @@ msgid "category image url" msgstr "" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "" @@ -975,7 +975,7 @@ msgstr "" msgid "products in this category" msgstr "" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "" @@ -1000,7 +1000,7 @@ msgid "represents feedback from a user." msgstr "" #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "" @@ -1012,7 +1012,7 @@ msgstr "" msgid "a list of order products in this order" msgstr "" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "are all products in the order digital" msgstr "" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "" @@ -1046,19 +1046,19 @@ msgstr "" msgid "product's images" msgstr "" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "" @@ -1082,7 +1082,7 @@ msgstr "" msgid "number of feedbacks" msgstr "" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "" @@ -1094,15 +1094,15 @@ msgstr "" msgid "products on sale" msgstr "" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1110,11 +1110,11 @@ msgstr "" msgid "product" msgstr "" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "" @@ -1122,7 +1122,7 @@ msgstr "" msgid "tagged products" msgstr "" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "" @@ -1207,787 +1207,787 @@ msgstr "" msgid "posts search results" msgstr "" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "" -#: core/models.py:507 core/models.py:546 core/models.py:617 core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "" -#: core/models.py:1490 +#: core/models.py:1929 msgid "references the specific product in an order that this feedback is about" msgstr "" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "" diff --git a/core/locale/nl_NL/LC_MESSAGES/django.po b/core/locale/nl_NL/LC_MESSAGES/django.po index 1827f846..aa77a4ec 100644 --- a/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/core/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -25,100 +25,99 @@ msgstr "Unieke ID wordt gebruikt om elk databaseobject te identificeren" msgid "is active" msgstr "Is actief" -#: core/abstract.py:22 +#: 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" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Gemaakt" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Wanneer het object voor het eerst in de database verscheen" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Gewijzigd" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Wanneer het object voor het laatst bewerkt is" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Vertalingen" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Algemeen" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relaties" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metagegevens" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Tijdstempels" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activeer geselecteerde %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s met succes geactiveerd!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Deactiveer geselecteerde %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s met succes gedeactiveerd." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Attribuut Waarde" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Attribuutwaarden" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Afbeelding" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Afbeeldingen" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Voorraad" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Aandelen" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Product bestellen" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Producten bestellen" @@ -126,7 +125,7 @@ msgstr "Producten bestellen" msgid "children" msgstr "Kinderen" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Config" @@ -188,7 +187,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Alleen een sleutel gebruiken om toegestane gegevens uit de cache te lezen.\n" -"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de cache te schrijven." +"Sleutel, gegevens en time-out met verificatie toepassen om gegevens naar de " +"cache te schrijven." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -246,8 +246,7 @@ msgstr "" "opslaan" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Enkele velden van een bestaande attribuutgroep herschrijven door niet-" "wijzigbare velden op te slaan" @@ -302,8 +301,7 @@ msgstr "" "attributen worden opgeslagen" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Herschrijf sommige velden van een bestaande attribuutwaarde door niet-" "wijzigbare velden op te slaan" @@ -341,16 +339,15 @@ msgstr "Alle categorieën weergeven (eenvoudige weergave)" #: core/docs/drf/viewsets.py:152 msgid "for non-staff users, only their own orders are returned." msgstr "" -"Voor niet-personeelsleden worden alleen hun eigen bestellingen " -"geretourneerd." +"Voor niet-personeelsleden worden alleen hun eigen bestellingen geretourneerd." #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" -"Hoofdlettergevoelig substring zoeken in human_readable_id, " -"order_products.product.name en order_products.product.partnumber" +"Hoofdlettergevoelig substring zoeken in human_readable_id, order_products." +"product.name en order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -383,13 +380,13 @@ msgstr "Filter op bestelstatus (hoofdlettergevoelige substringmatch)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Sorteer op een van: uuid, human_readable_id, user_email, gebruiker, status, " -"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend" -" (bijv. '-buy_time')." +"gemaakt, gewijzigd, buy_time, willekeurig. Voorvoegsel met '-' voor aflopend " +"(bijv. '-buy_time')." #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -438,8 +435,7 @@ msgstr "een bestelling kopen zonder een account aan te maken" #: core/docs/drf/viewsets.py:246 msgid "finalizes the order purchase for a non-registered user." msgstr "" -"Rondt de aankoop van de bestelling af voor een niet-geregistreerde " -"gebruiker." +"Rondt de aankoop van de bestelling af voor een niet-geregistreerde gebruiker." #: core/docs/drf/viewsets.py:254 msgid "add product to order" @@ -573,18 +569,28 @@ 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`." @@ -639,11 +645,14 @@ msgstr "(exact) Digitaal vs. fysiek" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met `-` voor aflopend. \n" -"**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, willekeurig" +"Door komma's gescheiden lijst van velden om op te sorteren. Voorvoegsel met " +"`-` voor aflopend. \n" +"**Toegestaan:** uuid, beoordeling, naam, slug, gemaakt, gewijzigd, prijs, " +"willekeurig" #: core/docs/drf/viewsets.py:441 msgid "retrieve a single product (detailed view)" @@ -751,8 +760,7 @@ msgstr "alle order-productrelaties weergeven (eenvoudige weergave)" #: core/docs/drf/viewsets.py:629 msgid "retrieve a single order–product relation (detailed view)" -msgstr "" -"een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" +msgstr "een enkele bestelling-productrelatie ophalen (gedetailleerde weergave)" #: core/docs/drf/viewsets.py:636 msgid "create a new order–product relation" @@ -774,7 +782,7 @@ msgstr "een order-productrelatie verwijderen" msgid "add or remove feedback on an order–product relation" msgstr "feedback toevoegen of verwijderen op een order-productrelatie" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Geen zoekterm opgegeven." @@ -822,8 +830,8 @@ msgstr "Attributen" msgid "Quantity" msgstr "Hoeveelheid" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Slak" @@ -980,8 +988,8 @@ msgstr "Een bestelling kopen" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" "Stuur de attributen als de string opgemaakt als attr1=waarde1,attr2=waarde2" @@ -1003,7 +1011,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - werkt als een charme" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Attributen" @@ -1016,11 +1024,11 @@ msgid "groups of attributes" msgstr "Groepen van kenmerken" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Categorieën" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Merken" @@ -1029,7 +1037,7 @@ msgid "category image url" msgstr "Categorieën" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Opwaarderingspercentage" @@ -1040,8 +1048,7 @@ msgstr "" "filteren." #: core/graphene/object_types.py:133 -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." @@ -1054,7 +1061,7 @@ msgstr "Tags voor deze categorie" msgid "products in this category" msgstr "Producten in deze categorie" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Verkopers" @@ -1079,7 +1086,7 @@ msgid "represents feedback from a user." msgstr "Vertegenwoordigt feedback van een gebruiker." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Meldingen" @@ -1091,7 +1098,7 @@ msgstr "Download url voor dit bestelproduct indien van toepassing" msgid "a list of order products in this order" msgstr "Een lijst met bestelde producten in deze bestelling" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Factuuradres" @@ -1115,7 +1122,7 @@ msgstr "Totale hoeveelheid producten in bestelling" msgid "are all products in the order digital" msgstr "Zijn alle producten in de bestelling digitaal" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Bestellingen" @@ -1127,19 +1134,19 @@ msgstr "Afbeelding URL" msgid "product's images" msgstr "Afbeeldingen van het product" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Reacties" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Merk" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Attribuutgroepen" @@ -1163,7 +1170,7 @@ msgstr "Hoeveelheid" msgid "number of feedbacks" msgstr "Aantal terugkoppelingen" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Producten" @@ -1175,15 +1182,15 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Producten te koop" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promoties" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Verkoper" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1191,11 +1198,11 @@ msgstr "Verkoper" msgid "product" msgstr "Product" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Gewenste producten" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Verlanglijst" @@ -1203,7 +1210,7 @@ msgstr "Verlanglijst" msgid "tagged products" msgstr "Getagde producten" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Product tags" @@ -1290,692 +1297,690 @@ msgstr "Producten zoekresultaten" msgid "posts search results" msgstr "Zoekresultaten" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Ouder van deze groep" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Ouderattribuutgroep" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Naam attribuutgroep" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Attribuutgroep" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Slaat referenties en eindpunten op die vereist zijn voor API-communicatie " "van de verkoper" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Authenticatie-info" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definieer de opmaak voor producten die zijn opgehaald bij deze leverancier" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Verkoper winstpercentage" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Naam van deze verkoper" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Naam verkoper" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Interne tagidentifier voor de producttag" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Tag naam" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Gebruiksvriendelijke naam voor de producttag" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Tag weergavenaam" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Productlabel" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "categorie tag" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "categorie tags" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Upload een afbeelding die deze categorie vertegenwoordigt" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Categorie afbeelding" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Definieer een toeslagpercentage voor producten in deze categorie" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Ouder van deze categorie om een hiërarchische structuur te vormen" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Oudercategorie" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Naam categorie" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Geef deze categorie een naam" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Voeg een gedetailleerde beschrijving toe voor deze categorie" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Categorie beschrijving" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "tags die deze categorie helpen beschrijven of groeperen" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Prioriteit" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Naam van dit merk" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Merknaam" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Upload een logo dat dit merk vertegenwoordigt" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Klein merkimago" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Upload een groot logo dat dit merk vertegenwoordigt" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Groot merkimago" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Een gedetailleerde beschrijving van het merk toevoegen" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Merknaam" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Optionele categorieën waarmee dit merk wordt geassocieerd" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Categorieën" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Categorie waartoe dit product behoort" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Dit product optioneel koppelen aan een merk" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tags die dit product helpen beschrijven of groeperen" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Geeft aan of dit product digitaal wordt geleverd" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Is product digitaal" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Zorg voor een duidelijke identificerende naam voor het product" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Naam product" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Voeg een gedetailleerde beschrijving van het product toe" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Productbeschrijving" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Onderdeelnummer voor dit product" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Onderdeelnummer" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Categorie van dit kenmerk" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Groep van dit kenmerk" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "String" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Integer" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Vlotter" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Booleaans" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Array" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Object" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Type waarde van het kenmerk" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Waardetype" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Naam van dit kenmerk" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Naam attribuut" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Attribuut" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Attribuut van deze waarde" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Het specifieke product geassocieerd met de waarde van dit kenmerk" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Bijbehorend product" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "De specifieke waarde voor dit kenmerk" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "Geef alternatieve tekst voor de afbeelding voor toegankelijkheid" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Alt-tekst afbeelding" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Upload het afbeeldingsbestand voor dit product" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Product afbeelding" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Bepaalt de volgorde waarin afbeeldingen worden weergegeven" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Prioriteit weergeven" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Het product dat deze afbeelding vertegenwoordigt" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Product afbeeldingen" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Kortingspercentage voor de geselecteerde producten" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Kortingspercentage" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Geef deze promotie een unieke naam" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Naam promotie" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Promotie beschrijving" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Selecteer welke producten onder deze promotie vallen" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Meegeleverde producten" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promotie" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "De verkoper die dit product levert" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Geassocieerde verkoper" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Eindprijs voor de klant na winstmarges" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Verkoopprijs" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Het product dat bij deze voorraadvermelding hoort" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "De prijs die voor dit product aan de verkoper is betaald" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Aankoopprijs verkoper" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Beschikbare hoeveelheid van het product in voorraad" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Hoeveelheid op voorraad" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "Door de verkoper toegewezen SKU om het product te identificeren" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "Verkoper SKU" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Digitaal bestand gekoppeld aan deze voorraad indien van toepassing" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Digitaal bestand" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Voorraadboekingen" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Producten die de gebruiker als gewenst heeft gemarkeerd" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Gebruiker die eigenaar is van deze verlanglijst" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Eigenaar verlanglijstje" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Verlanglijst" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} bestaat niet: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documentaire" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentaires" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Onopgelost" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Adresregel voor de klant" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Adresregel" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Straat" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "District" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Stad" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Regio" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Postcode" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Land" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocatie Punt (lengtegraad, breedtegraad)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Volledig JSON-antwoord van geocoder voor dit adres" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Opgeslagen JSON-antwoord van de geocoderingsservice" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Adres" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adressen" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Unieke code die een gebruiker gebruikt om een korting te verzilveren" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Promo code identificatie" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "" "Vast kortingsbedrag dat wordt toegepast als percentage niet wordt gebruikt" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Vast kortingsbedrag" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Kortingspercentage dat wordt toegepast als het vaste bedrag niet wordt " "gebruikt" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Kortingspercentage" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Tijdstempel wanneer de promocode verloopt" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Geldigheidsduur einde" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Tijdstempel vanaf wanneer deze promocode geldig is" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Begin geldigheidsduur" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" -"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet " -"gebruikt" +"Tijdstempel wanneer de promocode werd gebruikt, leeg indien nog niet gebruikt" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Gebruik tijdstempel" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Gebruiker toegewezen aan deze promocode indien van toepassing" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Toegewezen gebruiker" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Kortingscode" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Actiecodes" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage)," -" maar niet beide of geen van beide." +"Er moet slechts één type korting worden gedefinieerd (bedrag of percentage), " +"maar niet beide of geen van beide." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Promocode is al gebruikt" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Ongeldig kortingstype voor promocode {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "Het factuuradres dat voor deze bestelling is gebruikt" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Optionele promotiecode toegepast op deze bestelling" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Kortingscode toegepast" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "Het verzendadres dat voor deze bestelling is gebruikt" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Verzendadres" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Huidige status van de order in zijn levenscyclus" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Bestelstatus" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "JSON-structuur van meldingen om weer te geven aan gebruikers, in admin UI " "wordt de tabelweergave gebruikt" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "JSON-weergave van bestelattributen voor deze bestelling" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "De gebruiker die de bestelling heeft geplaatst" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Gebruiker" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "De tijdstempel waarop de bestelling is afgerond" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Tijd kopen" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Een menselijk leesbare identificatiecode voor de bestelling" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "menselijk leesbare ID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Bestel" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Een gebruiker mag maar één lopende order tegelijk hebben!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "" "U kunt geen producten toevoegen aan een bestelling die niet in behandeling " "is." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "U kunt geen inactieve producten toevoegen aan uw bestelling" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "Je kunt niet meer producten toevoegen dan er op voorraad zijn" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" -" is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " +"is." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} bestaat niet met query <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Promocode bestaat niet" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "Je kunt alleen fysieke producten kopen met opgegeven verzendadres!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Adres bestaat niet" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "U kunt op dit moment niet kopen. Probeer het over een paar minuten nog eens." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Ongeldige krachtwaarde" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Je kunt geen lege bestelling kopen!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Onvoldoende fondsen om de bestelling te voltooien" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1983,122 +1988,120 @@ msgstr "" "u niet kunt kopen zonder registratie, geef dan de volgende informatie: " "klantnaam, e-mail klant, telefoonnummer klant" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Ongeldige betalingsmethode: {payment_method} van " -"{available_payment_methods}!" +"Ongeldige betalingsmethode: {payment_method} van {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "De prijs die de klant bij aankoop voor dit product heeft betaald" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Aankoopprijs bij bestelling" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "Interne opmerkingen voor beheerders over dit bestelde product" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Interne opmerkingen" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Meldingen van gebruikers" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "JSON weergave van de attributen van dit item" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Geordende producteigenschappen" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Verwijzing naar de bovenliggende bestelling die dit product bevat" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Ouderlijk bevel" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Het specifieke product dat bij deze bestelregel hoort" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Hoeveelheid van dit specifieke product in de bestelling" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Hoeveelheid product" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Huidige status van dit product in de bestelling" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Status productlijn" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "verkeerde actie opgegeven voor feedback: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" -"U kunt geen producten verwijderen uit een bestelling die niet in behandeling" -" is." +"U kunt geen producten verwijderen uit een bestelling die niet in behandeling " +"is." -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Downloaden" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Downloads" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "" "U kunt geen digitale activa downloaden voor een niet-afgeronde bestelling" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Opmerkingen van gebruikers over hun ervaring met het product" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Reacties" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "Verwijst naar het specifieke product in een bestelling waar deze feedback " "over gaat" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Gerelateerd product bestellen" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Door de gebruiker toegekende waardering voor het product" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Productbeoordeling" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Feedback" @@ -2141,7 +2144,8 @@ 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 " @@ -2235,7 +2239,8 @@ msgstr "Sleutel" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Bedankt voor uw bestelling! We zijn blij om uw aankoop te bevestigen. " @@ -2272,8 +2277,7 @@ msgstr "Zowel gegevens als time-out zijn vereist" #: core/utils/caching.py:43 msgid "invalid timeout value, it must be between 0 and 216000 seconds" -msgstr "" -"Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" +msgstr "Ongeldige time-outwaarde, deze moet tussen 0 en 216000 seconden liggen" #: core/utils/db.py:14 #, python-brace-format diff --git a/core/locale/pl_PL/LC_MESSAGES/django.po b/core/locale/pl_PL/LC_MESSAGES/django.po index 98d57a93..6ce27b6d 100644 --- a/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/core/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "Jest aktywny" -#: core/abstract.py:22 +#: 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ń." -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Utworzony" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Kiedy obiekt po raz pierwszy pojawił się w bazie danych" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Zmodyfikowany" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Kiedy obiekt był ostatnio edytowany" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Tłumaczenia" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Ogólne" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relacje" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadane" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Znaczniki czasu" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Aktywuj wybrane %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s aktywowany pomyślnie!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezaktywacja wybranych %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "Funkcja %(verbose_name_plural)s została pomyślnie dezaktywowana." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Wartość atrybutu" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Wartości atrybutów" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Obraz" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Obrazy" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stan magazynowy" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Akcje" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Zamów produkt" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Zamawianie produktów" @@ -128,7 +127,7 @@ msgstr "Zamawianie produktów" msgid "children" msgstr "Dzieci" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Konfiguracja" @@ -190,7 +189,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Zastosuj tylko klucz, aby odczytać dozwolone dane z pamięci podręcznej.\n" -"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w pamięci podręcznej." +"Zastosuj klucz, dane i limit czasu z uwierzytelnianiem, aby zapisać dane w " +"pamięci podręcznej." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -247,8 +247,7 @@ msgstr "" "nieedytowalnych" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Przepisanie niektórych pól istniejącej grupy atrybutów z zachowaniem " "atrybutów nieedytowalnych" @@ -303,8 +302,7 @@ msgstr "" "nieedytowalnych" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Przepisz niektóre pola istniejącej wartości atrybutu, zapisując wartości " "nieedytowalne" @@ -347,11 +345,11 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" -"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id," -" order_products.product.name i order_products.product.partnumber." +"Wyszukiwanie podciągów z uwzględnieniem wielkości liter w human_readable_id, " +"order_products.product.name i order_products.product.partnumber." #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -384,14 +382,14 @@ msgstr "Filtrowanie według identyfikatora UUID użytkownika" #: core/docs/drf/viewsets.py:195 msgid "Filter by order status (case-insensitive substring match)" msgstr "" -"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem" -" wielkości liter)" +"Filtrowanie według statusu zamówienia (dopasowanie podciągu z uwzględnieniem " +"wielkości liter)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Kolejność według jednego z: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefiks z \"-\" dla malejącego " @@ -571,18 +569,28 @@ 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`" @@ -637,10 +645,12 @@ msgstr "(dokładnie) Cyfrowe vs. fizyczne" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla sortowania malejącego. \n" +"Rozdzielana przecinkami lista pól do posortowania. Prefiks z `-` dla " +"sortowania malejącego. \n" "**Dozwolone:** uuid, rating, name, slug, created, modified, price, random" #: core/docs/drf/viewsets.py:441 @@ -770,7 +780,7 @@ msgstr "usunąć relację zamówienie-produkt" msgid "add or remove feedback on an order–product relation" msgstr "dodawanie lub usuwanie opinii na temat relacji zamówienie-produkt" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Nie podano wyszukiwanego hasła." @@ -818,8 +828,8 @@ msgstr "Atrybuty" msgid "Quantity" msgstr "Ilość" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Ślimak" @@ -975,8 +985,8 @@ msgstr "Kup zamówienie" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" "Prześlij atrybuty jako ciąg znaków sformatowany w następujący sposób: " "attr1=value1,attr2=value2" @@ -999,7 +1009,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - działa jak urok" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Atrybuty" @@ -1012,11 +1022,11 @@ msgid "groups of attributes" msgstr "Grupy atrybutów" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Kategorie" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Marki" @@ -1025,7 +1035,7 @@ msgid "category image url" msgstr "Kategorie" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Procentowy narzut" @@ -1035,8 +1045,7 @@ msgstr "" "Które atrybuty i wartości mogą być używane do filtrowania tej kategorii." #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +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." @@ -1048,7 +1057,7 @@ msgstr "Tagi dla tej kategorii" msgid "products in this category" msgstr "Produkty w tej kategorii" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Sprzedawcy" @@ -1073,7 +1082,7 @@ msgid "represents feedback from a user." msgstr "Reprezentuje informacje zwrotne od użytkownika." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Powiadomienia" @@ -1085,7 +1094,7 @@ msgstr "Adres URL pobierania dla tego produktu zamówienia, jeśli dotyczy" msgid "a list of order products in this order" msgstr "Lista zamówionych produktów w tym zamówieniu" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Adres rozliczeniowy" @@ -1109,7 +1118,7 @@ msgstr "Całkowita ilość produktów w zamówieniu" msgid "are all products in the order digital" msgstr "Czy wszystkie produkty w zamówieniu są cyfrowe?" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Zamówienia" @@ -1121,19 +1130,19 @@ msgstr "Adres URL obrazu" msgid "product's images" msgstr "Zdjęcia produktu" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Kategoria" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Informacje zwrotne" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Marka" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Grupy atrybutów" @@ -1157,7 +1166,7 @@ msgstr "Ilość" msgid "number of feedbacks" msgstr "Liczba informacji zwrotnych" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Produkty" @@ -1169,15 +1178,15 @@ msgstr "Promocodes" msgid "products on sale" msgstr "Produkty w sprzedaży" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promocje" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Sprzedawca" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1185,11 +1194,11 @@ msgstr "Sprzedawca" msgid "product" msgstr "Produkt" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Produkty z listy życzeń" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Listy życzeń" @@ -1197,7 +1206,7 @@ msgstr "Listy życzeń" msgid "tagged products" msgstr "Produkty Tagged" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Tagi produktu" @@ -1231,7 +1240,8 @@ msgstr "Numer telefonu firmy" #: core/graphene/object_types.py:506 msgid "email from, sometimes it must be used instead of host user value" -msgstr "\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" +msgstr "" +"\"email from\", czasami musi być użyty zamiast wartości użytkownika hosta" #: core/graphene/object_types.py:507 msgid "email host user" @@ -1282,548 +1292,546 @@ msgstr "Wyniki wyszukiwania produktów" msgid "posts search results" msgstr "Wyniki wyszukiwania produktów" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Rodzic tej grupy" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Grupa atrybutów nadrzędnych" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Nazwa grupy atrybutów" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Grupa atrybutów" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Przechowuje dane uwierzytelniające i punkty końcowe wymagane do komunikacji " "API dostawcy." -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Informacje o uwierzytelnianiu" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Definiowanie znaczników dla produktów pobranych od tego dostawcy" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Procentowa marża sprzedawcy" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Nazwa tego sprzedawcy" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Nazwa sprzedawcy" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Wewnętrzny identyfikator tagu produktu" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Nazwa tagu" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Przyjazna dla użytkownika nazwa etykiety produktu" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Wyświetlana nazwa znacznika" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Etykieta produktu" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "tag kategorii" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "tagi kategorii" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Prześlij obraz reprezentujący tę kategorię" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Obraz kategorii" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Zdefiniuj procentowy narzut dla produktów w tej kategorii." -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Rodzic tej kategorii w celu utworzenia struktury hierarchicznej" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Kategoria nadrzędna" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Nazwa kategorii" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Podaj nazwę dla tej kategorii" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Dodaj szczegółowy opis dla tej kategorii" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Opis kategorii" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "tagi, które pomagają opisać lub pogrupować tę kategorię" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Priorytet" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Nazwa tej marki" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Nazwa marki" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Prześlij logo reprezentujące tę markę" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Mały wizerunek marki" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Prześlij duże logo reprezentujące tę markę" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Duży wizerunek marki" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Dodaj szczegółowy opis marki" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Opis marki" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Opcjonalne kategorie, z którymi powiązana jest ta marka" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Kategorie" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Kategoria, do której należy ten produkt" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Opcjonalnie można powiązać ten produkt z marką" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tagi, które pomagają opisać lub pogrupować ten produkt" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Wskazuje, czy produkt jest dostarczany cyfrowo." -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Czy produkt jest cyfrowy?" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Wyraźna nazwa identyfikująca produkt" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Nazwa produktu" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Dodaj szczegółowy opis produktu" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Opis produktu" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Numer części dla tego produktu" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Numer części" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Kategoria tego atrybutu" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Grupa tego atrybutu" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "String" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Integer" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Pływak" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Wartość logiczna" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Tablica" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Obiekt" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Typ wartości atrybutu" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Typ wartości" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Nazwa tego atrybutu" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Nazwa atrybutu" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Atrybut" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Atrybut tej wartości" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Konkretny produkt powiązany z wartością tego atrybutu" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Produkt powiązany" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "Konkretna wartość dla tego atrybutu" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" -msgstr "" -"Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" +msgstr "Zapewnienie alternatywnego tekstu dla obrazu w celu ułatwienia dostępu" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Tekst alternatywny obrazu" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Prześlij plik obrazu dla tego produktu" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Obraz produktu" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Określa kolejność wyświetlania obrazów" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Priorytet wyświetlania" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Produkt, który przedstawia ten obraz" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Zdjęcia produktów" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Rabat procentowy na wybrane produkty" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Procent rabatu" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Podaj unikalną nazwę tej promocji" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Nazwa promocji" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Opis promocji" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Wybierz produkty objęte promocją" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Dołączone produkty" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promocja" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Sprzedawca dostarczający ten produkt" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Powiązany sprzedawca" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Ostateczna cena dla klienta po uwzględnieniu marży" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Cena sprzedaży" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Produkt powiązany z tym wpisem magazynowym" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Cena zapłacona sprzedawcy za ten produkt" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Cena zakupu przez sprzedawcę" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Dostępna ilość produktu w magazynie" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Ilość w magazynie" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "Jednostki SKU przypisane przez dostawcę w celu identyfikacji produktu" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU sprzedawcy" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Plik cyfrowy powiązany z tymi zapasami, jeśli dotyczy" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Plik cyfrowy" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Zapisy magazynowe" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Produkty, które użytkownik oznaczył jako poszukiwane" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Użytkownik posiadający tę listę życzeń" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Właściciel listy życzeń" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Lista życzeń" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} nie istnieje: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Film dokumentalny" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Filmy dokumentalne" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Nierozwiązany" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Linia adresu dla klienta" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Linia adresowa" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "ul." -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Okręg" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Miasto" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Region" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Kod pocztowy" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Kraj" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Geolocation Point(Longitude, Latitude)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Pełna odpowiedź JSON z geokodera dla tego adresu" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Przechowywana odpowiedź JSON z usługi geokodowania" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Adres" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adresy" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Unikalny kod używany przez użytkownika do realizacji rabatu." -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Identyfikator kodu promocyjnego" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Stała kwota rabatu stosowana, jeśli procent nie jest używany" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Stała kwota rabatu" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Rabat procentowy stosowany w przypadku niewykorzystania stałej kwoty" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Rabat procentowy" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Znacznik czasu wygaśnięcia kodu promocyjnego" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Końcowy czas ważności" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Znacznik czasu, od którego ten kod promocyjny jest ważny" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Czas rozpoczęcia ważności" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Znacznik czasu użycia kodu promocyjnego, pusty, jeśli nie został jeszcze " "użyty." -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Znacznik czasu użycia" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Użytkownik przypisany do tego kodu promocyjnego, jeśli dotyczy" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Przypisany użytkownik" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Kod promocyjny" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Kody promocyjne" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1831,141 +1839,140 @@ msgstr "" "Należy zdefiniować tylko jeden rodzaj rabatu (kwotowy lub procentowy), ale " "nie oba lub żaden z nich." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Kod promocyjny został już wykorzystany" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Nieprawidłowy typ rabatu dla kodu promocyjnego {self.uuid}." -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "Adres rozliczeniowy użyty dla tego zamówienia" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Opcjonalny kod promocyjny zastosowany do tego zamówienia" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Zastosowany kod promocyjny" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "Adres wysyłki użyty dla tego zamówienia" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Adres wysyłki" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Aktualny status zamówienia w jego cyklu życia" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Status zamówienia" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "Struktura JSON powiadomień do wyświetlenia użytkownikom, w interfejsie " "administratora używany jest widok tabeli" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "Reprezentacja JSON atrybutów zamówienia dla tego zamówienia" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "Użytkownik, który złożył zamówienie" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Użytkownik" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Znacznik czasu, kiedy zamówienie zostało sfinalizowane" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Kup czas" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Czytelny dla człowieka identyfikator zamówienia" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "Identyfikator czytelny dla człowieka" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Zamówienie" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" -msgstr "" -"Użytkownik może mieć tylko jedno oczekujące zlecenie w danym momencie!" +msgstr "Użytkownik może mieć tylko jedno oczekujące zlecenie w danym momencie!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "" "Nie można dodać produktów do zamówienia, które nie jest zamówieniem " "oczekującym." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Nie można dodać nieaktywnych produktów do zamówienia" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "Nie można dodać więcej produktów niż jest dostępnych w magazynie" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " "oczekującym." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nie istnieje z zapytaniem <{query}>." -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Kod promocyjny nie istnieje" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "Możesz kupować tylko produkty fizyczne z podanym adresem wysyłki!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Adres nie istnieje" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "W tej chwili nie możesz dokonać zakupu, spróbuj ponownie za kilka minut." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Nieprawidłowa wartość siły" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Nie można kupić pustego zamówienia!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Niewystarczające środki do zrealizowania zamówienia" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1974,7 +1981,7 @@ msgstr "" "informacje: imię i nazwisko klienta, adres e-mail klienta, numer telefonu " "klienta." -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -1982,115 +1989,113 @@ msgstr "" "Nieprawidłowa metoda płatności: {payment_method} z " "{available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "Cena zapłacona przez klienta za ten produkt w momencie zakupu." -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Cena zakupu w momencie zamówienia" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "" -"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego " -"produktu" +"Wewnętrzne komentarze dla administratorów dotyczące tego zamówionego produktu" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Uwagi wewnętrzne" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Powiadomienia użytkownika" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "Reprezentacja JSON atrybutów tego elementu" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Zamówione atrybuty produktu" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Odniesienie do zamówienia nadrzędnego zawierającego ten produkt" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Zamówienie nadrzędne" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Konkretny produkt powiązany z tą linią zamówienia" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Ilość tego konkretnego produktu w zamówieniu" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Ilość produktu" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Aktualny status tego produktu w zamówieniu" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Status linii produktów" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "nieprawidłowe działanie określone dla informacji zwrotnej: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" "Nie można usunąć produktów z zamówienia, które nie jest zamówieniem " "oczekującym." -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Pobierz" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Pliki do pobrania" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "Nie można pobrać zasobu cyfrowego dla nieukończonego zamówienia." -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Komentarze użytkowników na temat ich doświadczeń z produktem" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Komentarze zwrotne" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "Odnosi się do konkretnego produktu w zamówieniu, którego dotyczy ta " "informacja zwrotna." -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Powiązany produkt zamówienia" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Ocena produktu przypisana przez użytkownika" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Ocena produktu" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Informacje zwrotne" @@ -2133,7 +2138,8 @@ msgstr "Witam %(order.user.first_name)s," #, python-format msgid "" "thank you for your order #%(order.pk)s! we are pleased to inform you that\n" -" we have taken your order into work. below are the details of your\n" +" we have taken your order into work. below are " +"the details of your\n" " order:" msgstr "" "Dziękujemy za zamówienie #%(order.pk)s! Z przyjemnością informujemy, że " @@ -2190,8 +2196,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:" #: core/templates/digital_order_delivered_email.html:129 msgid "" @@ -2227,7 +2233,8 @@ msgstr "Klucz" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Dziękujemy za zamówienie! Z przyjemnością potwierdzamy zakup. Poniżej " diff --git a/core/locale/pt_BR/LC_MESSAGES/django.po b/core/locale/pt_BR/LC_MESSAGES/django.po index 4aa66926..ead07f72 100644 --- a/core/locale/pt_BR/LC_MESSAGES/django.po +++ b/core/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "Está ativo" -#: core/abstract.py:22 +#: 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" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Criado" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Quando o objeto apareceu pela primeira vez no banco de dados" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modificado" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Quando o objeto foi editado pela última vez" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Traduções" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Geral" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relações" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadados" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Carimbos de data/hora" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Ativar %(verbose_name_plural)s selecionados" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s ativado com sucesso!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Desativar %(verbose_name_plural)s selecionados" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s desativado com sucesso." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Valor do atributo" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Valores de atributos" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Imagem" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Imagens" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Estoque" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Ações" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Pedido de produto" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Solicitar produtos" @@ -128,7 +127,7 @@ msgstr "Solicitar produtos" msgid "children" msgstr "Crianças" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Configuração" @@ -190,7 +189,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicar somente uma chave para ler dados permitidos do cache.\n" -"Aplicar chave, dados e tempo limite com autenticação para gravar dados no cache." +"Aplicar chave, dados e tempo limite com autenticação para gravar dados no " +"cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -246,8 +246,7 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "Reescrever um grupo de atributos existente salvando os não editáveis" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Reescreva alguns campos de um grupo de atributos existente salvando os não " "editáveis" @@ -298,8 +297,7 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "Reescreva um valor de atributo existente salvando os não editáveis" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Reescreva alguns campos de um valor de atributo existente salvando os não " "editáveis" @@ -340,12 +338,12 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "Pesquisa de substring sem distinção entre maiúsculas e minúsculas em " -"human_readable_id, order_products.product.name e " -"order_products.product.partnumber" +"human_readable_id, order_products.product.name e order_products.product." +"partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -381,9 +379,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Ordene por uma das seguintes opções: uuid, human_readable_id, user_email, " "user, status, created, modified, buy_time, random. Prefixe com '-' para " @@ -564,18 +562,28 @@ 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`" @@ -631,11 +639,14 @@ msgstr "(exato) Digital vs. físico" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista de campos separada por vírgulas para classificação. Prefixe com `-` para classificação decrescente. \n" -"**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, aleatório" +"Lista de campos separada por vírgulas para classificação. Prefixe com `-` " +"para classificação decrescente. \n" +"**Permitido:** uuid, classificação, nome, slug, criado, modificado, preço, " +"aleatório" #: core/docs/drf/viewsets.py:441 msgid "retrieve a single product (detailed view)" @@ -761,7 +772,7 @@ msgstr "excluir uma relação pedido-produto" msgid "add or remove feedback on an order–product relation" msgstr "adicionar ou remover feedback em uma relação pedido-produto" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Nenhum termo de pesquisa foi fornecido." @@ -809,8 +820,8 @@ msgstr "Atributos" msgid "Quantity" msgstr "Quantidade" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Lesma" @@ -967,8 +978,8 @@ msgstr "Comprar um pedido" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" "Envie os atributos como uma string formatada como attr1=value1,attr2=value2" @@ -990,7 +1001,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funciona muito bem" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Atributos" @@ -1003,11 +1014,11 @@ msgid "groups of attributes" msgstr "Grupos de atributos" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Categorias" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Marcas" @@ -1016,7 +1027,7 @@ msgid "category image url" msgstr "Categorias" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Porcentagem de marcação" @@ -1026,8 +1037,7 @@ msgstr "" "Quais atributos e valores podem ser usados para filtrar essa categoria." #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +msgid "minimum and maximum prices for products in this category, if available." msgstr "Preços mínimo e máximo dos produtos dessa categoria, se disponíveis." #: core/graphene/object_types.py:135 @@ -1038,7 +1048,7 @@ msgstr "Tags para esta categoria" msgid "products in this category" msgstr "Produtos desta categoria" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Vendors" @@ -1064,7 +1074,7 @@ msgid "represents feedback from a user." msgstr "Representa o feedback de um usuário." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Notificações" @@ -1076,7 +1086,7 @@ msgstr "URL de download para este produto do pedido, se aplicável" msgid "a list of order products in this order" msgstr "Uma lista dos produtos solicitados nesse pedido" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Endereço de cobrança" @@ -1100,7 +1110,7 @@ msgstr "Quantidade total de produtos no pedido" msgid "are all products in the order digital" msgstr "Todos os produtos estão no pedido digital?" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Pedidos" @@ -1112,19 +1122,19 @@ msgstr "URL da imagem" msgid "product's images" msgstr "Imagens do produto" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Categoria" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Feedbacks" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Brand" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Grupos de atributos" @@ -1148,7 +1158,7 @@ msgstr "Quantidade" msgid "number of feedbacks" msgstr "Número de feedbacks" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Produtos" @@ -1160,15 +1170,15 @@ msgstr "Códigos promocionais" msgid "products on sale" msgstr "Produtos à venda" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promoções" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Vendor" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1176,11 +1186,11 @@ msgstr "Vendor" msgid "product" msgstr "Produto" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Produtos da lista de desejos" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Listas de desejos" @@ -1188,7 +1198,7 @@ msgstr "Listas de desejos" msgid "tagged products" msgstr "Produtos marcados" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Etiquetas do produto" @@ -1274,689 +1284,686 @@ msgstr "Resultados da pesquisa de produtos" msgid "posts search results" msgstr "Resultados da pesquisa de produtos" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Pai deste grupo" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Grupo de atributos pai" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Nome do grupo de atributos" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Grupo de atributos" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Armazena as credenciais e os pontos de extremidade necessários para a " "comunicação da API do fornecedor" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Informações de autenticação" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Definir a marcação para produtos recuperados desse fornecedor" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Porcentagem da margem de lucro do fornecedor" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Nome do fornecedor" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Nome do fornecedor" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Identificador de tag interno para a tag do produto" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Nome da etiqueta" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Nome de fácil utilização para a etiqueta do produto" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Nome de exibição da tag" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Etiqueta do produto" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "tag de categoria" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "tags de categoria" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Faça upload de uma imagem que represente essa categoria" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Imagem da categoria" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Definir uma porcentagem de majoração para os produtos dessa categoria" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Pai dessa categoria para formar uma estrutura hierárquica" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Categoria dos pais" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Nome da categoria" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Forneça um nome para essa categoria" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Adicione uma descrição detalhada para essa categoria" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Descrição da categoria" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "tags que ajudam a descrever ou agrupar essa categoria" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Prioridade" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Nome da marca" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Nome da marca" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Faça upload de um logotipo que represente essa marca" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Imagem pequena da marca" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Faça upload de um logotipo grande que represente essa marca" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Imagem de marca grande" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Adicione uma descrição detalhada da marca" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Descrição da marca" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Categorias opcionais às quais essa marca está associada" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Categorias" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Categoria à qual este produto pertence" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Opcionalmente, associe esse produto a uma marca" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Tags que ajudam a descrever ou agrupar este produto" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Indica se esse produto é entregue digitalmente" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "O produto é digital" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Fornecer um nome de identificação claro para o produto" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Nome do produto" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Adicione uma descrição detalhada do produto" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Descrição do produto" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Número de peça para este produto" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Número da peça" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Categoria desse atributo" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Grupo desse atributo" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Cordas" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Inteiro" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Flutuação" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Booleano" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Matriz" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Objeto" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Tipo do valor do atributo" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Tipo de valor" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Nome desse atributo" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Nome do atributo" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Atributo" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Atributo desse valor" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "O produto específico associado ao valor desse atributo" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Produto associado" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "O valor específico para esse atributo" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" -msgstr "" -"Forneça um texto alternativo para a imagem para fins de acessibilidade" +msgstr "Forneça um texto alternativo para a imagem para fins de acessibilidade" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Texto alternativo da imagem" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Faça o upload do arquivo de imagem para este produto" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Imagem do produto" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Determina a ordem em que as imagens são exibidas" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Prioridade de exibição" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "O produto que esta imagem representa" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Imagens do produto" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Desconto percentual para os produtos selecionados" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Porcentagem de desconto" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Forneça um nome exclusivo para essa promoção" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Nome da promoção" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Descrição da promoção" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Selecione quais produtos estão incluídos nessa promoção" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Produtos incluídos" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promoção" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "O fornecedor que fornece esse estoque de produtos" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Fornecedor associado" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Preço final para o cliente após as marcações" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Preço de venda" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "O produto associado a essa entrada em estoque" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "O preço pago ao fornecedor por esse produto" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Preço de compra do fornecedor" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Quantidade disponível do produto em estoque" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Quantidade em estoque" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuído pelo fornecedor para identificar o produto" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU do fornecedor" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Arquivo digital associado a esse estoque, se aplicável" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Arquivo digital" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Entradas de estoque" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Produtos que o usuário marcou como desejados" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Usuário que possui esta lista de desejos" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Proprietário da lista de desejos" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Lista de desejos" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} não existe: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documentário" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentários" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Não resolvido" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Linha de endereço do cliente" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Linha de endereço" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Rua" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Distrito" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Cidade" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Região" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Código postal" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "País" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Ponto de geolocalização (Longitude, Latitude)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Resposta JSON completa do geocodificador para este endereço" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Resposta JSON armazenada do serviço de geocodificação" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Endereço" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Endereços" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Código exclusivo usado por um usuário para resgatar um desconto" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Identificador de código promocional" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Valor de desconto fixo aplicado se a porcentagem não for usada" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Valor do desconto fixo" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Desconto percentual aplicado se o valor fixo não for usado" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Desconto percentual" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Registro de data e hora em que o código promocional expira" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Tempo de validade final" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "" "Registro de data e hora a partir do qual esse código promocional é válido" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Hora de início da validade" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Registro de data e hora em que o código promocional foi usado, em branco se " "ainda não tiver sido usado" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Registro de data e hora de uso" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Usuário atribuído a esse código promocional, se aplicável" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Usuário atribuído" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Código promocional" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Códigos promocionais" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não" -" ambos ou nenhum." +"Apenas um tipo de desconto deve ser definido (valor ou porcentagem), mas não " +"ambos ou nenhum." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "O código promocional já foi usado" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tipo de desconto inválido para o código promocional {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "O endereço de cobrança usado para esse pedido" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Código promocional opcional aplicado a este pedido" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Código promocional aplicado" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "O endereço de entrega usado para esse pedido" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Endereço de entrega" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Status atual do pedido em seu ciclo de vida" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Status do pedido" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "Estrutura JSON de notificações a serem exibidas aos usuários; na interface " "do usuário do administrador, é usada a visualização de tabela" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "Representação JSON dos atributos do pedido para esse pedido" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "O usuário que fez o pedido" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Usuário" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "O registro de data e hora em que o pedido foi finalizado" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Tempo de compra" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Um identificador legível por humanos para o pedido" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "ID legível por humanos" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Pedido" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Um usuário deve ter apenas uma ordem pendente por vez!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "Não é possível adicionar produtos a um pedido que não esteja pendente" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Não é possível adicionar produtos inativos ao pedido" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "" "Não é possível adicionar mais produtos do que os disponíveis em estoque" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "Não é possível remover produtos de um pedido que não esteja pendente" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} não existe com a consulta <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "O código promocional não existe" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" -"Você só pode comprar produtos físicos com o endereço de entrega " -"especificado!" +"Você só pode comprar produtos físicos com o endereço de entrega especificado!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "O endereço não existe" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Não é possível comprar neste momento, tente novamente em alguns minutos." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Valor de força inválido" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Você não pode comprar um pedido vazio!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Fundos insuficientes para concluir o pedido" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1964,7 +1971,7 @@ msgstr "" "Não é possível comprar sem registro, forneça as seguintes informações: nome " "do cliente, e-mail do cliente, número de telefone do cliente" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" @@ -1972,115 +1979,114 @@ msgstr "" "Método de pagamento inválido: {payment_method} de " "{available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "O preço pago pelo cliente por esse produto no momento da compra" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Preço de compra no momento do pedido" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "" "Comentários internos para administradores sobre este produto encomendado" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Comentários internos" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Notificações do usuário" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "Representação JSON dos atributos desse item" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Atributos ordenados do produto" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Referência ao pedido pai que contém esse produto" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Ordem dos pais" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "O produto específico associado a essa linha de pedido" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Quantidade desse produto específico no pedido" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Quantidade do produto" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Status atual desse produto no pedido" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Status da linha de produtos" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "ação incorreta especificada para feedback: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "você não pode dar feedback a um pedido que não foi recebido" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Baixar" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Downloads" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "" "Não é possível fazer download de um ativo digital para um pedido não " "concluído" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "" "Comentários fornecidos pelo usuário sobre sua experiência com o produto" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Comentários de feedback" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" -"Faz referência ao produto específico em um pedido sobre o qual se trata esse" -" feedback" +"Faz referência ao produto específico em um pedido sobre o qual se trata esse " +"feedback" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Produto de pedido relacionado" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Classificação atribuída pelo usuário ao produto" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Avaliação do produto" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Feedback" @@ -2123,7 +2129,8 @@ 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 " @@ -2216,7 +2223,8 @@ msgstr "Chave" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Obrigado por seu pedido! Temos o prazer de confirmar sua compra. Abaixo " diff --git a/core/locale/ro_RO/LC_MESSAGES/django.po b/core/locale/ro_RO/LC_MESSAGES/django.po index 73985fcd..97ac952d 100644 --- a/core/locale/ro_RO/LC_MESSAGES/django.po +++ b/core/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "Este activ" -#: core/abstract.py:22 +#: 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ă" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Creat" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Când a apărut pentru prima dată obiectul în baza de date" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Modificat" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Când a fost editat obiectul ultima dată" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Traduceri" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Generalități" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Relații" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Metadate" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Timestamps" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Activați %(verbose_name_plural)s selectate" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s activat cu succes!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Dezactivați %(verbose_name_plural)s selectate" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s dezactivat cu succes." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Atribut Valoare" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Valori ale atributului" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Imagine" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Imagini" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Stoc" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Stocuri" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Comanda Produs" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Comandați produse" @@ -128,7 +127,7 @@ msgstr "Comandați produse" msgid "children" msgstr "Copii" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Configurare" @@ -190,7 +189,8 @@ msgid "" "apply key, data and timeout with authentication to write data to cache." msgstr "" "Aplicați doar o cheie pentru a citi datele permise din cache.\n" -"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în cache." +"Aplicați o cheie, date și timeout cu autentificare pentru a scrie date în " +"cache." #: core/docs/drf/views.py:32 msgid "get a list of supported languages" @@ -211,8 +211,8 @@ msgstr "Solicitați un URL CORSed. Numai https este permis." #: core/docs/drf/views.py:85 msgid "global search endpoint to query across project's tables" msgstr "" -"Punct final de căutare globală pentru a efectua interogări în toate tabelele" -" proiectului" +"Punct final de căutare globală pentru a efectua interogări în toate tabelele " +"proiectului" #: core/docs/drf/views.py:91 msgid "purchase an order as a business" @@ -223,8 +223,8 @@ msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." msgstr "" -"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid`" -" și `attributes` furnizate." +"Achiziționați o comandă ca o afacere, utilizând `products` cu `product_uuid` " +"și `attributes` furnizate." #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -245,12 +245,10 @@ msgstr "Ștergerea unui grup de atribute" #: core/docs/drf/viewsets.py:59 msgid "rewrite an existing attribute group saving non-editables" msgstr "" -"Rescrierea unui grup de atribute existent cu salvarea elementelor " -"needitabile" +"Rescrierea unui grup de atribute existent cu salvarea elementelor needitabile" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unui grup de atribute existent, cu salvarea " "elementelor needitabile" @@ -303,8 +301,7 @@ msgstr "" "Rescrierea unei valori de atribut existente care salvează non-editabile" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Rescrierea unor câmpuri ale unei valori de atribut existente salvând " "elementele needitabile" @@ -347,8 +344,8 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" "Căutare de substring insensibilă la majuscule în human_readable_id, " "order_products.product.name și order_products.product.partnumber" @@ -387,9 +384,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Ordonați după unul dintre: uuid, human_readable_id, user_email, user, " "status, created, modified, buy_time, random. Prefixați cu \"-\" pentru " @@ -571,18 +568,29 @@ 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`" @@ -637,10 +645,12 @@ msgstr "(exact) Digital vs. fizic" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați cu `-` pentru descrescător. \n" +"Lista de câmpuri separate prin virgulă după care se face sortarea. Prefixați " +"cu `-` pentru descrescător. \n" "**Autorizate:** uuid, rating, nume, slug, creat, modificat, preț, aleatoriu" #: core/docs/drf/viewsets.py:441 @@ -708,8 +718,8 @@ msgstr "Autocompletare adresă de intrare" #: core/docs/drf/viewsets.py:576 msgid "raw data query string, please append with data from geo-IP endpoint" msgstr "" -"docker compose exec app poetry run python manage.py deepl_translate -l en-gb" -" -l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " +"docker compose exec app poetry run python manage.py deepl_translate -l en-gb " +"-l ar-ar -l cs-cz -l da-dk -l de-de -l en-us -l es-es -l fr-fr -l hi-in -l " "it-it -l ja-jp -l kk-kz -l nl-nl -l pl-pl -l pt-br -l ro-ro -l ru-ru -l zh-" "hans -a core -a geo -a plăți -a vibes_auth -a blog" @@ -771,7 +781,7 @@ msgstr "ștergeți o relație comandă-produs" msgid "add or remove feedback on an order–product relation" msgstr "adăugarea sau eliminarea feedback-ului într-o relație comandă-produs" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Nu a fost furnizat niciun termen de căutare." @@ -819,8 +829,8 @@ msgstr "Atribute" msgid "Quantity" msgstr "Cantitate" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Melc" @@ -979,8 +989,8 @@ msgstr "Cumpărați o comandă" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" "Vă rugăm să trimiteți atributele sub formă de șir format ca attr1=valoare1, " "attr2=valoare2" @@ -1003,7 +1013,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - funcționează ca un farmec" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Atribute" @@ -1016,11 +1026,11 @@ msgid "groups of attributes" msgstr "Grupuri de atribute" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Categorii" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Mărci" @@ -1029,7 +1039,7 @@ msgid "category image url" msgstr "Categorii" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Procentul de majorare" @@ -1040,11 +1050,10 @@ msgstr "" "categorii." #: core/graphene/object_types.py:133 -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." #: core/graphene/object_types.py:135 msgid "tags for this category" @@ -1054,7 +1063,7 @@ msgstr "Etichete pentru această categorie" msgid "products in this category" msgstr "Produse din această categorie" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Furnizori" @@ -1079,7 +1088,7 @@ msgid "represents feedback from a user." msgstr "Reprezintă feedback de la un utilizator." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Notificări" @@ -1091,7 +1100,7 @@ msgstr "URL de descărcare pentru acest produs de comandă, dacă este cazul" msgid "a list of order products in this order" msgstr "O listă a produselor comandate în această comandă" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Adresa de facturare" @@ -1115,7 +1124,7 @@ msgstr "Cantitatea totală de produse din comandă" msgid "are all products in the order digital" msgstr "Sunt toate produsele din comanda digitală" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Ordine" @@ -1127,19 +1136,19 @@ msgstr "URL imagine" msgid "product's images" msgstr "Imagini ale produsului" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Categorie" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Feedback-uri" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Marca" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Grupuri de atribute" @@ -1163,7 +1172,7 @@ msgstr "Cantitate" msgid "number of feedbacks" msgstr "Numărul de reacții" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Produse" @@ -1175,15 +1184,15 @@ msgstr "Coduri promoționale" msgid "products on sale" msgstr "Produse scoase la vânzare" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Promoții" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Furnizor" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1191,11 +1200,11 @@ msgstr "Furnizor" msgid "product" msgstr "Produs" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Produse dorite" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Liste de dorințe" @@ -1203,7 +1212,7 @@ msgstr "Liste de dorințe" msgid "tagged products" msgstr "Produse etichetate" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Etichete de produs" @@ -1290,549 +1299,547 @@ msgstr "Rezultate căutare produse" msgid "posts search results" msgstr "Rezultate căutare produse" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Părinte al acestui grup" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Grup de atribute părinte" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Numele grupului de atribute" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Grup de atribute" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" "Stochează acreditările și punctele finale necesare pentru comunicarea API a " "furnizorului" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Informații privind autentificarea" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "" "Definirea marjei de profit pentru produsele preluate de la acest furnizor" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Procentul de majorare al furnizorului" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Numele acestui vânzător" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Numele furnizorului" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Identificator intern de etichetă pentru eticheta produsului" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Nume etichetă" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Nume ușor de utilizat pentru eticheta produsului" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Nume afișare etichetă" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Etichetă produs" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "etichetă de categorie" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "Etichete de categorie" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Încărcați o imagine care reprezintă această categorie" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Categorie imagine" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" -msgstr "" -"Definiți un procent de majorare pentru produsele din această categorie" +msgstr "Definiți un procent de majorare pentru produsele din această categorie" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Părinte al acestei categorii pentru a forma o structură ierarhică" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Categoria de părinți" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Numele categoriei" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Furnizați un nume pentru această categorie" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Adăugați o descriere detaliată pentru această categorie" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Descriere categorie" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "etichete care ajută la descrierea sau gruparea acestei categorii" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Prioritate" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Denumirea acestui brand" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Nume de marcă" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Încărcați un logo care reprezintă acest brand" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Brand imagine mică" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Încărcați un logo mare care reprezintă acest brand" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Imagine de marcă mare" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Adăugați o descriere detaliată a mărcii" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Descrierea mărcii" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Categorii opționale cu care acest brand este asociat" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Categorii" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Categoria din care face parte acest produs" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "Opțional, asociați acest produs cu un brand" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Etichete care ajută la descrierea sau gruparea acestui produs" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Indică dacă acest produs este livrat digital" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Produsul este digital" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Furnizați o denumire clară de identificare a produsului" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Denumirea produsului" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Adăugați o descriere detaliată a produsului" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Descrierea produsului" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Numărul piesei pentru acest produs" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Numărul piesei" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Categoria acestui atribut" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Grupul acestui atribut" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Șir de caractere" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Număr întreg" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Float" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Boolean" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Array" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Obiect" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Tipul valorii atributului" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Tipul de valoare" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Denumirea acestui atribut" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Numele atributului" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Atribut" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Atributul acestei valori" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Produsul specific asociat cu valoarea acestui atribut" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Produs asociat" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "Valoarea specifică pentru acest atribut" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "Furnizați text alternativ pentru imagine pentru accesibilitate" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Textul alt al imaginii" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Încărcați fișierul de imagine pentru acest produs" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Imaginea produsului" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Determină ordinea în care sunt afișate imaginile" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Prioritatea afișării" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Produsul pe care îl reprezintă această imagine" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Imagini ale produsului" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Procentul de reducere pentru produsele selectate" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Procent de reducere" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Furnizați un nume unic pentru această promoție" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Numele promoției" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Descrierea promoției" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Selectați ce produse sunt incluse în această promoție" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Produse incluse" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Promovare" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Furnizorul care furnizează acest stoc de produse" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Furnizor asociat" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Prețul final pentru client după majorări" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Prețul de vânzare" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Produsul asociat cu această intrare în stoc" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Prețul plătit vânzătorului pentru acest produs" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Prețul de achiziție al furnizorului" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Cantitatea disponibilă a produsului în stoc" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Cantitate în stoc" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "SKU atribuit de furnizor pentru identificarea produsului" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU al furnizorului" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Fișier digital asociat cu acest stoc, dacă este cazul" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Fișier digital" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Intrări pe stoc" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Produse pe care utilizatorul le-a marcat ca fiind dorite" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Utilizatorul care deține această listă de dorințe" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Proprietarul listei de dorințe" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Lista dorințelor" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} nu există: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Documentar" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Documentare" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Nerezolvat" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Linia de adresă pentru client" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Linia de adresă" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Strada" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Districtul" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Oraș" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Regiunea" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Cod poștal" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Țara" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Punct de geolocație (longitudine, latitudine)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Răspuns JSON complet de la geocoder pentru această adresă" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Răspuns JSON stocat de la serviciul de geocodare" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Adresă" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Adrese" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Cod unic utilizat de un utilizator pentru a răscumpăra o reducere" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Cod promoțional de identificare" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Valoarea fixă a reducerii aplicate dacă procentul nu este utilizat" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Valoarea fixă a reducerii" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "Procentul de reducere aplicat dacă suma fixă nu este utilizată" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Reducere procentuală" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Data la care expiră codul promoțional" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Timpul final de valabilitate" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Timestamp de la care acest cod promoțional este valabil" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Ora de începere a valabilității" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Momentul în care codul promoțional a fost utilizat, gol dacă nu a fost " "utilizat încă" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Timestamp de utilizare" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Utilizatorul atribuit acestui cod promoțional, dacă este cazul" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Utilizator atribuit" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Cod promoțional" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Coduri promoționale" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." @@ -1840,140 +1847,140 @@ msgstr "" "Trebuie definit un singur tip de reducere (sumă sau procent), dar nu ambele " "sau niciuna." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Codul promoțional a fost deja utilizat" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Tip de reducere invalid pentru codul promoțional {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "Adresa de facturare utilizată pentru această comandă" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Cod promoțional opțional aplicat la această comandă" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Cod promoțional aplicat" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "Adresa de expediere utilizată pentru această comandă" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Adresa de expediere" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Stadiul actual al comenzii în ciclul său de viață" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Stadiul comenzii" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" "Structura JSON a notificărilor care urmează să fie afișate utilizatorilor, " "în interfața de administrare este utilizată vizualizarea tabelară" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "Reprezentarea JSON a atributelor comenzii pentru această comandă" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "Utilizatorul care a plasat comanda" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Utilizator" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Momentul în care comanda a fost finalizată" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Cumpărați timp" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Un identificator ușor de citit pentru comandă" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "ID lizibil de către om" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Comandă" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "" "Un utilizator trebuie să aibă un singur ordin în așteptare la un moment dat!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "Nu puteți adăuga produse la o comandă care nu este în așteptare" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Nu puteți adăuga produse inactive la comandă" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "Nu puteți adăuga mai multe produse decât cele disponibile în stoc" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "" "Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} nu există cu interogarea <{query}>" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Codul promoțional nu există" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" "Puteți cumpăra numai produse fizice cu adresa de expediere specificată!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Adresa nu există" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "Nu puteți achiziționa în acest moment, vă rugăm să încercați din nou în " "câteva minute." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Valoare forță invalidă" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Nu puteți achiziționa o comandă goală!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Insuficiența fondurilor pentru finalizarea comenzii" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1981,122 +1988,120 @@ msgstr "" "nu puteți cumpăra fără înregistrare, vă rugăm să furnizați următoarele " "informații: nume client, e-mail client, număr de telefon client" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" -"Metodă de plată invalidă: {payment_method} de la " -"{available_payment_methods}!" +"Metodă de plată invalidă: {payment_method} de la {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "Prețul plătit de client pentru acest produs la momentul achiziției" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Prețul de achiziție la momentul comenzii" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "" "Comentarii interne pentru administratori cu privire la acest produs comandat" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Observații interne" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Notificări pentru utilizatori" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "Reprezentarea JSON a atributelor acestui element" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Atribute de produs ordonate" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Trimitere la comanda mamă care conține acest produs" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Ordinul părinților" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Produsul specific asociat cu această linie de comandă" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Cantitatea acestui produs specific din comandă" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Cantitatea produsului" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Starea actuală a acestui produs în comandă" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Starea liniei de produse" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "acțiune greșită specificată pentru feedback: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "" "Nu puteți elimina produse dintr-o comandă care nu este o comandă în curs" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Descărcare" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Descărcări" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "Nu puteți descărca un bun digital pentru o comandă nefinalizată" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "" "Comentarii furnizate de utilizatori cu privire la experiența lor cu produsul" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Comentarii de feedback" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" -"Face referire la produsul specific dintr-o comandă despre care este vorba în" -" acest feedback" +"Face referire la produsul specific dintr-o comandă despre care este vorba în " +"acest feedback" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Produs aferent comenzii" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Rating atribuit de utilizator pentru produs" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Evaluarea produsului" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Feedback" @@ -2104,8 +2109,8 @@ msgstr "Feedback" msgid "" "you must provide a comment, rating, and order product uuid to add feedback." msgstr "" -"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat" -" pentru a adăuga feedback." +"trebuie să furnizați un comentariu, un rating și uuid-ul produsului comandat " +"pentru a adăuga feedback." #: core/signals.py:62 msgid "error during promocode creation: {e!s}" @@ -2139,7 +2144,8 @@ 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ă " @@ -2233,11 +2239,12 @@ msgstr "Cheie" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" -"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția." -" Mai jos sunt detaliile comenzii dvs:" +"Vă mulțumim pentru comanda dvs.! Suntem încântați să vă confirmăm achiziția. " +"Mai jos sunt detaliile comenzii dvs:" #: core/templates/shipped_order_created_email.html:123 #: core/templates/shipped_order_delivered_email.html:123 diff --git a/core/locale/ru_RU/LC_MESSAGES/django.po b/core/locale/ru_RU/LC_MESSAGES/django.po index ecd7eebf..434082bc 100644 --- a/core/locale/ru_RU/LC_MESSAGES/django.po +++ b/core/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -27,100 +27,99 @@ msgstr "" msgid "is active" msgstr "Активен" -#: core/abstract.py:22 +#: 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, этот объект не может быть виден " "пользователям без необходимого разрешения" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "Создано" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "Когда объект впервые появился в базе данных" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "Модифицированный" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "Когда объект был отредактирован в последний раз" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "Переводы" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "Общие сведения" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "Отношения" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "Метаданные" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "Временные метки" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "Активировать выбранные %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s успешно активирован!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "Деактивировать выбранные %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "%(verbose_name_plural)s успешно деактивирован." -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "Значение атрибута" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "Значения атрибутов" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "Изображение" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "Изображения" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "Наличие" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "Наличия" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "Заказанный товар" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "Заказанные товары" @@ -128,7 +127,7 @@ msgstr "Заказанные товары" msgid "children" msgstr "Дети" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "Конфигурация" @@ -248,8 +247,7 @@ msgstr "" "элементов" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "" "Переписывание некоторых полей существующей группы атрибутов с сохранением " "нередактируемых полей" @@ -303,8 +301,7 @@ msgstr "" "значений" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "" "Переписывание некоторых полей существующего значения атрибута с сохранением " "нередактируемых значений" @@ -348,11 +345,11 @@ msgstr "" #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" -"Поиск подстроки с учетом регистра в human_readable_id, " -"order_products.product.name и order_products.product.partnumber" +"Поиск подстроки с учетом регистра в human_readable_id, order_products." +"product.name и order_products.product.partnumber" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -388,9 +385,9 @@ msgstr "" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" "Упорядочивайте по одному из следующих признаков: uuid, human_readable_id, " "user_email, user, status, created, modified, buy_time, random. Префикс '-' " @@ -466,8 +463,8 @@ msgid "" "adds a list of products to an order using the provided `product_uuid` and " "`attributes`." msgstr "" -"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и" -" `attributes`." +"Добавляет список товаров в заказ, используя предоставленные `product_uuid` и " +"`attributes`." #: core/docs/drf/viewsets.py:266 msgid "remove product from order" @@ -490,8 +487,8 @@ msgid "" "removes a list of products from an order using the provided `product_uuid` " "and `attributes`" msgstr "" -"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и" -" `attributes`." +"Удаляет список товаров из заказа, используя предоставленные `product_uuid` и " +"`attributes`." #: core/docs/drf/viewsets.py:281 msgid "list all wishlists (simple view)" @@ -572,18 +569,29 @@ 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`." @@ -638,11 +646,14 @@ msgstr "(точно) Цифровые и физические" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" -"Список полей для сортировки, разделенных запятыми. Для сортировки по убыванию используйте префикс `-`. \n" -"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, random" +"Список полей для сортировки, разделенных запятыми. Для сортировки по " +"убыванию используйте префикс `-`. \n" +"**Разрешенные:** uuid, рейтинг, название, slug, created, modified, price, " +"random" #: core/docs/drf/viewsets.py:441 msgid "retrieve a single product (detailed view)" @@ -770,7 +781,7 @@ msgstr "удалить отношение \"заказ-продукт" msgid "add or remove feedback on an order–product relation" msgstr "добавлять или удалять отзывы о связи заказ-продукт" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "Поисковый запрос не предоставлен." @@ -818,8 +829,8 @@ msgstr "Атрибуты" msgid "Quantity" msgstr "Количество" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "Слаг" @@ -979,8 +990,8 @@ msgstr "Купить заказ" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "" "Пожалуйста, отправьте атрибуты в виде строки, отформатированной как " "attr1=value1,attr2=value2" @@ -1003,7 +1014,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - работает как шарм" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "Атрибуты" @@ -1016,11 +1027,11 @@ msgid "groups of attributes" msgstr "Группы атрибутов" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "Категории" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "Бренды" @@ -1029,7 +1040,7 @@ msgid "category image url" msgstr "Категории" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "Процент наценки" @@ -1039,8 +1050,7 @@ msgstr "" "Какие атрибуты и значения можно использовать для фильтрации этой категории." #: core/graphene/object_types.py:133 -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 "" "Минимальные и максимальные цены на товары в этой категории, если они " "доступны." @@ -1053,7 +1063,7 @@ msgstr "Теги для этой категории" msgid "products in this category" msgstr "Продукты в этой категории" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "Поставщики" @@ -1079,7 +1089,7 @@ msgid "represents feedback from a user." msgstr "Представляет собой отзыв пользователя." #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "Уведомления" @@ -1091,7 +1101,7 @@ msgstr "Если применимо, загрузите url для этого п msgid "a list of order products in this order" msgstr "Список товаров, заказанных в этом заказе" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "Адрес для выставления счетов" @@ -1115,7 +1125,7 @@ msgstr "Общее количество продуктов в заказе" msgid "are all products in the order digital" msgstr "Все ли товары в заказе представлены в цифровом виде" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "Заказы" @@ -1127,19 +1137,19 @@ msgstr "URL-адрес изображения" msgid "product's images" msgstr "Изображения товара" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "Категория" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "Отзывы" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "Бренд" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "Группы атрибутов" @@ -1163,7 +1173,7 @@ msgstr "Количество" msgid "number of feedbacks" msgstr "Количество отзывов" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "Товары" @@ -1175,15 +1185,15 @@ msgstr "Промокоды" msgid "products on sale" msgstr "Продукты в продаже" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "Промоакции" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "Поставщик" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1191,11 +1201,11 @@ msgstr "Поставщик" msgid "product" msgstr "Товар" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "Продукты из списка желаний" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "Списки желаний" @@ -1203,7 +1213,7 @@ msgstr "Списки желаний" msgid "tagged products" msgstr "Tagged products" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "Теги товара" @@ -1290,690 +1300,688 @@ msgstr "Результаты поиска товаров" msgid "posts search results" msgstr "Результаты поиска товаров" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "Родитель этой группы" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "Родительская группа атрибутов" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "Имя группы атрибутов" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "Группа атрибутов" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "" -"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API" -" поставщика." +"Хранит учетные данные и конечные точки, необходимые для взаимодействия с API " +"поставщика." -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "Информация об аутентификации" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "Определите наценку для товаров, полученных от этого продавца" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "Процент наценки поставщика" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "Имя этого продавца" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "Название поставщика" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "Внутренний идентификатор тега для тега продукта" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "Название тега" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "Удобное название для метки продукта" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "Отображаемое имя тега" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "Метка продукта" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "тег категории" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "теги категорий" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "Загрузите изображение, представляющее эту категорию" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "Изображение категории" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "Определите процент наценки для товаров в этой категории" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "Родитель данной категории для формирования иерархической структуры" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "Родительская категория" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "Название категории" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "Укажите название этой категории" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "Добавьте подробное описание для этой категории" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "Описание категории" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "теги, которые помогают описать или сгруппировать эту категорию" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "Приоритет" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "Название этой марки" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "Название бренда" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "Загрузите логотип, представляющий этот бренд" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "Маленький образ бренда" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "Загрузите большой логотип, представляющий этот бренд" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "Большой имидж бренда" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "Добавьте подробное описание бренда" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "Описание бренда" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "Дополнительные категории, с которыми ассоциируется этот бренд" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "Категории" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "Категория, к которой относится этот продукт" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "По желанию ассоциируйте этот продукт с брендом" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "Теги, которые помогают описать или сгруппировать этот продукт" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "Указывает, поставляется ли этот продукт в цифровом виде" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "Является ли продукт цифровым" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "Обеспечьте четкое идентификационное название продукта" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "Название продукта" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "Добавьте подробное описание продукта" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "Описание товара" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "Парт. номер для данного товара" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "Парт. номер" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "Категория этого атрибута" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "Группа этого атрибута" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "Строка" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "Целое число" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "Поплавок" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "Булево" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "Массив" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "Объект" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "Тип значения атрибута" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "Тип значения" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "Имя этого атрибута" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "Имя атрибута" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "Атрибут" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "Атрибут этого значения" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "Конкретный продукт, связанный со значением этого атрибута" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "Сопутствующий товар" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "Конкретное значение для этого атрибута" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "" "Предоставьте альтернативный текст для изображения, чтобы обеспечить " "доступность" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "Альтовый текст изображения" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "Загрузите файл изображения для этого продукта" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "Изображение продукта" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "Определяет порядок отображения изображений" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "Приоритет отображения" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "Продукт, который представлен на этом изображении" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "Изображения товаров" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "Процентная скидка на выбранные продукты" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "Процент скидки" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "Укажите уникальное имя для этой акции" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "Название акции" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "Описание акции" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "Выберите, какие продукты участвуют в этой акции" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "Включенные продукты" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "Продвижение" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "Поставщик, поставляющий данный товар на склад" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "Ассоциированный поставщик" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "Окончательная цена для покупателя после наценок" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "Цена продажи" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "Продукт, связанный с этой складской записью" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "Цена, уплаченная продавцу за этот продукт" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "Цена покупки у поставщика" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "Доступное количество продукта на складе" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "Количество на складе" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "Присвоенный поставщиком SKU для идентификации продукта" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "SKU поставщика" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "Цифровой файл, связанный с этой акцией, если применимо" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "Цифровой файл" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "Наличия" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "Продукты, которые пользователь отметил как желаемые" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "Пользователь, владеющий этим списком желаний" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "Владелец вишлиста" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "Список желаний" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} не существует: {product_uuid}" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "Документальный фильм" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "Документальные фильмы" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "Неразрешенные" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "Адресная строка для клиента" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "Адресная строка" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "Улица" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "Округ" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "Город" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "Регион" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "Почтовый индекс" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "Страна" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "Геолокационная точка(долгота, широта)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "Полный JSON-ответ от геокодера для этого адреса" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "Сохраненный JSON-ответ от сервиса геокодирования" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "Адрес" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "Адреса" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "Уникальный код, используемый пользователем для получения скидки" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "Идентификатор промо-кода" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "Фиксированная сумма скидки, применяемая, если процент не используется" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "Фиксированная сумма скидки" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "" "Процентная скидка, применяемая, если фиксированная сумма не используется" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "Процентная скидка" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "Временная метка, когда истекает срок действия промокода" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "Время окончания срока действия" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "Время, с которого действует этот промокод" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "Время начала действия" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "" "Временная метка, когда был использован промокод, пустая, если он еще не " "использовался" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "Временная метка использования" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "Пользователь, назначенный на этот промокод, если применимо" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "Назначенный пользователь" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "Промокод" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "Промокоды" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." msgstr "" -"Следует определить только один тип скидки (сумма или процент), но не оба или" -" ни один из них." +"Следует определить только один тип скидки (сумма или процент), но не оба или " +"ни один из них." -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "Промокоды" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "Неверный тип скидки для промокода {self.uuid}" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "Адрес для выставления счетов, используемый для данного заказа" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "Дополнительный промокод, применяемый к этому заказу" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "Примененный промокод" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "Адрес доставки, используемый для данного заказа" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "Адрес доставки" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "Текущий статус заказа в его жизненном цикле" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "Статус заказа" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "" -"JSON-структура уведомлений для отображения пользователям, в административном" -" интерфейсе используется табличный вид" +"JSON-структура уведомлений для отображения пользователям, в административном " +"интерфейсе используется табличный вид" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "JSON-представление атрибутов заказа для этого заказа" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "Пользователь, разместивший заказ" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "Пользователь" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "Временная метка, когда заказ был завершен" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "Время покупки" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "Человекочитаемый идентификатор для заказа" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "человекочитаемый идентификатор" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "Заказать" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "Пользователь может одновременно иметь только один отложенный ордер!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "Вы не можете добавить товары в заказ, который не является отложенным." -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "Вы не можете добавить неактивные товары в заказ" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "Вы не можете добавить больше товаров, чем есть на складе" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" -msgstr "" -"Вы не можете удалить товары из заказа, который не является отложенным." +msgstr "Вы не можете удалить товары из заказа, который не является отложенным." -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "{name} не существует в запросе <{query}>." -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "Промокод не существует" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "" "Вы можете купить физические товары только с указанным адресом доставки!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "Адрес не существует" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "" "В данный момент вы не можете совершить покупку, пожалуйста, повторите " "попытку через несколько минут." -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "Недопустимое значение силы" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "Вы не можете приобрести пустой заказ!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "Недостаточно средств для выполнения заказа" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" @@ -1981,118 +1989,116 @@ msgstr "" "Вы не можете купить без регистрации, пожалуйста, предоставьте следующую " "информацию: имя клиента, электронная почта клиента, номер телефона клиента" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "" "Неверный способ оплаты: {payment_method} от {available_payment_methods}!" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "Цена, уплаченная клиентом за данный продукт на момент покупки" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "Покупная цена на момент заказа" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" -msgstr "" -"Внутренние комментарии для администраторов об этом заказанном продукте" +msgstr "Внутренние комментарии для администраторов об этом заказанном продукте" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "Внутренние комментарии" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "Уведомления пользователей" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "JSON-представление атрибутов этого элемента" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "Атрибуты заказанного продукта" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "Ссылка на родительский заказ, содержащий данный продукт" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "Родительский приказ" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "Конкретный продукт, связанный с этой линией заказа" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "Количество данного товара в заказе" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "Количество продукта" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "Текущий статус этого продукта в заказе" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "Состояние продуктовой линейки" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "указано неверное действие для обратной связи: {action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "Вы не можете отозвать заказ, который не был получен" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "Скачать" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "Скачать" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "Вы не можете загрузить цифровой актив для незавершенного заказа" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "Комментарии пользователей об их опыте использования продукта" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "Комментарии к отзывам" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "" "Ссылка на конкретный продукт в заказе, о котором идет речь в этом отзыве" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "Сопутствующий товар для заказа" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "Присвоенный пользователем рейтинг продукта" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "Рейтинг продукции" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "Обратная связь" @@ -2135,11 +2141,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! Мы рады сообщить Вам, что приняли Ваш" -" заказ в работу. Ниже приведены детали вашего заказа:" +"Благодарим вас за заказ #%(order.pk)s! Мы рады сообщить Вам, что приняли Ваш " +"заказ в работу. Ниже приведены детали вашего заказа:" #: core/templates/digital_order_created_email.html:112 #: core/templates/digital_order_delivered_email.html:111 @@ -2228,7 +2235,8 @@ msgstr "Ключ" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "" "Спасибо за ваш заказ! Мы рады подтвердить вашу покупку. Ниже приведены " @@ -2306,8 +2314,7 @@ msgstr "Параметр NOMINATIM_URL должен быть настроен!" #, python-brace-format msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -"Размеры изображения не должны превышать w{max_width} x h{max_height} " -"пикселей" +"Размеры изображения не должны превышать w{max_width} x h{max_height} пикселей" #: core/validators.py:22 msgid "invalid phone number format" diff --git a/core/locale/zh_Hans/LC_MESSAGES/django.po b/core/locale/zh_Hans/LC_MESSAGES/django.po index f6ed35e3..c0bd13f3 100644 --- a/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:05+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -25,98 +25,97 @@ msgstr "唯一 ID 用于确定识别任何数据库对象" msgid "is active" msgstr "处于活动状态" -#: core/abstract.py:22 +#: 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,则没有必要权限的用户无法查看此对象" -#: core/abstract.py:26 core/choices.py:18 +#: core/abstract.py:24 core/choices.py:18 msgid "created" msgstr "创建" -#: core/abstract.py:26 +#: core/abstract.py:24 msgid "when the object first appeared on the database" msgstr "对象首次出现在数据库中的时间" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "modified" msgstr "改装" -#: core/abstract.py:29 +#: core/abstract.py:27 msgid "when the object was last modified" msgstr "对象最后一次编辑的时间" -#: core/admin.py:53 +#: core/admin.py:55 msgid "translations" msgstr "翻译" -#: core/admin.py:58 +#: core/admin.py:59 msgid "general" msgstr "一般情况" -#: core/admin.py:60 +#: core/admin.py:61 msgid "relations" msgstr "关系" -#: core/admin.py:65 core/admin.py:67 +#: core/admin.py:66 core/admin.py:68 msgid "metadata" msgstr "元数据" -#: core/admin.py:74 +#: core/admin.py:75 msgid "timestamps" msgstr "时间戳" -#: core/admin.py:80 core/admin.py:95 +#: core/admin.py:81 core/admin.py:100 #, python-format msgid "activate selected %(verbose_name_plural)s" msgstr "激活选定的 %(verbose_name_plural)s" -#: core/admin.py:83 +#: core/admin.py:86 #, python-format msgid "%(verbose_name_plural)s activated successfully!" msgstr "%(verbose_name_plural)s_激活成功!" -#: core/admin.py:85 core/admin.py:100 +#: core/admin.py:88 core/admin.py:105 #, python-format msgid "deactivate selected %(verbose_name_plural)s" msgstr "停用选定的 %(verbose_name_plural)s" -#: core/admin.py:88 +#: core/admin.py:93 #, python-format msgid "%(verbose_name_plural)s deactivated successfully." msgstr "成功停用%(verbose_name_plural)s_。" -#: core/admin.py:110 core/graphene/object_types.py:411 -#: core/graphene/object_types.py:418 core/models.py:511 core/models.py:519 +#: core/admin.py:115 core/graphene/object_types.py:411 +#: core/graphene/object_types.py:418 core/models.py:759 core/models.py:767 msgid "attribute value" msgstr "属性值" -#: core/admin.py:111 core/graphene/object_types.py:48 core/models.py:520 +#: core/admin.py:116 core/graphene/object_types.py:48 core/models.py:768 msgid "attribute values" msgstr "属性值" -#: core/admin.py:119 +#: core/admin.py:124 msgid "image" msgstr "图片" -#: core/admin.py:120 core/graphene/object_types.py:364 +#: core/admin.py:125 core/graphene/object_types.py:364 msgid "images" msgstr "图片" -#: core/admin.py:128 core/models.py:650 +#: core/admin.py:133 core/models.py:969 msgid "stock" msgstr "库存" -#: core/admin.py:129 core/graphene/object_types.py:465 +#: core/admin.py:134 core/graphene/object_types.py:465 msgid "stocks" msgstr "股票" -#: core/admin.py:139 core/models.py:1384 +#: core/admin.py:144 core/models.py:1791 msgid "order product" msgstr "订购产品" -#: core/admin.py:140 core/graphene/object_types.py:290 core/models.py:1385 +#: core/admin.py:145 core/graphene/object_types.py:290 core/models.py:1792 msgid "order products" msgstr "订购产品" @@ -124,7 +123,7 @@ msgstr "订购产品" msgid "children" msgstr "儿童" -#: core/admin.py:454 +#: core/admin.py:471 msgid "Config" msgstr "配置" @@ -216,7 +215,9 @@ msgstr "以企业身份购买订单" msgid "" "purchase an order as a business, using the provided `products` with " "`product_uuid` and `attributes`." -msgstr "使用提供的带有 `product_uuid` 和 `attributes` 的 `products` 作为企业购买订单。" +msgstr "" +"使用提供的带有 `product_uuid` 和 `attributes` 的 `products` 作为企业购买订" +"单。" #: core/docs/drf/viewsets.py:43 msgid "list all attribute groups (simple view)" @@ -239,8 +240,7 @@ msgid "rewrite an existing attribute group saving non-editables" msgstr "重写保存不可编辑的现有属性组" #: core/docs/drf/viewsets.py:63 -msgid "" -"rewrite some fields of an existing attribute group saving non-editables" +msgid "rewrite some fields of an existing attribute group saving non-editables" msgstr "重写现有属性组的某些字段,保存不可编辑的内容" #: core/docs/drf/viewsets.py:70 @@ -288,8 +288,7 @@ msgid "rewrite an existing attribute value saving non-editables" msgstr "重写现有属性值,保存不可编辑属性" #: core/docs/drf/viewsets.py:117 -msgid "" -"rewrite some fields of an existing attribute value saving non-editables" +msgid "rewrite some fields of an existing attribute value saving non-editables" msgstr "重写现有属性值的某些字段,保存不可编辑的属性值" #: core/docs/drf/viewsets.py:124 @@ -326,11 +325,11 @@ msgstr "对于非工作人员用户,只有他们自己的订单才会被退回 #: core/docs/drf/viewsets.py:158 msgid "" -"Case-insensitive substring search across human_readable_id, " -"order_products.product.name, and order_products.product.partnumber" +"Case-insensitive substring search across human_readable_id, order_products." +"product.name, and order_products.product.partnumber" msgstr "" -"在 human_readable_id、order_products.product.name 和 " -"order_products.product.partnumber 中进行不区分大小写的子串搜索" +"在 human_readable_id、order_products.product.name 和 order_products.product." +"partnumber 中进行不区分大小写的子串搜索" #: core/docs/drf/viewsets.py:165 msgid "Filter orders with buy_time >= this ISO 8601 datetime" @@ -362,11 +361,12 @@ msgstr "按订单状态筛选(不区分大小写的子串匹配)" #: core/docs/drf/viewsets.py:201 msgid "" -"Order by one of: uuid, human_readable_id, user_email, user, status, created," -" modified, buy_time, random. Prefix with '-' for descending (e.g. " -"'-buy_time')." +"Order by one of: uuid, human_readable_id, user_email, user, status, created, " +"modified, buy_time, random. Prefix with '-' for descending (e.g. '-" +"buy_time')." msgstr "" -"按以下一项排序:uuid、human_readable_id、user_email、user、status、created、modified、buy_time、random。前缀\"-\"表示降序(例如\"-buy_time\")。" +"按以下一项排序:uuid、human_readable_id、user_email、user、status、created、" +"modified、buy_time、random。前缀\"-\"表示降序(例如\"-buy_time\")。" #: core/docs/drf/viewsets.py:210 msgid "retrieve a single order (detailed view)" @@ -401,7 +401,9 @@ msgid "" "finalizes the order purchase. if `force_balance` is used, the purchase is " "completed using the user's balance; if `force_payment` is used, a " "transaction is initiated." -msgstr "完成订单购买。如果使用 \"force_balance\",则使用用户的余额完成购买;如果使用 \"force_payment\",则启动交易。" +msgstr "" +"完成订单购买。如果使用 \"force_balance\",则使用用户的余额完成购买;如果使用 " +"\"force_payment\",则启动交易。" #: core/docs/drf/viewsets.py:245 core/graphene/mutations.py:280 msgid "purchase an order without account creation" @@ -520,17 +522,25 @@ 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" @@ -586,7 +596,8 @@ msgstr "(准确)数字与实物" #: core/docs/drf/viewsets.py:427 msgid "" -"Comma-separated list of fields to sort by. Prefix with `-` for descending. \n" +"Comma-separated list of fields to sort by. Prefix with `-` for " +"descending. \n" "**Allowed:** uuid, rating, name, slug, created, modified, price, random" msgstr "" "用逗号分隔的要排序的字段列表。前缀为 `-` 表示降序。 \n" @@ -711,7 +722,7 @@ msgstr "删除订单-产品关系" msgid "add or remove feedback on an order–product relation" msgstr "添加或删除订单与产品关系中的反馈信息" -#: core/elasticsearch/__init__.py:106 +#: core/elasticsearch/__init__.py:101 msgid "no search term provided." msgstr "未提供搜索条件。" @@ -759,8 +770,8 @@ msgstr "属性" msgid "Quantity" msgstr "数量" -#: core/filters.py:73 core/filters.py:355 core/models.py:229 -#: core/models.py:307 core/models.py:388 +#: core/filters.py:73 core/filters.py:355 core/models.py:376 core/models.py:470 +#: core/models.py:586 msgid "Slug" msgstr "蛞蝓" @@ -916,8 +927,8 @@ msgstr "购买订单" #: core/graphene/mutations.py:456 msgid "" -"please send the attributes as the string formatted like " -"attr1=value1,attr2=value2" +"please send the attributes as the string formatted like attr1=value1," +"attr2=value2" msgstr "请以字符串形式发送属性,格式如 attr1=value1,attr2=value2" #: core/graphene/mutations.py:546 @@ -938,7 +949,7 @@ msgid "elasticsearch - works like a charm" msgstr "ElasticSearch - 工作起来得心应手" #: core/graphene/object_types.py:55 core/graphene/object_types.py:273 -#: core/graphene/object_types.py:314 core/models.py:488 core/models.py:935 +#: core/graphene/object_types.py:314 core/models.py:713 core/models.py:1361 msgid "attributes" msgstr "属性" @@ -951,11 +962,11 @@ msgid "groups of attributes" msgstr "属性组" #: core/graphene/object_types.py:89 core/graphene/object_types.py:123 -#: core/graphene/object_types.py:153 core/models.py:257 core/models.py:452 +#: core/graphene/object_types.py:153 core/models.py:401 core/models.py:677 msgid "categories" msgstr "类别" -#: core/graphene/object_types.py:96 core/models.py:321 +#: core/graphene/object_types.py:96 core/models.py:484 msgid "brands" msgstr "品牌" @@ -964,7 +975,7 @@ msgid "category image url" msgstr "类别" #: core/graphene/object_types.py:126 core/graphene/object_types.py:221 -#: core/models.py:191 +#: core/models.py:338 msgid "markup percentage" msgstr "加价百分比" @@ -973,8 +984,7 @@ msgid "which attributes and values can be used for filtering this category." msgstr "哪些属性和值可用于筛选该类别。" #: core/graphene/object_types.py:133 -msgid "" -"minimum and maximum prices for products in this category, if available." +msgid "minimum and maximum prices for products in this category, if available." msgstr "该类别产品的最低和最高价格(如有)。" #: core/graphene/object_types.py:135 @@ -985,7 +995,7 @@ msgstr "此类别的标签" msgid "products in this category" msgstr "该类别中的产品" -#: core/graphene/object_types.py:228 core/models.py:120 +#: core/graphene/object_types.py:228 core/models.py:170 msgid "vendors" msgstr "供应商" @@ -1010,7 +1020,7 @@ msgid "represents feedback from a user." msgstr "代表用户的反馈意见。" #: core/graphene/object_types.py:274 core/graphene/object_types.py:315 -#: core/models.py:929 +#: core/models.py:1355 msgid "notifications" msgstr "通知" @@ -1022,7 +1032,7 @@ msgstr "此订单产品的下载网址(如适用" msgid "a list of order products in this order" msgstr "该订单中的订单产品列表" -#: core/graphene/object_types.py:306 core/models.py:899 +#: core/graphene/object_types.py:306 core/models.py:1325 msgid "billing address" msgstr "账单地址" @@ -1044,7 +1054,7 @@ msgstr "订单中产品的总数量" msgid "are all products in the order digital" msgstr "订单中的所有产品都是数字产品吗?" -#: core/graphene/object_types.py:333 core/models.py:963 +#: core/graphene/object_types.py:333 core/models.py:1389 msgid "orders" msgstr "订单" @@ -1056,19 +1066,19 @@ msgstr "图片 URL" msgid "product's images" msgstr "产品图片" -#: core/graphene/object_types.py:363 core/models.py:256 core/models.py:331 +#: core/graphene/object_types.py:363 core/models.py:400 core/models.py:529 msgid "category" msgstr "类别" -#: core/graphene/object_types.py:365 core/models.py:1507 +#: core/graphene/object_types.py:365 core/models.py:1945 msgid "feedbacks" msgstr "反馈意见" -#: core/graphene/object_types.py:366 core/models.py:320 core/models.py:340 +#: core/graphene/object_types.py:366 core/models.py:483 core/models.py:538 msgid "brand" msgstr "品牌" -#: core/graphene/object_types.py:367 core/models.py:86 +#: core/graphene/object_types.py:367 core/models.py:110 msgid "attribute groups" msgstr "属性组" @@ -1092,7 +1102,7 @@ msgstr "数量" msgid "number of feedbacks" msgstr "反馈数量" -#: core/graphene/object_types.py:388 core/models.py:393 +#: core/graphene/object_types.py:388 core/models.py:591 msgid "products" msgstr "产品" @@ -1104,15 +1114,15 @@ msgstr "促销代码" msgid "products on sale" msgstr "销售产品" -#: core/graphene/object_types.py:453 core/models.py:591 +#: core/graphene/object_types.py:453 core/models.py:890 msgid "promotions" msgstr "促销活动" -#: core/graphene/object_types.py:457 core/models.py:119 +#: core/graphene/object_types.py:457 core/models.py:169 msgid "vendor" msgstr "供应商" -#: core/graphene/object_types.py:458 core/models.py:392 +#: core/graphene/object_types.py:458 core/models.py:590 #: core/templates/digital_order_created_email.html:109 #: core/templates/digital_order_delivered_email.html:108 #: core/templates/shipped_order_created_email.html:107 @@ -1120,11 +1130,11 @@ msgstr "供应商" msgid "product" msgstr "产品" -#: core/graphene/object_types.py:469 core/models.py:661 +#: core/graphene/object_types.py:469 core/models.py:990 msgid "wishlisted products" msgstr "心愿单上的产品" -#: core/graphene/object_types.py:475 core/models.py:678 +#: core/graphene/object_types.py:475 core/models.py:1007 msgid "wishlists" msgstr "愿望清单" @@ -1132,7 +1142,7 @@ msgstr "愿望清单" msgid "tagged products" msgstr "标签产品" -#: core/graphene/object_types.py:486 core/models.py:148 core/models.py:346 +#: core/graphene/object_types.py:486 core/models.py:214 core/models.py:544 msgid "product tags" msgstr "产品标签" @@ -1217,789 +1227,788 @@ msgstr "产品搜索结果" msgid "posts search results" msgstr "产品搜索结果" -#: core/models.py:71 +#: core/models.py:95 msgid "parent of this group" msgstr "本组家长" -#: core/models.py:72 +#: core/models.py:96 msgid "parent attribute group" msgstr "父属性组" -#: core/models.py:76 core/models.py:77 +#: core/models.py:100 core/models.py:101 msgid "attribute group's name" msgstr "属性组名称" -#: core/models.py:85 core/models.py:460 +#: core/models.py:109 core/models.py:685 msgid "attribute group" msgstr "属性组" -#: core/models.py:96 +#: core/models.py:147 msgid "stores credentials and endpoints required for vendor communication" msgstr "存储供应商应用程序接口通信所需的凭证和端点" -#: core/models.py:98 +#: core/models.py:148 msgid "authentication info" msgstr "认证信息" -#: core/models.py:103 +#: core/models.py:153 msgid "define the markup for products retrieved from this vendor" msgstr "定义从该供应商获取的产品的标记" -#: core/models.py:104 +#: core/models.py:154 msgid "vendor markup percentage" msgstr "供应商加价百分比" -#: core/models.py:108 +#: core/models.py:158 msgid "name of this vendor" msgstr "供应商名称" -#: core/models.py:109 +#: core/models.py:159 msgid "vendor name" msgstr "供应商名称" -#: core/models.py:133 core/models.py:158 +#: core/models.py:199 core/models.py:237 msgid "internal tag identifier for the product tag" msgstr "产品标签的内部标签标识符" -#: core/models.py:134 core/models.py:159 +#: core/models.py:200 core/models.py:238 msgid "tag name" msgstr "标签名称" -#: core/models.py:138 core/models.py:163 +#: core/models.py:204 core/models.py:242 msgid "user-friendly name for the product tag" msgstr "方便用户使用的产品标签名称" -#: core/models.py:139 core/models.py:164 +#: core/models.py:205 core/models.py:243 msgid "tag display name" msgstr "标签显示名称" -#: core/models.py:147 +#: core/models.py:213 msgid "product tag" msgstr "产品标签" -#: core/models.py:172 +#: core/models.py:251 msgid "category tag" msgstr "类别标签" -#: core/models.py:173 core/models.py:235 +#: core/models.py:252 core/models.py:382 msgid "category tags" msgstr "类别标签" -#: core/models.py:182 +#: core/models.py:329 msgid "upload an image representing this category" msgstr "上传代表该类别的图片" -#: core/models.py:185 +#: core/models.py:332 msgid "category image" msgstr "类别 图像" -#: core/models.py:190 +#: core/models.py:337 msgid "define a markup percentage for products in this category" msgstr "定义该类别产品的加价百分比" -#: core/models.py:199 +#: core/models.py:346 msgid "parent of this category to form a hierarchical structure" msgstr "该类别的父类别,形成等级结构" -#: core/models.py:200 +#: core/models.py:347 msgid "parent category" msgstr "父类" -#: core/models.py:205 +#: core/models.py:352 msgid "category name" msgstr "类别名称" -#: core/models.py:206 +#: core/models.py:353 msgid "provide a name for this category" msgstr "提供该类别的名称" -#: core/models.py:213 +#: core/models.py:360 msgid "add a detailed description for this category" msgstr "为该类别添加详细说明" -#: core/models.py:214 +#: core/models.py:361 msgid "category description" msgstr "类别说明" -#: core/models.py:234 +#: core/models.py:381 msgid "tags that help describe or group this category" msgstr "有助于描述或归类该类别的标签" -#: core/models.py:241 core/models.py:313 +#: core/models.py:388 core/models.py:476 msgid "priority" msgstr "优先权" -#: core/models.py:266 +#: core/models.py:429 msgid "name of this brand" msgstr "品牌名称" -#: core/models.py:267 +#: core/models.py:430 msgid "brand name" msgstr "品牌名称" -#: core/models.py:274 +#: core/models.py:437 msgid "upload a logo representing this brand" msgstr "上传代表该品牌的徽标" -#: core/models.py:276 +#: core/models.py:439 msgid "brand small image" msgstr "品牌小形象" -#: core/models.py:282 +#: core/models.py:445 msgid "upload a big logo representing this brand" msgstr "上传代表该品牌的大徽标" -#: core/models.py:284 +#: core/models.py:447 msgid "brand big image" msgstr "品牌大形象" -#: core/models.py:289 +#: core/models.py:452 msgid "add a detailed description of the brand" msgstr "添加品牌的详细描述" -#: core/models.py:290 +#: core/models.py:453 msgid "brand description" msgstr "品牌描述" -#: core/models.py:295 +#: core/models.py:458 msgid "optional categories that this brand is associated with" msgstr "与该品牌相关的可选类别" -#: core/models.py:296 +#: core/models.py:459 msgid "associated categories" msgstr "类别" -#: core/models.py:330 +#: core/models.py:528 msgid "category this product belongs to" msgstr "该产品所属类别" -#: core/models.py:339 +#: core/models.py:537 msgid "optionally associate this product with a brand" msgstr "可选择将该产品与某个品牌联系起来" -#: core/models.py:345 +#: core/models.py:543 msgid "tags that help describe or group this product" msgstr "有助于描述或归类该产品的标签" -#: core/models.py:350 +#: core/models.py:548 msgid "indicates whether this product is digitally delivered" msgstr "表示该产品是否以数字方式交付" -#: core/models.py:351 +#: core/models.py:549 msgid "is product digital" msgstr "产品是否数字化" -#: core/models.py:357 +#: core/models.py:555 msgid "provide a clear identifying name for the product" msgstr "为产品提供一个明确的标识名称" -#: core/models.py:358 +#: core/models.py:556 msgid "product name" msgstr "产品名称" -#: core/models.py:363 core/models.py:579 +#: core/models.py:561 core/models.py:878 msgid "add a detailed description of the product" msgstr "添加产品的详细描述" -#: core/models.py:364 +#: core/models.py:562 msgid "product description" msgstr "产品说明" -#: core/models.py:371 +#: core/models.py:569 msgid "part number for this product" msgstr "该产品的零件编号" -#: core/models.py:372 +#: core/models.py:570 msgid "part number" msgstr "部件编号" -#: core/models.py:451 +#: core/models.py:676 msgid "category of this attribute" msgstr "该属性的类别" -#: core/models.py:459 +#: core/models.py:684 msgid "group of this attribute" msgstr "该属性的组" -#: core/models.py:465 +#: core/models.py:690 msgid "string" msgstr "字符串" -#: core/models.py:466 +#: core/models.py:691 msgid "integer" msgstr "整数" -#: core/models.py:467 +#: core/models.py:692 msgid "float" msgstr "浮动" -#: core/models.py:468 +#: core/models.py:693 msgid "boolean" msgstr "布尔型" -#: core/models.py:469 +#: core/models.py:694 msgid "array" msgstr "阵列" -#: core/models.py:470 +#: core/models.py:695 msgid "object" msgstr "对象" -#: core/models.py:472 +#: core/models.py:697 msgid "type of the attribute's value" msgstr "属性值的类型" -#: core/models.py:473 +#: core/models.py:698 msgid "value type" msgstr "价值类型" -#: core/models.py:478 +#: core/models.py:703 msgid "name of this attribute" msgstr "该属性的名称" -#: core/models.py:479 +#: core/models.py:704 msgid "attribute's name" msgstr "属性名称" -#: core/models.py:487 core/models.py:499 +#: core/models.py:712 core/models.py:747 #: core/templates/digital_order_delivered_email.html:135 msgid "attribute" msgstr "属性" -#: core/models.py:498 +#: core/models.py:746 msgid "attribute of this value" msgstr "该值的属性" -#: core/models.py:506 +#: core/models.py:754 msgid "the specific product associated with this attribute's value" msgstr "与该属性值相关的特定产品" -#: core/models.py:507 core/models.py:546 core/models.py:617 -#: core/models.py:1361 +#: core/models.py:755 core/models.py:812 core/models.py:936 core/models.py:1768 msgid "associated product" msgstr "相关产品" -#: core/models.py:512 +#: core/models.py:760 msgid "the specific value for this attribute" msgstr "该属性的具体值" -#: core/models.py:528 +#: core/models.py:794 msgid "provide alternative text for the image for accessibility" msgstr "为图像提供替代文字,以便于访问" -#: core/models.py:529 +#: core/models.py:795 msgid "image alt text" msgstr "图片 alt 文本" -#: core/models.py:532 +#: core/models.py:798 msgid "upload the image file for this product" msgstr "上传该产品的图片文件" -#: core/models.py:533 core/models.py:558 +#: core/models.py:799 core/models.py:824 msgid "product image" msgstr "产品图片" -#: core/models.py:539 +#: core/models.py:805 msgid "determines the order in which images are displayed" msgstr "确定图像的显示顺序" -#: core/models.py:540 +#: core/models.py:806 msgid "display priority" msgstr "显示优先级" -#: core/models.py:545 +#: core/models.py:811 msgid "the product that this image represents" msgstr "该图片所代表的产品" -#: core/models.py:559 +#: core/models.py:825 msgid "product images" msgstr "产品图片" -#: core/models.py:567 +#: core/models.py:866 msgid "percentage discount for the selected products" msgstr "所选产品的折扣百分比" -#: core/models.py:568 +#: core/models.py:867 msgid "discount percentage" msgstr "折扣百分比" -#: core/models.py:573 +#: core/models.py:872 msgid "provide a unique name for this promotion" msgstr "为该促销活动提供一个独特的名称" -#: core/models.py:574 +#: core/models.py:873 msgid "promotion name" msgstr "推广名称" -#: core/models.py:580 +#: core/models.py:879 msgid "promotion description" msgstr "促销说明" -#: core/models.py:585 +#: core/models.py:884 msgid "select which products are included in this promotion" msgstr "选择促销活动包括哪些产品" -#: core/models.py:586 +#: core/models.py:885 msgid "included products" msgstr "包括产品" -#: core/models.py:590 +#: core/models.py:889 msgid "promotion" msgstr "促销活动" -#: core/models.py:605 +#: core/models.py:924 msgid "the vendor supplying this product stock" msgstr "提供该产品库存的供应商" -#: core/models.py:606 +#: core/models.py:925 msgid "associated vendor" msgstr "相关供应商" -#: core/models.py:610 +#: core/models.py:929 msgid "final price to the customer after markups" msgstr "加价后给客户的最终价格" -#: core/models.py:611 +#: core/models.py:930 msgid "selling price" msgstr "销售价格" -#: core/models.py:616 +#: core/models.py:935 msgid "the product associated with this stock entry" msgstr "与该库存条目相关的产品" -#: core/models.py:624 +#: core/models.py:943 msgid "the price paid to the vendor for this product" msgstr "为该产品支付给供应商的价格" -#: core/models.py:625 +#: core/models.py:944 msgid "vendor purchase price" msgstr "供应商购买价格" -#: core/models.py:629 +#: core/models.py:948 msgid "available quantity of the product in stock" msgstr "产品的可用库存量" -#: core/models.py:630 +#: core/models.py:949 msgid "quantity in stock" msgstr "库存数量" -#: core/models.py:634 +#: core/models.py:953 msgid "vendor-assigned SKU for identifying the product" msgstr "供应商指定的 SKU,用于识别产品" -#: core/models.py:635 +#: core/models.py:954 msgid "vendor sku" msgstr "供应商 SKU" -#: core/models.py:641 +#: core/models.py:960 msgid "digital file associated with this stock if applicable" msgstr "与该库存相关的数字文件(如适用" -#: core/models.py:642 +#: core/models.py:961 msgid "digital file" msgstr "数字文件" -#: core/models.py:651 +#: core/models.py:970 msgid "stock entries" msgstr "库存条目" -#: core/models.py:660 +#: core/models.py:989 msgid "products that the user has marked as wanted" msgstr "用户标记为想要的产品" -#: core/models.py:668 +#: core/models.py:997 msgid "user who owns this wishlist" msgstr "拥有此愿望清单的用户" -#: core/models.py:669 +#: core/models.py:998 msgid "wishlist owner" msgstr "心愿单所有者" -#: core/models.py:677 +#: core/models.py:1006 msgid "wishlist" msgstr "愿望清单" -#: core/models.py:688 core/models.py:700 core/models.py:1049 -#: core/models.py:1079 core/models.py:1109 +#: core/models.py:1017 core/models.py:1029 core/models.py:1468 +#: core/models.py:1496 core/models.py:1520 #, python-brace-format msgid "{name} does not exist: {product_uuid}" msgstr "{name} 不存在:{product_uuid} 不存在" -#: core/models.py:724 +#: core/models.py:1071 msgid "documentary" msgstr "纪录片" -#: core/models.py:725 +#: core/models.py:1072 msgid "documentaries" msgstr "纪录片" -#: core/models.py:735 +#: core/models.py:1082 msgid "unresolved" msgstr "未解决" -#: core/models.py:744 +#: core/models.py:1128 msgid "address line for the customer" msgstr "客户地址栏" -#: core/models.py:745 +#: core/models.py:1129 msgid "address line" msgstr "地址栏" -#: core/models.py:747 +#: core/models.py:1131 msgid "street" msgstr "街道" -#: core/models.py:748 +#: core/models.py:1132 msgid "district" msgstr "地区" -#: core/models.py:749 +#: core/models.py:1133 msgid "city" msgstr "城市" -#: core/models.py:750 +#: core/models.py:1134 msgid "region" msgstr "地区" -#: core/models.py:751 +#: core/models.py:1135 msgid "postal code" msgstr "邮政编码" -#: core/models.py:752 +#: core/models.py:1136 msgid "country" msgstr "国家" -#: core/models.py:759 +#: core/models.py:1143 msgid "geolocation point: (longitude, latitude)" msgstr "地理位置点(经度、纬度)" -#: core/models.py:762 +#: core/models.py:1146 msgid "full JSON response from geocoder for this address" msgstr "地理编码器对此地址的完整 JSON 响应" -#: core/models.py:767 +#: core/models.py:1151 msgid "stored JSON response from the geocoding service" msgstr "存储的来自地理编码服务的 JSON 响应" -#: core/models.py:775 +#: core/models.py:1159 msgid "address" msgstr "地址" -#: core/models.py:776 +#: core/models.py:1160 msgid "addresses" msgstr "地址" -#: core/models.py:793 +#: core/models.py:1205 msgid "unique code used by a user to redeem a discount" msgstr "用户用于兑换折扣的唯一代码" -#: core/models.py:794 +#: core/models.py:1206 msgid "promo code identifier" msgstr "促销代码标识符" -#: core/models.py:801 +#: core/models.py:1213 msgid "fixed discount amount applied if percent is not used" msgstr "如果不使用百分比,则使用固定折扣额" -#: core/models.py:802 +#: core/models.py:1214 msgid "fixed discount amount" msgstr "固定折扣额" -#: core/models.py:808 +#: core/models.py:1220 msgid "percentage discount applied if fixed amount is not used" msgstr "未使用固定金额时适用的折扣百分比" -#: core/models.py:809 +#: core/models.py:1221 msgid "percentage discount" msgstr "折扣百分比" -#: core/models.py:814 +#: core/models.py:1226 msgid "timestamp when the promocode expires" msgstr "促销代码过期的时间戳" -#: core/models.py:815 +#: core/models.py:1227 msgid "end validity time" msgstr "结束有效时间" -#: core/models.py:820 +#: core/models.py:1232 msgid "timestamp from which this promocode is valid" msgstr "该促销代码有效的时间戳" -#: core/models.py:821 +#: core/models.py:1233 msgid "start validity time" msgstr "开始有效时间" -#: core/models.py:826 +#: core/models.py:1238 msgid "timestamp when the promocode was used, blank if not used yet" msgstr "使用促销代码的时间戳,如果尚未使用,则留空" -#: core/models.py:827 +#: core/models.py:1239 msgid "usage timestamp" msgstr "使用时间戳" -#: core/models.py:832 +#: core/models.py:1244 msgid "user assigned to this promocode if applicable" msgstr "分配给此促销代码的用户(如适用" -#: core/models.py:833 +#: core/models.py:1245 msgid "assigned user" msgstr "指定用户" -#: core/models.py:840 +#: core/models.py:1252 msgid "promo code" msgstr "促销代码" -#: core/models.py:841 +#: core/models.py:1253 msgid "promo codes" msgstr "促销代码" -#: core/models.py:849 +#: core/models.py:1260 msgid "" "only one type of discount should be defined (amount or percent), but not " "both or neither." -msgstr "只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" +msgstr "" +"只能定义一种折扣类型(金额或百分比),而不能同时定义两种类型或两者都不定义。" -#: core/models.py:865 +#: core/models.py:1275 msgid "promocode already used" msgstr "促销代码已被使用" -#: core/models.py:882 +#: core/models.py:1288 #, python-brace-format msgid "invalid discount type for promocode {self.uuid}" msgstr "促销代码 {self.uuid} 的折扣类型无效" -#: core/models.py:898 +#: core/models.py:1324 msgid "the billing address used for this order" msgstr "该订单使用的账单地址" -#: core/models.py:906 +#: core/models.py:1332 msgid "optional promo code applied to this order" msgstr "此订单可选择使用促销代码" -#: core/models.py:907 +#: core/models.py:1333 msgid "applied promo code" msgstr "应用促销代码" -#: core/models.py:915 +#: core/models.py:1341 msgid "the shipping address used for this order" msgstr "该订单使用的送货地址" -#: core/models.py:916 +#: core/models.py:1342 msgid "shipping address" msgstr "送货地址" -#: core/models.py:922 +#: core/models.py:1348 msgid "current status of the order in its lifecycle" msgstr "订单在其生命周期中的当前状态" -#: core/models.py:923 +#: core/models.py:1349 msgid "order status" msgstr "订单状态" -#: core/models.py:928 core/models.py:1338 +#: core/models.py:1354 core/models.py:1745 msgid "json structure of notifications to display to users" msgstr "向用户显示的通知的 JSON 结构,在管理用户界面中使用表格视图" -#: core/models.py:934 +#: core/models.py:1360 msgid "json representation of order attributes for this order" msgstr "该订单属性的 JSON 表示形式" -#: core/models.py:940 +#: core/models.py:1366 msgid "the user who placed the order" msgstr "下订单的用户" -#: core/models.py:941 +#: core/models.py:1367 msgid "user" msgstr "用户" -#: core/models.py:947 +#: core/models.py:1373 msgid "the timestamp when the order was finalized" msgstr "订单确定的时间戳" -#: core/models.py:948 +#: core/models.py:1374 msgid "buy time" msgstr "购买时间" -#: core/models.py:955 +#: core/models.py:1381 msgid "a human-readable identifier for the order" msgstr "订单的人工可读标识符" -#: core/models.py:956 +#: core/models.py:1382 msgid "human readable id" msgstr "人类可读 ID" -#: core/models.py:962 +#: core/models.py:1388 msgid "order" msgstr "订购" -#: core/models.py:977 +#: core/models.py:1403 msgid "a user must have only one pending order at a time" msgstr "用户每次只能有一个挂单!" -#: core/models.py:1013 +#: core/models.py:1437 msgid "you cannot add products to an order that is not a pending one" msgstr "您不能向非待处理订单添加产品" -#: core/models.py:1019 +#: core/models.py:1442 msgid "you cannot add inactive products to order" msgstr "您不能在订单中添加非活动产品" -#: core/models.py:1039 +#: core/models.py:1459 msgid "you cannot add more products than available in stock" msgstr "添加的产品数量不能超过现有库存" -#: core/models.py:1062 core/models.py:1090 core/models.py:1100 +#: core/models.py:1480 core/models.py:1504 core/models.py:1512 msgid "you cannot remove products from an order that is not a pending one" msgstr "您不能从非待处理订单中删除产品" -#: core/models.py:1085 +#: core/models.py:1500 #, python-brace-format msgid "{name} does not exist with query <{query}>" msgstr "查询 <{query}> 时 {name} 不存在" -#: core/models.py:1123 +#: core/models.py:1531 msgid "promocode does not exist" msgstr "促销代码不存在" -#: core/models.py:1134 +#: core/models.py:1540 msgid "you can only buy physical products with shipping address specified" msgstr "您只能购买指定送货地址的实物产品!" -#: core/models.py:1155 +#: core/models.py:1559 msgid "address does not exist" msgstr "地址不存在" -#: core/models.py:1167 core/models.py:1220 +#: core/models.py:1570 core/models.py:1613 msgid "you can not buy at this moment, please try again in a few minutes" msgstr "您现在无法购买,请稍后再试。" -#: core/models.py:1173 +#: core/models.py:1573 msgid "invalid force value" msgstr "力值无效" -#: core/models.py:1178 core/models.py:1224 +#: core/models.py:1578 core/models.py:1616 msgid "you cannot purchase an empty order!" msgstr "您不能购买空单!" -#: core/models.py:1196 +#: core/models.py:1593 msgid "insufficient funds to complete the order" msgstr "资金不足,无法完成订单" -#: core/models.py:1233 +#: core/models.py:1625 msgid "" "you cannot buy without registration, please provide the following " "information: customer name, customer email, customer phone number" msgstr "未经注册不能购买,请提供以下信息:客户姓名、客户电子邮件、客户电话号码" -#: core/models.py:1244 +#: core/models.py:1634 #, python-brace-format msgid "" "invalid payment method: {payment_method} from {available_payment_methods}" msgstr "付款方式无效:来自 {available_payment_methods} 的 {payment_method} !" -#: core/models.py:1326 +#: core/models.py:1733 msgid "the price paid by the customer for this product at purchase time" msgstr "客户购买该产品时支付的价格" -#: core/models.py:1327 +#: core/models.py:1734 msgid "purchase price at order time" msgstr "订购时的购买价格" -#: core/models.py:1332 +#: core/models.py:1739 msgid "internal comments for admins about this ordered product" msgstr "管理员对该订购产品的内部评论" -#: core/models.py:1333 +#: core/models.py:1740 msgid "internal comments" msgstr "内部意见" -#: core/models.py:1339 +#: core/models.py:1746 msgid "user notifications" msgstr "用户通知" -#: core/models.py:1344 +#: core/models.py:1751 msgid "json representation of this item's attributes" msgstr "该项属性的 JSON 表示形式" -#: core/models.py:1345 +#: core/models.py:1752 msgid "ordered product attributes" msgstr "有序的产品属性" -#: core/models.py:1350 +#: core/models.py:1757 msgid "reference to the parent order that contains this product" msgstr "对包含该产品的父订单的引用" -#: core/models.py:1351 +#: core/models.py:1758 msgid "parent order" msgstr "父顺序" -#: core/models.py:1360 +#: core/models.py:1767 msgid "the specific product associated with this order line" msgstr "与该订单项目相关的具体产品" -#: core/models.py:1367 +#: core/models.py:1774 msgid "quantity of this specific product in the order" msgstr "订单中该特定产品的数量" -#: core/models.py:1368 +#: core/models.py:1775 msgid "product quantity" msgstr "产品数量" -#: core/models.py:1375 +#: core/models.py:1782 msgid "current status of this product in the order" msgstr "订单中该产品的当前状态" -#: core/models.py:1376 +#: core/models.py:1783 msgid "product line status" msgstr "产品系列状态" -#: core/models.py:1436 +#: core/models.py:1839 #, python-brace-format msgid "wrong action specified for feedback: {action}" msgstr "为反馈指定了错误的操作:{action}" -#: core/models.py:1447 +#: core/models.py:1847 msgid "you cannot feedback an order which is not received" msgstr "您不能反馈未收到的订单" -#: core/models.py:1459 +#: core/models.py:1882 msgid "download" msgstr "下载" -#: core/models.py:1460 +#: core/models.py:1883 msgid "downloads" msgstr "下载" -#: core/models.py:1469 +#: core/models.py:1891 msgid "you can not download a digital asset for a non-finished order" msgstr "您无法下载未完成订单的数字资产" -#: core/models.py:1481 +#: core/models.py:1921 msgid "user-provided comments about their experience with the product" msgstr "用户提供的产品使用体验评论" -#: core/models.py:1482 +#: core/models.py:1922 msgid "feedback comments" msgstr "反馈意见" -#: core/models.py:1490 -msgid "" -"references the specific product in an order that this feedback is about" +#: core/models.py:1929 +msgid "references the specific product in an order that this feedback is about" msgstr "引用该反馈意见涉及的订单中的具体产品" -#: core/models.py:1492 +#: core/models.py:1930 msgid "related order product" msgstr "相关订购产品" -#: core/models.py:1497 +#: core/models.py:1935 msgid "user-assigned rating for the product" msgstr "用户对产品的评分" -#: core/models.py:1498 +#: core/models.py:1936 msgid "product rating" msgstr "产品评级" -#: core/models.py:1506 +#: core/models.py:1944 msgid "feedback" msgstr "反馈意见" @@ -2040,9 +2049,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!我们很高兴地通知您,我们已将您的订单付诸实施。以下是您的订单详情:" +msgstr "" +"感谢您的订单 #%(order.pk)s!我们很高兴地通知您,我们已将您的订单付诸实施。以" +"下是您的订单详情:" #: core/templates/digital_order_created_email.html:112 #: core/templates/digital_order_delivered_email.html:111 @@ -2065,7 +2077,8 @@ msgstr "总价" msgid "" "if you have any questions, feel free to contact our support at\n" " %(config.EMAIL_HOST_USER)s." -msgstr "如果您有任何问题,请随时通过 %(config.EMAIL_HOST_USER)s 联系我们的支持人员。" +msgstr "" +"如果您有任何问题,请随时通过 %(config.EMAIL_HOST_USER)s 联系我们的支持人员。" #: core/templates/digital_order_created_email.html:133 #, python-format @@ -2125,7 +2138,8 @@ msgstr "钥匙" #: core/templates/shipped_order_created_email.html:101 #: core/templates/shipped_order_delivered_email.html:101 msgid "" -"thank you for your order! we are pleased to confirm your purchase. below are\n" +"thank you for your order! we are pleased to confirm your purchase. below " +"are\n" " the details of your order:" msgstr "感谢您的订购!我们很高兴确认您的购买。以下是您的订单详情:" diff --git a/core/management/commands/__init__.py b/core/management/commands/__init__.py index e69de29b..524885a7 100644 --- a/core/management/commands/__init__.py +++ b/core/management/commands/__init__.py @@ -0,0 +1,7 @@ +from django.conf import settings + + +class RootDirectory: + def __init__(self): + self.label = "root" + self.path = settings.BASE_DIR / "evibes" diff --git a/core/management/commands/check_translated.py b/core/management/commands/check_translated.py index d32dcc14..e0d93830 100644 --- a/core/management/commands/check_translated.py +++ b/core/management/commands/check_translated.py @@ -7,6 +7,8 @@ import polib from django.apps import apps from django.core.management.base import BaseCommand, CommandError +from core.management.commands import RootDirectory + # Patterns to identify placeholders PLACEHOLDER_REGEXES = [ re.compile(r"\{[^}]+"), # {name}, {type(instance)!s}, etc. @@ -94,7 +96,10 @@ class Command(BaseCommand): apps_to_scan: set[str] = set(options["target_apps"]) root_path: str = options.get("root_path") or "/app/" - for app_conf in apps.get_app_configs(): + configs = list(apps.get_app_configs()) + configs.append(RootDirectory()) + + for app_conf in configs: if app_conf.label not in apps_to_scan: continue diff --git a/core/management/commands/deepl_translate.py b/core/management/commands/deepl_translate.py index 765a03a5..7825f6b5 100644 --- a/core/management/commands/deepl_translate.py +++ b/core/management/commands/deepl_translate.py @@ -5,8 +5,11 @@ from tempfile import NamedTemporaryFile import polib import requests from django.apps import apps +from django.conf import settings from django.core.management.base import BaseCommand, CommandError +from core.management.commands import RootDirectory + # Mapping from Django locale codes to DeepL API codes DEEPL_TARGET_LANGUAGES_MAPPING = { "en-gb": "EN-GB", @@ -135,7 +138,10 @@ class Command(BaseCommand): self.stdout.write(self.style.MIGRATE_HEADING(f"→ Translating into {target_lang}")) - for app_conf in apps.get_app_configs(): + configs = list(apps.get_app_configs()) + configs.append(RootDirectory()) + + for app_conf in configs: if app_conf.label not in target_apps: continue diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.mo b/evibes/locale/ar_AR/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..2cddb2b52618c26f8ed8280481d95e5eefe10eef 100644 GIT binary patch literal 10337 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 delta 71 zcmaDD@SMrwo)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DKvoB? diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.po b/evibes/locale/ar_AR/LC_MESSAGES/django.po index 9a7d8f60..9a64d005 100644 --- a/evibes/locale/ar_AR/LC_MESSAGES/django.po +++ b/evibes/locale/ar_AR/LC_MESSAGES/django.po @@ -1,201 +1,236 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: ar-ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "اسم المشروع" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "اسم نطاق الواجهة الأمامية" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "اسم النطاق الأساسي" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "اسم الشركة" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "عنوان الشركة" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "رقم هاتف الشركة" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "مضيف SMTP" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "منفذ SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "استخدام TLS (حدد 0 ل لا و1 لنعم)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "استخدام SSL (حدد 0 ل لا و1 لنعم)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "اسم مستخدم SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "كلمة مرور SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "عنوان مرسل البريد الإلكتروني" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "عنوان URL لبوابة الدفع" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "الرمز المميز لبوابة الدفع" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "الحد الأدنى لمبلغ بوابة الدفع" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "الحد الأقصى لمبلغ بوابة الدفع" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "مفتاح API لسعر الصرف" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "عنوان URL لواجهة برمجة تطبيقات OpenStreetMap Nominatim" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "مفتاح واجهة برمجة تطبيقات OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" -msgstr "" +msgstr "مفتاح API المجرد، إذا كان فارغًا - لا توجد ميزات مجردة متوفرة" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "وكيل HTTP" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "تعطيل وظيفة الشراء" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "كيان لتخزين بيانات الإعلانات" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "كيان لتخزين بيانات التحليلات" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"مرحبًا بك في _PH_0_____} وثائق واجهة برمجة تطبيقات B2B.\n" +"\n" +"إن {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} صُممت واجهة برمجة تطبيقات B2B لتوفير تكامل سلس للتجار الذين يبيعون مجموعة كبيرة من الإلكترونيات. من خلال واجهة برمجة التطبيقات هذه، يمكن للتجار الشركاء إدارة المنتجات والطلبات والمخزون بسهولة، مع الوصول إلى مستويات المخزون في الوقت الفعلي.\n" +"\n" +"## الميزات الرئيسية\n" +"- ** إدارة المنتجات:** إنشاء قوائم منتجاتك وتحديثها وإدارتها بسهولة مع مواصفات مفصلة.\n" +"- **معالجة الطلبات:** التعامل مع الطلبات المجمعة بكفاءة مع عمليات مبسطة للتجار.\n" +"- **إدارة المخزون:** تتبّع مستويات المخزون في الوقت الفعلي، مما يضمن سلاسة التنفيذ.\n" +"- **معاملات آمنة:** معاملات آمنة ومشفرة لحماية المعلومات التجارية الحساسة.\n" +"- ** دعم العملات المتعددة:** وسّع نطاق وصولك إلى السوق من خلال المعاملات متعددة العملات.\n" +"- ** إشعارات في الوقت الفعلي:** ابقَ على اطلاع دائم بالتنبيهات الفورية بشأن تغييرات المخزون وحالات الطلبات.\n" +"\n" +"## المصادقة\n" +"- تتم المصادقة عبر رمز التاجر المميز الخاص بك. قم بتضمين الرمز المميز في رأس \"X-EVIBES-B2B-AUTH\" لطلباتك بصيغة \"حامل الرمز المميز \".\n" +"\n" +"## I18N\n" +"- قم بتطبيق رأس \"قبول اللغة\" لاستخدام لغة غير افتراضية. تتوفر قائمة بجميع اللغات على '/التطبيق/اللغات/'.\n" +"\n" +"## الإصدار\n" +"إصدار API الحالي: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} وثائق واجهة برمجة تطبيقات المنصة.\n" +"\n" +"إن {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} واجهة برمجة التطبيقات هي المحور المركزي لإدارة قوائم المنتجات ومراقبة الطلبات والوصول إلى تحليلات متجر الإلكترونيات الخاص بك. وهي توفر نقاط نهاية RESTful لإدارة عمليات الواجهة الخلفية لمتجرك وتتضمن كلاً من خيارات REST و GraphQL.\n" +"\n" +"## الميزات الرئيسية\n" +"- ** كتالوج المنتجات:** إدارة تفاصيل المنتج والتسعير والتوافر.\n" +"- **إدارة الطلبات:** الوصول إلى معلومات الطلبات التفصيلية ومعالجة طلبات العملاء بكفاءة.\n" +"- **أدوار المستخدم والأذونات:** تعيين أدوار المستخدم والأذونات للإدارة الداخلية.\n" +"- **التكاملات المخصصة:** قم بتوصيل نظامك بالمنصات الخارجية من خلال واجهات برمجة التطبيقات القوية.\n" +"- **تقارير مفصلة:** إنشاء تقارير شاملة عن الطلبات وأداء المبيعات وبيانات المنتجات.\n" +"- ** بيانات في الوقت الحقيقي:** احصل على تحديثات مباشرة عن المخزون والتسعير وحالات الطلبات.\n" +"\n" +"## المصادقة\n" +"- تتم المصادقة عبر رموز JWT المميزة. قم بتضمين الرمز المميز في رأس \"X-EVIBES-AUTH\" لطلباتك بصيغة \"حامل <رمزك المميز>\".\n" +"- عمر رمز الوصول الرمزي هو {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- عمر الرمز المميز للتحديث هو {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ساعة.\n" +"- يتم إبطال رموز التحديث تلقائيًا بعد الاستخدام.\n" +"\n" +"## I18N\n" +"- قم بتطبيق رأس \"قبول اللغة\" لاستخدام لغة غير افتراضية. تتوفر قائمة بجميع اللغات في '/التطبيق/اللغات/'.\n" +"\n" +"## الإصدار\n" +"إصدار API الحالي: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "التوثيق" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "واجهة المتجر" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "الدعم" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "مستندات GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "مستندات النظام الأساسي REST" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "مستندات B2B REST" diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.mo b/evibes/locale/cs_CZ/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..c0d4f73f4737f97bc3bdc8c23f554039f8f0303b 100644 GIT binary patch literal 8950 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 DLnjBg diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.po b/evibes/locale/cs_CZ/LC_MESSAGES/django.po index 9a7d8f60..26a27fce 100644 --- a/evibes/locale/cs_CZ/LC_MESSAGES/django.po +++ b/evibes/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,201 +1,238 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: cs-cz\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Název projektu" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Název domény frontendu" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Název základní domény" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Název společnosti" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Adresa společnosti" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Telefonní číslo společnosti" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP host" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "Port SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Použít TLS (zadejte 0 pro Ne a 1 pro Ano)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Použít SSL (zadejte 0 pro Ne a 1 pro Ano)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Uživatelské jméno SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Heslo SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Adresa odesílatele e-mailů" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "Adresa URL platební brány" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Token platební brány" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Minimální částka platební brány" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Maximální částka platební brány" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Klíč API pro směnný kurz" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL rozhraní API OpenStreetMap Nominatim" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "Klíč API OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Abstraktní klíč API, pokud je prázdný - nejsou poskytovány žádné abstraktní " +"funkce" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "Proxy server HTTP" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Zakázat funkci nákupu" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Subjekt pro ukládání dat inzerátů" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Subjekt pro ukládání analytických dat" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Vítejte v {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API dokumentaci.\n" +"\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API je navrženo tak, aby poskytovalo bezproblémovou integraci pro obchodníky prodávající širokou škálu elektroniky. Prostřednictvím tohoto rozhraní API mohou partnerští obchodníci snadno spravovat produkty, objednávky a skladové zásoby, přičemž mají přístup k úrovni zásob v reálném čase.\n" +"\n" +"## Klíčové funkce\n" +"- **Správa produktů:** Snadné vytváření, aktualizace a správa výpisů produktů s podrobnými specifikacemi.\n" +"- **Zpracování objednávek:** Efektivní zpracování hromadných objednávek se zjednodušenými operacemi pro obchodníky.\n" +"- **Správa zásob:** Sledujte stav zásob v reálném čase a zajistěte hladké plnění.\n" +"- **Zabezpečené transakce:** Zabezpečené a šifrované transakce chránící citlivé obchodní informace.\n" +"- **Podpora více měn:** Rozšiřte svůj dosah na trhu díky transakcím ve více měnách.\n" +"- **Upozornění v reálném čase:** Buďte informováni pomocí okamžitých upozornění na změny stavu zásob a objednávek.\n" +"\n" +"## Ověřování\n" +"- Ověřování probíhá prostřednictvím vašeho obchodního tokenu. Token zahrňte do hlavičky `X-EVIBES-B2B-AUTH` svých požadavků ve formátu `Bearer `.\n" +"\n" +"## I18N\n" +"- Použijte hlavičku `Accept-Language` pro použití jiného než výchozího jazyka. Seznam všech jazyků je k dispozici na adrese `/app/languages/`.\n" +"\n" +"## Verze\n" +"Aktuální verze API: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Vítejte v {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Dokumentace API platformy.\n" +"\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API je centrálním centrem pro správu výpisů produktů, sledování objednávek a přístup k analytickým údajům vašeho obchodu s elektronikou. Poskytuje koncové body RESTful pro správu backendových operací vašeho obchodu a obsahuje možnosti REST i GraphQL.\n" +"\n" +"## Klíčové funkce\n" +"- **Katalog produktů:** Správa podrobností o produktech, cen a dostupnosti.\n" +"- **Správa objednávek:** Přístup k podrobným informacím o objednávkách a efektivní zpracování požadavků zákazníků.\n" +"- **Úživatelské role a oprávnění:** Nastavení uživatelských rolí a oprávnění pro interní správu.\n" +"- **Vlastní integrace:** Propojte svůj systém s externími platformami prostřednictvím výkonných rozhraní API.\n" +"- **Podrobné reporty:** Generování komplexních reportů o objednávkách, prodejních výsledcích a produktových datech.\n" +"- **Data v reálném čase:** Získávejte živé aktualizace o stavu zásob, cenách a objednávkách.\n" +"\n" +"## Ověřování\n" +"- Ověřování probíhá prostřednictvím tokenů JWT. Token zahrňte do hlavičky `X-EVIBES-AUTH` svých požadavků ve formátu `Bearer `.\n" +"- Životnost přístupového tokenu je {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600}. {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Životnost tokenu pro obnovení je {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hodin.\n" +"- Tokeny pro obnovení jsou po použití automaticky zneplatněny.\n" +"\n" +"## I18N\n" +"- Použijte hlavičku `Accept-Language` pro použití jiného než výchozího jazyka. Seznam všech jazyků je k dispozici na adrese `/app/languages/`.\n" +"\n" +"## Verze\n" +"Aktuální verze API: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Dokumentace" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Výloha" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Podpora" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Dokumenty GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Dokumenty platformy REST" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "Dokumenty B2B REST" diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.mo b/evibes/locale/da_DK/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..364c7a4e2665f2b6090e8c625bb38c97ab8b6b9d 100644 GIT binary patch literal 8623 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 Ihr2HO58|Nyw*UYD delta 71 zcmZ4Q{G7?+o)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DF6sww diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.po b/evibes/locale/da_DK/LC_MESSAGES/django.po index 9a7d8f60..3d6cbcb0 100644 --- a/evibes/locale/da_DK/LC_MESSAGES/django.po +++ b/evibes/locale/da_DK/LC_MESSAGES/django.po @@ -1,201 +1,237 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: da-dk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Projektets navn" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Frontend-domænenavn" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Basisdomænenavn" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Virksomhedens navn" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Virksomhedens adresse" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Virksomhedens telefonnummer" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP-vært" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTP-port" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Brug TLS (Angiv 0 for Nej og 1 for Ja)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Brug SSL (Angiv 0 for Nej og 1 for Ja)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "SMTP-brugernavn" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "SMTP-adgangskode" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Adressen på e-mailens afsender" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL til betalingsgateway" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Token til betalingsgateway" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Minimumsbeløb for betalingsgateway" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Betalingsgatewayens maksimale beløb" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "API-nøgle til valutakurs" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI API-nøgle" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Abstrakt API-nøgle, hvis den er tom - ingen abstrakte funktioner leveret" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP-proxy" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Deaktiver købsfunktionalitet" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "En enhed til lagring af annonceringsdata" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "En enhed til lagring af analysedata" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Velkommen til {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API-dokumentation.\n" +"\n" +"Den {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API er designet til at give problemfri integration til forhandlere, der sælger en bred vifte af elektronik. Gennem denne API kan partnere nemt administrere produkter, ordrer og lagerbeholdning, samtidig med at de får adgang til lagerniveauer i realtid.\n" +"\n" +"## Nøglefunktioner\n" +"- Produktstyring:** Opret, opdater og administrer nemt dine produktfortegnelser med detaljerede specifikationer.\n" +"- Ordrebehandling: ** Håndter bulkordrer effektivt med strømlinede operationer for købmænd.\n" +"- Lagerstyring: ** Hold styr på lagerbeholdningen i realtid, og sørg for en problemfri levering.\n" +"- Sikre transaktioner:** Sikre og krypterede transaktioner for at beskytte følsomme forretningsoplysninger.\n" +"- Understøttelse af flere valutaer:** Udvid din markedsdækning med transaktioner i flere valutaer.\n" +"- Meddelelser i realtid:** Hold dig opdateret med øjeblikkelige advarsler om lagerændringer og ordrestatus.\n" +"\n" +"## Godkendelse\n" +"- Autentificering håndteres via dit merchant token. Inkluder tokenet i `X-EVIBES-B2B-AUTH`-headeren i dine anmodninger i formatet `Bearer `.\n" +"\n" +"## I18N\n" +"- Anvend en `Accept-Language`-header for at bruge et andet sprog end standardsproget. En liste over alle sprog er tilgængelig på `/app/languages/`.\n" +"\n" +"## Version\n" +"Nuværende API-version: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Velkommen til {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API-dokumentation.\n" +"\n" +"Den {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API er det centrale knudepunkt for administration af produktlister, overvågning af ordrer og adgang til analyser for din elektronikbutik. Det giver RESTful endpoints til styring af din butiks backend-operationer og inkluderer både REST- og GraphQL-muligheder.\n" +"\n" +"## Nøglefunktioner\n" +"- Produktkatalog:** Administrer produktdetaljer, priser og tilgængelighed.\n" +"- Ordrehåndtering:** Få adgang til detaljerede ordreoplysninger, og behandl kundeanmodninger effektivt.\n" +"- Brugerroller og -tilladelser:** Indstil brugerroller og -tilladelser til intern administration.\n" +"- Brugerdefinerede integrationer:** Forbind dit system med eksterne platforme via effektive API'er.\n" +"- Detaljeret rapportering:** Generer omfattende rapporter om ordrer, salgsresultater og produktdata.\n" +"- Realtidsdata:** Få liveopdateringer om lagerbeholdning, priser og ordrestatus.\n" +"\n" +"## Godkendelse\n" +"- Autentificering håndteres via JWT-tokens. Inkluder tokenet i `X-EVIBES-AUTH`-headeren i dine anmodninger i formatet `Bearer `.\n" +"- Adgangstokenets levetid er {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600}. {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh-tokens levetid er {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} timer.\n" +"- Refresh-tokens bliver automatisk ugyldiggjort efter brug.\n" +"\n" +"## I18N\n" +"- Anvend en `Accept-Language` header for at bruge et andet sprog end standardsproget. En liste over alle sprog er tilgængelig på `/app/languages/`.\n" +"\n" +"## Version\n" +"Nuværende API-version: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Dokumentation" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Butiksfacade" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Støtte" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "GraphQL-dokumenter" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Platform REST-dokumenter" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST-dokumenter" diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.mo b/evibes/locale/de_DE/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..4e041aba06ad573957af6faae00003a68d9c1a9c 100644 GIT binary patch literal 9077 zcmds+NsJp=8OMutpxO5w9vL)BLRY5~M3m`Sz};~=J?V|MJ7Ez@%J#EexLjrGz3Ps8 z7{P%vNJvO*5(ffTE@OJE9ozwY#sa_`T^))%KNWp@%y=pUeRu0NIZO>YW<&!U?Z=mvWD2Al4(@Q?2df-9{1hzf#tL%#_9F!Wo{ z5c*T7@c%26t%8R>7zF$b-U$^s9)-$#>rl~03o80Jgo-?0hKgRl3YByH2#N^7&!M7^ z-$F$ne}*DT@EQ!szu-gs_Xu*(Lt=QobS=s-1qs z4zJ-Wa)>VGKO&>(6W4Sf(ShhuY%b>#UzT%=?4noPHh3A|>1W}ZPTJW}E1N0X*XrrD zo$W@mw!K!r&aX=w>q|XtPoCJ_+j*+K*1W!5+p3>9^_k_*KBHF8t*YAYhU#SPVyIIa z**Hs=78aT>XqVWijy7>G)g2LKlxGKVM=PVFVWN#uacXrhcRW-#%hgcl?S7P6!;&P4 z)1Hddp}dhtX-})Ht8}8}FfFqf`x}G-3k; z=oD>h7FCvabPkQu4pJO&(kvgt%l4Iyj9yfS{W#GoYPXS71j%)jgf>Q}#%Aq-O7wwF z44QfPVRc21)g>L-BG+aiRHskxdOm8)u@yb8oIb7Uk%^PBYO|GvLow<&Dk7Bfjk6-J zgj7jvES!y(s-ta$L>*;Dx*d1pw$mB{2)`XUje=__t#G@{zMP;{B!lv_N_TlLMjE7W zM>Q5%hA5hSvyt|eFvm^dIc!XIbo@+Lv>qv&M`#4=%&P{q&Xl&ObZUxR6lsQ8hL*cU z(v6cubmKWRbQ}GtCZ;w~TinjbG0NMbB%QYN@yLoV%`GY&%ins+fA zYgoFm=xVD-Y#go?dCq=g)hI@zEcf=gITAL`2*W5JXe$S3_r0!$?mcAm@6C(g53na5 z(i9Kb&g{%W?hrN_m-g=X-Qv_(99>0;&T;oFEp;dE-_yqVrSnnl<5)(Qu2w6E=hT+w z$N0x@C<1{UFnmWH#8G*cGOEzjK&MM;BW))IK_$rGZi%Vn;>IV#`qhoqdLsk|!rFfG z@(tD3k@yzIb$ZG5=L>C+xO~McSKV0EQO>f*WzluF>615naBQ5tuq|?qMtB{ec%w#4 zjcmBdK?{O%$^wAkoGQ)Iu%o*X>Q+g)W=YjtIEWZgl1%R-2C6zBFrt=3t5rA7M5ED} z>OFI&6yhqujz=wcvs(vo2maoQdfFfQ`qlbgV`FFgnT6nmxg?sIfU;3s|EwF%<^LQdr6?>=SxkSHg>3n=Wk4F7ZY_i%# z{C)6rEwWLP^(3S`3{4f_;SoR|Y3~t9`9wOIQ59y)%h?chfMLziktJgdoHR0c&io8x{?)h ztW;)&8APr**2M2LYdVNr%hFWP&l_TFtR8xh(KpMDMx|GZH~Ew~$_{ldM#am@ByzFJ zFnd}M5haSA*ERW+Jf)~7M!5!jjNohT);Qp*+{}PwMh@fjmbOW8?sR1?B-urG0_8>S zc_zfVZ0mEP+jg3j@35)2&Wl3Dr>-?U@KHnj2VnRBfDruiPUi78iM!g>62$k@jg76{ z&H8nO@>N-FZLQvDTyO4Nsc&E3+_+S4Zb*5yWHX%qy3y?{?U<9N)R{Bt{IZI>Af{Cp z>#O_gR7U{lN6s%VKck*LF^to~YIEWqOHTBGX>;NkvB#e7QnpY;Npipn4@NRCgky6T z6Cj&J9~FcVdASXskAa7SD2b&Y>ZquT+Y%%shyUFaQfpCMQOCGMK!La@X3)ct9jg$F zsp<1>SvXdB+X-r&4i+H@x*q%qyeJ(9wG;%lAejRR0bBw3s6!sJv7zpuoRA>8F^6DWc?A&rUy?JNWg3#8Q5WKs zwQE4WQH{o?I@xf&!B{Oj7un7n0H1XipVH=(TiD!e+_lgmmKR8#cq+1tM+j?4nP zd+ISMFX?;+*${VBEgd6U{`^|>kU$GBW`kKE0+biy7t-h-7W9q+EQc|5TVm-;hf32s zfdhS;WVqH`y`j33+qt?txg{+|u8s;t?J{|`m&9!12{SynLJBbld^?t>H8H=T+_Y0s8(r27!wpU zOsOhB8@VCNoD5y*+}QsxN`#XJkB}?|IE${TxBFHu!`YihMGw(MBG=kqj*5|` z+8YcxiR-mX{=Q=uK#>BbPPGU>>YsYT3qUND;%xM#T`KpIPM;OS z7yx%gSi&oEhj>1slN`AARYZ~owpMh>EIsg9OeV*7642WpNpFw#rVpIn*Yj-hT~2HB z$t}^8u#s|mSTd=#lF2Qx!ExhyW}+CXI8!RJWVWjNUaJl4-Qi7VycS+CP?OuG9n~fY zJa0{HLTah>J##X2-C|SY9Boc;JgcV`Ynd8M%l?Y#mhR_H6cLoP!1i`> z+a6V#&kx1dbIgS{#IQ6cIj%0w<{mkfAD04U4B6Is#x*%6n^pWOE#Z|ZPDMl0$6?(9 zIqE7JX^C^dO>Aj0BxV7(?tY;(M`cDA9iEqqh{~6IIqhPiL-(+WyO6#`AenDfGY02j z@-}`bXmi(n(4d zcs?sh>w>h>@K=)uR#bxrfuLiR<282}$5hbi9z%$VPej~K0Z+a6&c!QG2Z@_wru#Gl>O(4xr5; z;VfU>Yf$lGGKo|pZd&mG@`*sUoK$kz5imqD)anYYiB3mFI7VB!&N82GOg|efIqSD#Z5iv86Af~B z#|fwJDV-c;)lV}*YE3^KWn4Rpt9^`2ai_w z$tz%eHR3201xJaNQcu%C$1eCnsuaLuVd+H!kZ1Y=Mq>mCa|GDwQ4sKex5a zHp;Xjfkw45HQW_g15jm1R$S>hk95v(BSG#**f`h6;cHV@@ef+fFP4)WUp}*nABi0E zoi09coGDX7>T}7Q^CgSV52&aWi@Z*kSWq?mphOVV&q;VT4G4bwJm#_wZiszlA}p23 zv2lsd)Xd1{XC~7cz%ldgAuu7w6HL)_s9d@AqF7OCAyct*`md}`DP5+(DmzH8>{4Gn zpG(G@Oi{vp_m>4D2vq|ABJLyZGOLr|>p}m;K|E6n3V$XCj8gtHXm`_;3T`Eoa-#Qn zz`9R8o0=48I#I#v{E10Co7RA)SVWJwzJ8Ku#kb#RSY@P$Vfz zlA=-jQUav9Ps?BeS1s^gA3P;YrCN|`QA=^TKk7#X@kVWyPnpr_nDlrc?k z*Ptf^#TfLslF^N}q-o$Uwk-gOBrBu$T-8Gv1o`35UHWq4AGym;pQDX5&v*F4u*dQI zbkvuQ$&^DN6I`A=%jv8jM%26ak}XLb(ZCky9Hu==Afq9v14P-W jI=L>;=`s^zB00=9zU-0>lOnl(Dq?PQDv&|Z3wZ6HQmUvS delta 71 zcmezB_MFM$o)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DLna5f diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.po b/evibes/locale/de_DE/LC_MESSAGES/django.po index 9a7d8f60..6aa49e18 100644 --- a/evibes/locale/de_DE/LC_MESSAGES/django.po +++ b/evibes/locale/de_DE/LC_MESSAGES/django.po @@ -1,201 +1,237 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: de-de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Name des Projekts" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Frontend-Domain-Name" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Basis-Domainname" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Name des Unternehmens" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Anschrift des Unternehmens" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Telefonnummer des Unternehmens" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP-Host" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTP-Port" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "TLS verwenden (Geben Sie 0 für Nein und 1 für Ja an)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "SSL verwenden (Geben Sie 0 für Nein und 1 für Ja an)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "SMTP-Benutzername" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "SMTP-Kennwort" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Die Adresse des Absenders der E-Mail" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL des Zahlungsgateways" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Zahlungsgateway-Token" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Mindestbetrag für das Zahlungsgateway" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Höchstbetrag des Zahlungsgateways" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Wechselkurs-API-Schlüssel" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI API Key" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Abstrakter API-Schlüssel, falls leer - keine abstrakten Merkmale vorhanden" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP-Proxy" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Kauffunktionalität deaktivieren" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Eine Einheit zur Speicherung von Werbedaten" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Eine Einheit zur Speicherung von Analysedaten" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Willkommen bei der {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B-API-Dokumentation.\n" +"\n" +"Die {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API wurde entwickelt, um eine nahtlose Integration für Händler zu ermöglichen, die eine breite Palette von Elektronikprodukten verkaufen. Über diese API können Partnerhändler Produkte, Bestellungen und Bestände einfach verwalten und gleichzeitig auf Echtzeit-Bestände zugreifen.\n" +"\n" +"## Hauptmerkmale\n" +"- **Produktmanagement:** Einfaches Erstellen, Aktualisieren und Verwalten Ihrer Produktlisten mit detaillierten Spezifikationen.\n" +"- **Auftragsabwicklung:** Effiziente Abwicklung von Großaufträgen mit optimierten Abläufen für Händler.\n" +"- **Bestandsverwaltung:** Behalten Sie den Überblick über die Lagerbestände in Echtzeit, um eine reibungslose Abwicklung zu gewährleisten.\n" +"- **Sichere Transaktionen:** Sichere und verschlüsselte Transaktionen zum Schutz sensibler Geschäftsinformationen.\n" +"- **Mehrwährungsunterstützung:** Erweitern Sie Ihre Marktreichweite mit Transaktionen in mehreren Währungen.\n" +"- **Echtzeit-Benachrichtigungen:** Bleiben Sie mit sofortigen Benachrichtigungen über Bestandsänderungen und Auftragsstatus auf dem Laufenden.\n" +"\n" +"## Authentifizierung\n" +"- Die Authentifizierung erfolgt über Ihr Merchant Token. Fügen Sie das Token in den `X-EVIBES-B2B-AUTH`-Header Ihrer Anfragen im Format `Bearer ` ein.\n" +"\n" +"## I18N\n" +"- Wenden Sie einen `Accept-Language`-Header an, um eine nicht standardmäßige Sprache zu verwenden. Eine Liste aller Sprachen ist unter `/app/languages/` verfügbar.\n" +"\n" +"## Version\n" +"Aktuelle API-Version: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Willkommen bei der {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Plattform-API-Dokumentation.\n" +"\n" +"Die {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API ist der zentrale Knotenpunkt für die Verwaltung von Produktlisten, die Überwachung von Bestellungen und den Zugriff auf Analysen für Ihren Elektronikshop. Sie bietet RESTful-Endpunkte für die Verwaltung der Backend-Operationen Ihres Shops und umfasst sowohl REST- als auch GraphQL-Optionen.\n" +"\n" +"## Hauptmerkmale\n" +"- **Produktkatalog:** Verwalten Sie Produktdetails, Preise und Verfügbarkeit.\n" +"- **Bestellverwaltung:** Zugriff auf detaillierte Bestellinformationen und effiziente Bearbeitung von Kundenanfragen.\n" +"- **Benutzerrollen & Berechtigungen:** Legen Sie Benutzerrollen und Berechtigungen für die interne Verwaltung fest.\n" +"- **Benutzerdefinierte Integrationen:** Verbinden Sie Ihr System mit externen Plattformen über leistungsstarke APIs.\n" +"- **Detailliertes Reporting:** Erstellen Sie umfassende Berichte über Bestellungen, Verkaufsleistung und Produktdaten.\n" +"- **Echtzeitdaten:** Erhalten Sie Live-Updates zu Bestand, Preisen und Bestellstatus.\n" +"\n" +"## Authentifizierung\n" +"- Die Authentifizierung erfolgt über JWT-Tokens. Fügen Sie das Token in den `X-EVIBES-AUTH`-Header Ihrer Anfragen im Format `Bearer ` ein.\n" +"- Die Lebensdauer des Zugangstokens beträgt {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Die Lebensdauer von Auffrischungstoken beträgt {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} Stunden.\n" +"- Aktualisierungs-Token werden nach der Verwendung automatisch ungültig gemacht.\n" +"\n" +"## I18N\n" +"- Wenden Sie einen `Accept-Language`-Header an, um eine nicht standardmäßige Sprache zu verwenden. Eine Liste aller Sprachen ist unter `/app/languages/` verfügbar.\n" +"\n" +"## Version\n" +"Aktuelle API-Version: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Dokumentation" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Schaufenster" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Unterstützung" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "GraphQL Docs" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Plattform REST Docs" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST-Dokumente" diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.mo b/evibes/locale/en_GB/LC_MESSAGES/django.mo index 63f7d7fbbd35f6e801973f0147ec6178556bd0c3..13f04c142275adbadb768eb767f251d40005fa10 100644 GIT binary patch literal 8420 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 Ko%(-&r~WT-Uxdj3 delta 66 xcmaFjIEmTfo)F7a1|VPrVi_P-0b*t#)&XJ=umIu+prj>`2C0F8&6a{ui~t4z1`hxL diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.po b/evibes/locale/en_GB/LC_MESSAGES/django.po index 9c62dda9..b0f2d2d5 100644 --- a/evibes/locale/en_GB/LC_MESSAGES/django.po +++ b/evibes/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -19,184 +19,222 @@ msgstr "" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Name of the project" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Frontend domain name" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Base domain name" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Name of the company" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Address of the company" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Phone number of the company" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP host" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTP port" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Use TLS (Specify 0 for No and 1 for Yes)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Use SSL (Specify 0 for No and 1 for Yes)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "SMTP username" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "SMTP password" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "The address of the emails sender" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "Payment gateway URL" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Payment gateway token" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Payment gateway minimum amount" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Payment gateway maximum amount" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Exchange rate API key" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI API Key" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" -msgstr "" +msgstr "Abstract API Key, if empty - no Abstract features provided" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP Proxy" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Disable buy functionality" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "An entity for storing advertisiment data" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "An entity for storing analytics data" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"\n" +"## Key Features\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"\n" +"## Authentication\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"\n" +"## I18N\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"\n" +"## Version\n" +"Current API version: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"\n" +"## Key Features\n" +"- **Product Catalog:** Manage product details, pricing, and availability.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"\n" +"## Authentication\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Refresh tokens are automatically invalidated after usage.\n" +"\n" +"## I18N\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"\n" +"## Version\n" +"Current API version: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentation" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Storefront" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Support" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "GraphQL Docs" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Platform REST Docs" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST Docs" diff --git a/evibes/locale/en_US/LC_MESSAGES/django.mo b/evibes/locale/en_US/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..82034bbfae30c47d60cc31f5c76eff31327e9198 100644 GIT binary patch literal 8425 zcmeHMO^h5z6>dU+FhD}WUmyWqHh^riy*q0Z%Ng5&+41ap;@#O{rgsBEVYjxsW~Oof z(N#U(!C2zJIY>wZ5aI||jya%6+z>)S;(&xW0OG_6aX zJ@13S*MO&hzXE;&_;=uYfKNZ>dG7_D0e%>G0m%1vfgb>d!1n{Ez;^>*0oH&&0P=f3 z2EGsYn!{fLF}3#x;KzY~arYm^;E&;Y$zc=7^B(}80#1NW0KW}{O0hkj1hPGRAj{JL60i+qdkh_Z4aoL*1&Dv%58eIOftb?! zwZp#xdH%=9+T)Wzwnr1l_6UG1-pYB;<(nNJ#Sg-X@G|~9He$Ozg7d97=SS@&nS^;NN#~@;l5Vtix`UwEZMFCDYooKdGLrh#Qm?=B zV!IXWcbnVorPE)kzkHL{&#qIm*P$p6t5jxM=s3?-YPH}^%@Qk$q>4wGj98SS%qMXq zNlB3=QYnfvEk~tUgNAuYsVu{>$h5+cB#E;T3A)a2lp-5R%7-Kq8R|06;!v$nFfQ|I zG=_>;2vRRoAxfRe63ZP=6^e{fkqJxy0ir6@YMJsfk|j`N5u}(v)4ZHwEj=bFlw79k z<2aEd!Vq$@Af*(EuVdI$={&qfiJZtp!7|T2OIPKTHl)y1DOJs| z&QM#ZIGIw2sWeuoipU^~;N+X;RXG!ql2~c1tgKX#)B+MkqzW0v!#Ffng8;nV4r@bL z)k({%UBSH2;IK-rIc-S}@m>sRAcav?X~>eo(3m$br1gZl)fIMy&fG?~>U34gf^;ch z5qRgMX<*i4qb-xnR8_JeRhs9p@~}#VagwlY>of;5fX5ObaQ>|A)|yAQ|Ir<&K74%BhX1CvP8J&nX?^- z|41qmmnKGWAAzN$3$0n)o62mU?pnWsx z3kNniI&0^X3>DP2^Oe{Vgb3At~oefFPhJWqIaDawuSKO5B(gYMOLlF+`Hg z??VijYJ$WNhn%gN4pv1`tj^w3t4@eLBs(IiX5Fq0#ZBzJ2Hmhq@9(wygU(L(X3cx^ z{Mk!{W}7?!5@i~OdhD1GE-ytw6$Ok{X9nIeE} znj5E{AXN^-QX)q5jI9;*+k*hfN)zLor6|Uq-@<5<@%P}E%jvdr#6BTiyHwMlB3 z@>UMxfJ8BxGpx%>qPl<^Tq>NPRlCTp!sC995=Wn+o-ETCHDu0b zn!_Bgo9ApA5btb+@h(@z5?*pu;g}*@W@+T_ylNVXY~@+T>}MS@Ra&N&WaN>XsBlrq z(PT?zkzbc3I~7spipb?zh3QLXL>Q6nyeUynQKty~L{UnRk79l;%@{*mvoKTOGR4Xm zyJaCtoYBtJLKHi3J5gT7J-Y~Uou{=m(M&t9%D4H{dgs1a@x_+{OMK`d{sS_607MA> zvq5J0Hi?JQ^b*ML8-vbvZ>zlzp=?*yY_-~h!G5rFwcXv{>TI-w4!373I!EyDD;efl zq)wft)m1uIr+5g))O5MMzPpL;2n70>bM^X7y0MhTS*4{~y33HIF=$#X-DH3CAqag6dYFhL=7uODF+|uRNl+aAe@jU75X}|( z7*hz)ATF~TWLoGc`S2LcpATK*IOE&MYeo?~f+QGP@<-x{Z0a>LFt7%b8IoYaWs(;W z>X?od`VO=coMdk_aL)T?5I6dUg)ir!^40|cCxSmv)-#bx?{ch6Nj1Nh3Yj%KGXtB;0UBDVw?%;-4DpZfvXywZzvcDB)YxbQNw1?HyW71~ z9K~ssl1TF^(|5drDgWJLlR{o^oM&ibs`L<1e47vF?ZL6>2ivg3I9J*;zY3w$b#R=! z0ukF^Tr-Sk23(+FE{NxPR}b}u27@g+H86XFDb-DgbaO+%Yv$sMQk^yfgRQ~62f{OK zV!splu61gV?ULy1%K4SGdd(IIe_M^>$X~BU$`A4e)p|RAUrrE?=;FZcvO#C-XP@)y z=lr#ER6pN%?)gvG*Xs4!mQdOcxQ$0?%1g|?xzi_{>$}~ZJ-Uc(YS3&2pWE2&w{fS_ zUuo@Zzkt_l)944-w=`(0+1=c2Znp0^zJb*7D^=SDl^$!fwo4q4^u={Zxap!d$9LXD^Wb zdFfO}&s?Il(--ciy+}}6O z#rFJ;&z+0yIkq&5?K#@s#rAx$J^!En!aLu7GmS5{=h*ST(e^yR_h)hI7YT{)1PT9* PF2kP&7Tfjz{&xLeD|Uul delta 71 zcmaFq_?*e&o)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DK6D4C diff --git a/evibes/locale/en_US/LC_MESSAGES/django.po b/evibes/locale/en_US/LC_MESSAGES/django.po index 9a7d8f60..d42bd475 100644 --- a/evibes/locale/en_US/LC_MESSAGES/django.po +++ b/evibes/locale/en_US/LC_MESSAGES/django.po @@ -1,201 +1,236 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: en-us\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Name of the project" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Frontend domain name" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Base domain name" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Name of the company" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Address of the company" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Phone number of the company" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP host" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTP port" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Use TLS (Specify 0 for No and 1 for Yes)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Use SSL (Specify 0 for No and 1 for Yes)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "SMTP username" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "SMTP password" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "The address of the emails sender" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "Payment gateway URL" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Payment gateway token" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Payment gateway minimum amount" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Payment gateway maximum amount" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Exchange rate API key" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI API Key" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" -msgstr "" +msgstr "Abstract API Key, if empty - no Abstract features provided" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP Proxy" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Disable buy functionality" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "An entity for storing advertisiment data" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "An entity for storing analytics data" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" +"\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" +"\n" +"## Key Features\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" +"\n" +"## Authentication\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" +"\n" +"## I18N\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"\n" +"## Version\n" +"Current API version: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" +"\n" +"## Key Features\n" +"- **Product Catalog:** Manage product details, pricing, and availability.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" +"\n" +"## Authentication\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" +"- Refresh tokens are automatically invalidated after usage.\n" +"\n" +"## I18N\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" +"\n" +"## Version\n" +"Current API version: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentation" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Storefront" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Support" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "GraphQL Docs" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Platform REST Docs" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST Docs" diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.mo b/evibes/locale/es_ES/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..395816cf62eb0e20c3d052eccb6ffb3a73fb7c1e 100644 GIT binary patch literal 9223 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 delta 71 zcmZqoc+O;TPl#nI0}wC*u?!Ha05LNV>i{tbSOBpuP|^}egVeylWJ|%zlLdvM85sa2 CFb7Nk diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.po b/evibes/locale/es_ES/LC_MESSAGES/django.po index 9a7d8f60..3f2249d7 100644 --- a/evibes/locale/es_ES/LC_MESSAGES/django.po +++ b/evibes/locale/es_ES/LC_MESSAGES/django.po @@ -1,201 +1,238 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: es-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Nombre del proyecto" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Nombre de dominio frontend" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Nombre de dominio base" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Nombre de la empresa" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Dirección de la empresa" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Número de teléfono de la empresa" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "Host SMTP" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "Puerto SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Usar TLS (Especifique 0 para No y 1 para Sí)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Usar SSL (Especifique 0 para No y 1 para Sí)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Nombre de usuario SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Contraseña SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Dirección del remitente del correo electrónico" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL de la pasarela de pago" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Token de pasarela de pago" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Importe mínimo de la pasarela de pago" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Importe máximo de la pasarela de pago" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Clave API de tipo de cambio" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL de la API Nominatim de OpenStreetMap" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "Clave API de OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Clave API abstracta, si está vacía - no se proporcionan características " +"abstractas" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "Proxy HTTP" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Desactivar la función de compra" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Una entidad para almacenar datos publicitarios" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Una entidad para almacenar datos analíticos" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bienvenido a la {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentación de la API B2B.\n" +"\n" +"La {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API está diseñada para proporcionar una integración perfecta para los comerciantes que venden una amplia gama de productos electrónicos. A través de esta API, los comerciantes asociados pueden gestionar productos, pedidos e inventario con facilidad, al tiempo que acceden a los niveles de existencias en tiempo real.\n" +"\n" +"## Características principales\n" +"- Gestión de productos:** Cree, actualice y gestione fácilmente sus listados de productos con especificaciones detalladas.\n" +"- **Procesamiento de Pedidos:** Maneje los pedidos a granel de manera eficiente con operaciones simplificadas para los comerciantes.\n" +"- **Gestión de Inventario:** Mantenga un seguimiento de los niveles de existencias en tiempo real, asegurando el cumplimiento sin problemas.\n" +"- Transacciones seguras:** Transacciones seguras y encriptadas para proteger la información comercial confidencial.\n" +"- **Soporte multidivisa:** Amplíe el alcance de su mercado con transacciones multidivisa.\n" +"- **Notificaciones en tiempo real:** Manténgase actualizado con alertas instantáneas sobre los cambios en las existencias y el estado de los pedidos.\n" +"\n" +"## Autenticación\n" +"- La autenticación se gestiona a través de su token de comerciante. Incluya el token en la cabecera `X-EVIBES-B2B-AUTH` de sus solicitudes con el formato `Bearer `.\n" +"\n" +"## I18N\n" +"- Aplique una cabecera `Accept-Language` para utilizar un idioma no predeterminado. Una lista de todos los idiomas está disponible en `/app/languages/`.\n" +"\n" +"## Versión\n" +"Versión actual de la API: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bienvenido a la {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentación de la API de la Plataforma.\n" +"\n" +"La {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API es el eje central para la gestión de listados de productos, seguimiento de pedidos, y el acceso a los análisis de su tienda de electrónica. Proporciona puntos finales RESTful para gestionar las operaciones de backend de su tienda e incluye opciones REST y GraphQL.\n" +"\n" +"## Características principales\n" +"- **Catálogo de productos:** Gestiona los detalles de los productos, precios y disponibilidad.\n" +"- **Gestión de pedidos:** Acceda a información detallada de los pedidos y procese las solicitudes de los clientes de forma eficiente.\n" +"- **Roles y Permisos de Usuario:** Establecer roles y permisos de usuario para la gestión interna.\n" +"- **Integraciones personalizadas:** Conecte su sistema con plataformas externas a través de potentes API.\n" +"- **Informes detallados:** Genere informes completos sobre pedidos, rendimiento de ventas y datos de productos.\n" +"- **Datos en tiempo real:** Obtenga actualizaciones en tiempo real sobre el inventario, los precios y el estado de los pedidos.\n" +"\n" +"## Autenticación\n" +"- La autenticación se gestiona mediante tokens JWT. Incluya el token en la cabecera `X-EVIBES-AUTH` de sus peticiones con el formato `Bearer `.\n" +"- El tiempo de vida del token de acceso es {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- La vida útil del token de actualización es de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} horas.\n" +"- Los tokens de actualización se invalidan automáticamente después de su uso.\n" +"\n" +"## I18N\n" +"- Aplicar una cabecera `Accept-Language` para utilizar un idioma no predeterminado. Una lista de todos los idiomas está disponible en `/app/languages/`.\n" +"\n" +"## Versión\n" +"Versión actual de la API: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentación" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Escaparate" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Ayuda" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Documentos GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Plataforma REST Docs" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "Documentos B2B REST" diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.mo b/evibes/locale/fr_FR/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..6d31592936e10e6987c68b6f8f025265d016b5f8 100644 GIT binary patch literal 9378 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 delta 71 zcmZ4F`JBn(o)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DEb|9w diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.po b/evibes/locale/fr_FR/LC_MESSAGES/django.po index 9a7d8f60..40999e3c 100644 --- a/evibes/locale/fr_FR/LC_MESSAGES/django.po +++ b/evibes/locale/fr_FR/LC_MESSAGES/django.po @@ -1,201 +1,238 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: fr-fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Nom du projet" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Nom de domaine du frontend" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Nom de domaine de base" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Nom de l'entreprise" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Adresse de l'entreprise" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Numéro de téléphone de l'entreprise" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "Hôte SMTP" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTP port" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Utiliser TLS (spécifier 0 pour Non et 1 pour Oui)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Utiliser SSL (spécifier 0 pour Non et 1 pour Oui)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Nom d'utilisateur SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Mot de passe SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "L'adresse de l'expéditeur du courrier électronique" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL de la passerelle de paiement" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Jeton de passerelle de paiement" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Montant minimum de la passerelle de paiement" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Montant maximum de la passerelle de paiement" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Clé API pour le taux de change" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL de l'API OpenStreetMap Nominatim" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI API Key" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Clé API abstraite, si elle est vide - aucune caractéristique abstraite n'est" +" fournie" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP Proxy" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Désactiver la fonctionnalité d'achat" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Une entité pour stocker des données publicitaires" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Une entité pour stocker des données analytiques" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bienvenue dans la documentation de l'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentation de l'API B2B.\n" +"\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API est conçue pour offrir une intégration transparente aux commerçants qui vendent une large gamme de produits électroniques. Grâce à cette API, les commerçants partenaires peuvent gérer facilement les produits, les commandes et les stocks, tout en accédant aux niveaux de stock en temps réel.\n" +"\n" +"## Caractéristiques principales\n" +"- Gestion des produits:** Créez, mettez à jour et gérez facilement vos listes de produits avec des spécifications détaillées.\n" +"- Traitement des commandes:** Traitez efficacement les commandes en gros grâce à des opérations rationalisées pour les commerçants.\n" +"- Gestion des stocks:** Gardez une trace des niveaux de stock en temps réel, garantissant une exécution sans faille.\n" +"- Transactions sécurisées:** Transactions sécurisées et cryptées pour protéger les informations commerciales sensibles.\n" +"- Support multi-devises:** Élargissez votre marché grâce aux transactions multi-devises.\n" +"- Notifications en temps réel:** Restez informé grâce à des alertes instantanées sur les variations de stock et l'état des commandes.\n" +"\n" +"## Authentification\n" +"- L'authentification est gérée par votre jeton de commerçant. Incluez le jeton dans l'en-tête `X-EVIBES-B2B-AUTH` de vos requêtes au format `Bearer `.\n" +"\n" +"## I18N\n" +"- Appliquez un en-tête `Accept-Language` pour utiliser une langue autre que celle par défaut. Une liste de toutes les langues est disponible dans `/app/languages/`.\n" +"\n" +"## Version\n" +"Version actuelle de l'API : {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bienvenue dans la documentation de l'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentation de l'API de la plate-forme.\n" +"\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} est le centre névralgique de la gestion des listes de produits, du suivi des commandes et de l'accès aux analyses pour votre magasin d'électronique. Elle fournit des points d'extrémité RESTful pour gérer les opérations de backend de votre magasin et comprend des options REST et GraphQL.\n" +"\n" +"## Caractéristiques principales\n" +"- Catalogue de produits:** Gérer les détails, les prix et la disponibilité des produits.\n" +"- Gestion des commandes:** Accédez aux informations détaillées des commandes et traitez efficacement les demandes des clients.\n" +"- Rôles et permissions des utilisateurs:** Définissez les rôles et permissions des utilisateurs pour la gestion interne.\n" +"- Intégrations personnalisées:** Connectez votre système à des plateformes externes grâce à des API puissantes.\n" +"- Rapports détaillés:** Générez des rapports complets sur les commandes, les performances de vente et les données sur les produits.\n" +"- Données en temps réel:** Obtenez des mises à jour en direct sur les stocks, les prix et les statuts des commandes.\n" +"\n" +"## Authentification\n" +"- L'authentification est gérée par des jetons JWT. Incluez le jeton dans l'en-tête `X-EVIBES-AUTH` de vos requêtes au format `Bearer `.\n" +"- La durée de vie du jeton d'accès est de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- La durée de vie du jeton de rafraîchissement est de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} heures.\n" +"- Les jetons de rafraîchissement sont automatiquement invalidés après utilisation.\n" +"\n" +"## I18N\n" +"- Appliquer un en-tête `Accept-Language` pour utiliser une langue autre que celle par défaut. Une liste de toutes les langues est disponible dans `/app/languages/`.\n" +"\n" +"## Version\n" +"Version actuelle de l'API : {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentation" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Vitrine" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Soutien" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Docs GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Docs REST de la plateforme" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST Docs" diff --git a/evibes/locale/hi_IN/LC_MESSAGES/django.po b/evibes/locale/hi_IN/LC_MESSAGES/django.po index 9a7d8f60..e2357176 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 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -40,83 +40,79 @@ msgstr "" msgid "Phone number of the company" msgstr "" -#: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" - -#: evibes/settings/constance.py:28 +#: evibes/settings/constance.py:24 msgid "SMTP host" msgstr "" -#: evibes/settings/constance.py:29 +#: evibes/settings/constance.py:25 msgid "SMTP port" msgstr "" -#: evibes/settings/constance.py:30 +#: evibes/settings/constance.py:26 msgid "Use TLS (Specify 0 for No and 1 for Yes)" msgstr "" -#: evibes/settings/constance.py:31 +#: evibes/settings/constance.py:27 msgid "Use SSL (Specify 0 for No and 1 for Yes)" msgstr "" -#: evibes/settings/constance.py:32 +#: evibes/settings/constance.py:28 msgid "SMTP username" msgstr "" -#: evibes/settings/constance.py:33 +#: evibes/settings/constance.py:29 msgid "SMTP password" msgstr "" -#: evibes/settings/constance.py:34 +#: evibes/settings/constance.py:30 msgid "Mail from option" msgstr "" -#: evibes/settings/constance.py:35 +#: evibes/settings/constance.py:31 msgid "Payment gateway URL" msgstr "" -#: evibes/settings/constance.py:36 +#: evibes/settings/constance.py:32 msgid "Payment gateway token" msgstr "" -#: evibes/settings/constance.py:37 +#: evibes/settings/constance.py:33 msgid "Payment gateway minimum amount" msgstr "" -#: evibes/settings/constance.py:38 +#: evibes/settings/constance.py:34 msgid "Payment gateway maximum amount" msgstr "" -#: evibes/settings/constance.py:39 +#: evibes/settings/constance.py:35 msgid "Exchange rate API key" msgstr "" -#: evibes/settings/constance.py:40 +#: evibes/settings/constance.py:36 msgid "OpenStreetMap Nominatim API URL" msgstr "" -#: evibes/settings/constance.py:41 +#: evibes/settings/constance.py:37 msgid "OpenAI API Key" msgstr "" -#: evibes/settings/constance.py:44 +#: evibes/settings/constance.py:40 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" -#: evibes/settings/constance.py:46 +#: evibes/settings/constance.py:42 msgid "HTTP Proxy" msgstr "" -#: evibes/settings/constance.py:47 +#: evibes/settings/constance.py:43 msgid "Disable buy functionality" msgstr "" -#: evibes/settings/constance.py:50 +#: evibes/settings/constance.py:46 msgid "An entity for storing advertisiment data" msgstr "" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" msgstr "" @@ -199,3 +195,27 @@ msgid "" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "" diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.mo b/evibes/locale/it_IT/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..e9c7728e5171a209473ca2ff34ff16ae9b521571 100644 GIT binary patch literal 9109 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 x^9`4InH`2C0F8$(DkbCkqNiGco`G DD9i_0 diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.po b/evibes/locale/it_IT/LC_MESSAGES/django.po index 9a7d8f60..df4d64c7 100644 --- a/evibes/locale/it_IT/LC_MESSAGES/django.po +++ b/evibes/locale/it_IT/LC_MESSAGES/django.po @@ -1,201 +1,237 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: it-it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Nome del progetto" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Nome di dominio del frontend" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Nome di dominio di base" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Nome della società" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Indirizzo dell'azienda" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Numero di telefono dell'azienda" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "Host SMTP" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "Porta SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Usa TLS (specificare 0 per No e 1 per Sì)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Usa SSL (specificare 0 per No e 1 per Sì)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Nome utente SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Password SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "L'indirizzo del mittente dell'e-mail" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL del gateway di pagamento" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Token del gateway di pagamento" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Importo minimo del gateway di pagamento" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Importo massimo del gateway di pagamento" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Chiave API del tasso di cambio" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL dell'API OpenStreetMap Nominatim" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "Chiave API OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Chiave API astratta, se vuota - non sono state fornite funzioni astratte." + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "Proxy HTTP" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Disattivare la funzionalità di acquisto" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Un'entità per la memorizzazione dei dati pubblicitari" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Un'entità per la memorizzazione dei dati analitici" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Benvenuti nella documentazione di {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentazione dell'API B2B.\n" +"\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API B2B è stata progettata per fornire un'integrazione perfetta ai commercianti che vendono un'ampia gamma di prodotti elettronici. Attraverso questa API, i commercianti partner possono gestire prodotti, ordini e inventario con facilità, accedendo ai livelli di stock in tempo reale.\n" +"\n" +"## Caratteristiche principali\n" +"- **Gestione dei prodotti:** Creare, aggiornare e gestire facilmente gli elenchi dei prodotti con specifiche dettagliate.\n" +"- Elaborazione degli ordini:** Gestione efficiente degli ordini di massa con operazioni semplificate per i commercianti.\n" +"- Gestione dell'inventario:** Tenere sotto controllo i livelli delle scorte in tempo reale, per garantire un'evasione senza intoppi.\n" +"- Transazioni sicure:** Transazioni sicure e crittografate per proteggere le informazioni aziendali sensibili.\n" +"- Supporto per più valute:** Espandete il vostro mercato con transazioni in più valute.\n" +"- Notifiche in tempo reale:** Rimanete aggiornati con avvisi istantanei sulle variazioni di stock e sullo stato degli ordini.\n" +"\n" +"## Autenticazione\n" +"- L'autenticazione è gestita tramite il token del commerciante. Includete il token nell'intestazione `X-EVIBES-B2B-AUTH` delle vostre richieste nel formato `Bearer `.\n" +"\n" +"## I18N\n" +"- Applicare un'intestazione `Accept-Language` per utilizzare una lingua non predefinita. Un elenco di tutte le lingue è disponibile in `/app/languages/`.\n" +"\n" +"## Versione\n" +"Versione attuale dell'API: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Benvenuti nella documentazione della {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentazione dell'API della piattaforma.\n" +"\n" +"L'API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} è l'hub centrale per la gestione delle inserzioni dei prodotti, il monitoraggio degli ordini e l'accesso alle analisi del vostro negozio di elettronica. Fornisce endpoint REST per la gestione delle operazioni di backend del negozio e include opzioni REST e GraphQL.\n" +"\n" +"## Caratteristiche principali\n" +"- **Catalogo dei prodotti:** Gestione dei dettagli dei prodotti, dei prezzi e della disponibilità.\n" +"- Gestione degli ordini:** Accesso a informazioni dettagliate sugli ordini e gestione efficiente delle richieste dei clienti.\n" +"- Ruoli e permessi degli utenti:** Impostazione dei ruoli e dei permessi degli utenti per la gestione interna.\n" +"- Integrazioni personalizzate:** Collegare il sistema a piattaforme esterne tramite potenti API.\n" +"- Reporting dettagliato:** Generazione di report completi su ordini, performance di vendita e dati di prodotto.\n" +"- Dati in tempo reale:** Ricevere aggiornamenti in tempo reale su inventario, prezzi e stato degli ordini.\n" +"\n" +"## Autenticazione\n" +"- L'autenticazione è gestita tramite token JWT. Includere il token nell'intestazione `X-EVIBES-AUTH` delle richieste nel formato `Bearer `.\n" +"- La durata del token di accesso è di {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- La durata del token di aggiornamento è di {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ore.\n" +"- I token di aggiornamento vengono automaticamente invalidati dopo l'uso.\n" +"\n" +"## I18N\n" +"- Applicare un'intestazione `Accept-Language` per usare una lingua non predefinita. Un elenco di tutte le lingue è disponibile in `/app/languages/`.\n" +"\n" +"## Versione\n" +"Versione attuale dell'API: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentazione" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Storefront" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Supporto" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Documenti GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Documenti della piattaforma REST" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "Documenti REST B2B" diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.mo b/evibes/locale/ja_JP/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..ad28a653d6821f4615f045dcec42f25e45ba41a3 100644 GIT binary patch literal 9408 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 SqXs4Ahs(nXUambsZvO-CXQ6)p delta 71 zcmX@$`JBn(o)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DHAM%8 diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.po b/evibes/locale/ja_JP/LC_MESSAGES/django.po index 9a7d8f60..0cf2eda4 100644 --- a/evibes/locale/ja_JP/LC_MESSAGES/django.po +++ b/evibes/locale/ja_JP/LC_MESSAGES/django.po @@ -1,201 +1,236 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: ja-jp\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "プロジェクト名" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "フロントエンド・ドメイン名" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "ベースドメイン名" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "会社名" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "会社住所" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "会社の電話番号" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTPホスト" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTPポート" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "TLSを使用する(「いいえ」は0、「はい」は1を指定する)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "SSLを使用する(「いいえ」は0、「はい」は1を指定する)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "SMTPユーザー名" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "SMTPパスワード" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "メール送信者のアドレス" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "決済ゲートウェイURL" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "ペイメントゲートウェイ・トークン" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "ペイメントゲートウェイの最低金額" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "支払ゲートウェイ上限額" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "為替レートAPIキー" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI APIキー" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" -msgstr "" +msgstr "抽象APIキー、空の場合 - 抽象機能は提供されない" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTPプロキシ" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "購入機能を無効にする" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "広告データを保存するエンティティ" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "分析データを保存するエンティティ" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"ようこそ{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}へ。B2B API ドキュメントへようこそ。\n" +"\n" +"PH_1__}はB2B API は、さまざまな電子機器を販売するマーチャントにシームレスな統合を提供するように設計されています。このAPIを通じて、パートナーである販売業者は、リアルタイムの在庫レベルにアクセスしながら、商品、注文、在庫を簡単に管理できます。\n" +"\n" +"## 主な機能\n" +"- 商品管理:** 商品リストを簡単に作成、更新、詳細な仕様で管理できます。\n" +"- 注文処理:**商人のための合理化された操作で効率的に大量注文を処理します。\n" +"- 在庫管理:**リアルタイムで在庫レベルを追跡し、円滑な履行を確保します。\n" +"- **安全なトランザクション: **機密ビジネス情報を保護する安全な、暗号化されたトランザクション。\n" +"- **多通貨サポート: **多通貨トランザクションとのあなたの市場の範囲を拡大して下さい。\n" +"- リアルタイム通知:**在庫変更と注文ステータスのインスタントアラートで更新されます。\n" +"\n" +"## 認証\n" +"- 認証はマーチャントトークンによって行われます。リクエストの `X-EVIBES-B2B-AUTH` ヘッダーに `Bearer ` という形式でトークンを含めてください。\n" +"\n" +"## 国際化\n" +"- デフォルト以外の言語を使う場合は `Accept-Language` ヘッダを付ける。全言語のリストは `/app/languages/` にあります。\n" +"\n" +"## バージョン\n" +"現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}.\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"ようこそ{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}へ。Platform API ドキュメントへようこそ。\n" +"\n" +"PH_1__}はAPI は、商品リストの管理、注文の監視、家電量販店の分析へのアクセスを行うための中心的なハブです。ストアのバックエンド操作を管理するためのRESTfulエンドポイントを提供し、RESTとGraphQLの両方のオプションがあります。\n" +"\n" +"## 主な機能\n" +"- 商品カタログ:** 商品の詳細、価格、在庫状況を管理します。\n" +"- 注文管理:** 詳細な注文情報にアクセスし、顧客のリクエストを効率的に処理します。\n" +"- ユーザーの役割と権限:**内部管理のためのユーザーの役割と権限を設定します。\n" +"- カスタム統合:**強力なAPIを介して外部プラットフォームとシステムを接続します。\n" +"- **詳細なレポート:**受注、販売実績、および製品データに関する包括的なレポートを生成します。\n" +"- **リアルタイムデータ:**在庫、価格、注文状況のライブ更新を取得します。\n" +"\n" +"## 認証\n" +"- 認証はJWTトークンで行われます。リクエストの `X-EVIBES-AUTH` ヘッダーに、`Bearer ` という形式でトークンを含めてください。\n" +"- アクセストークンの有効期限は {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} です。{\"minutes\" if not DEBUG else \"hours\"}です。\n" +"- リフレッシュ・トークンの有効期限は {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} 時間です。\n" +"- リフレッシュトークンは使用後に自動的に無効になります。\n" +"\n" +"## I18N\n" +"- デフォルト以外の言語を使用するには `Accept-Language` ヘッダーを適用する。全言語のリストは `/app/languages/` にあります。\n" +"\n" +"## バージョン\n" +"現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}.\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "ドキュメンテーション" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "ストアフロント" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "サポート" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "GraphQLドキュメント" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "プラットフォームRESTドキュメント" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST ドキュメント" diff --git a/evibes/locale/kk_KZ/LC_MESSAGES/django.po b/evibes/locale/kk_KZ/LC_MESSAGES/django.po index 9a7d8f60..e2357176 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 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -40,83 +40,79 @@ msgstr "" msgid "Phone number of the company" msgstr "" -#: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" - -#: evibes/settings/constance.py:28 +#: evibes/settings/constance.py:24 msgid "SMTP host" msgstr "" -#: evibes/settings/constance.py:29 +#: evibes/settings/constance.py:25 msgid "SMTP port" msgstr "" -#: evibes/settings/constance.py:30 +#: evibes/settings/constance.py:26 msgid "Use TLS (Specify 0 for No and 1 for Yes)" msgstr "" -#: evibes/settings/constance.py:31 +#: evibes/settings/constance.py:27 msgid "Use SSL (Specify 0 for No and 1 for Yes)" msgstr "" -#: evibes/settings/constance.py:32 +#: evibes/settings/constance.py:28 msgid "SMTP username" msgstr "" -#: evibes/settings/constance.py:33 +#: evibes/settings/constance.py:29 msgid "SMTP password" msgstr "" -#: evibes/settings/constance.py:34 +#: evibes/settings/constance.py:30 msgid "Mail from option" msgstr "" -#: evibes/settings/constance.py:35 +#: evibes/settings/constance.py:31 msgid "Payment gateway URL" msgstr "" -#: evibes/settings/constance.py:36 +#: evibes/settings/constance.py:32 msgid "Payment gateway token" msgstr "" -#: evibes/settings/constance.py:37 +#: evibes/settings/constance.py:33 msgid "Payment gateway minimum amount" msgstr "" -#: evibes/settings/constance.py:38 +#: evibes/settings/constance.py:34 msgid "Payment gateway maximum amount" msgstr "" -#: evibes/settings/constance.py:39 +#: evibes/settings/constance.py:35 msgid "Exchange rate API key" msgstr "" -#: evibes/settings/constance.py:40 +#: evibes/settings/constance.py:36 msgid "OpenStreetMap Nominatim API URL" msgstr "" -#: evibes/settings/constance.py:41 +#: evibes/settings/constance.py:37 msgid "OpenAI API Key" msgstr "" -#: evibes/settings/constance.py:44 +#: evibes/settings/constance.py:40 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" -#: evibes/settings/constance.py:46 +#: evibes/settings/constance.py:42 msgid "HTTP Proxy" msgstr "" -#: evibes/settings/constance.py:47 +#: evibes/settings/constance.py:43 msgid "Disable buy functionality" msgstr "" -#: evibes/settings/constance.py:50 +#: evibes/settings/constance.py:46 msgid "An entity for storing advertisiment data" msgstr "" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" msgstr "" @@ -199,3 +195,27 @@ msgid "" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "" diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.mo b/evibes/locale/nl_NL/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..4f722befcbf9c450553eee39d4a4075287eb052b 100644 GIT binary patch literal 8727 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 MANQoA@n**V2QNtlo&W#< delta 71 zcmbR4@|?-yo)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DD2NAG diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.po b/evibes/locale/nl_NL/LC_MESSAGES/django.po index 9a7d8f60..49510b57 100644 --- a/evibes/locale/nl_NL/LC_MESSAGES/django.po +++ b/evibes/locale/nl_NL/LC_MESSAGES/django.po @@ -1,201 +1,237 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: nl-nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Naam van het project" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Frontend domeinnaam" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Basis domeinnaam" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Naam van het bedrijf" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Adres van het bedrijf" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Telefoonnummer van het bedrijf" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP host" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTP poort" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "TLS gebruiken (geef 0 op voor Nee en 1 voor Ja)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "SSL gebruiken (geef 0 op voor Nee en 1 voor Ja)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "SMTP gebruikersnaam" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "SMTP wachtwoord" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Het adres van de afzender van de e-mail" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL betalingsgateway" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Betaal gateway token" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Minimumbedrag betalingsgateway" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Maximumbedrag betalingsgateway" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Wisselkoers API sleutel" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI API sleutel" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Abstracte API-sleutel, indien leeg - geen abstracte functies beschikbaar" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP-proxy" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Koopfunctie uitschakelen" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Een entiteit voor het opslaan van adverteerdersgegevens" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Een entiteit voor het opslaan van analytische gegevens" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Welkom bij de {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentatie.\n" +"\n" +"De {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is ontworpen om naadloze integratie te bieden voor verkopers van een breed scala aan elektronica. Via deze API kunnen handelaren met wie u samenwerkt eenvoudig producten, bestellingen en voorraden beheren, terwijl u ook toegang hebt tot realtime voorraadniveaus.\n" +"\n" +"## Belangrijkste functies\n" +"- **Productbeheer:**Maak, update en beheer eenvoudig je productlijsten met gedetailleerde specificaties.\n" +"- Orderverwerking:** Behandel bulkorders efficiënt met gestroomlijnde operaties voor verkopers.\n" +"- Voorraadbeheer:** Houd voorraadniveaus in real-time bij, voor een soepele afhandeling.\n" +"- **Veilige transacties:**Veiligde en versleutelde transacties om gevoelige bedrijfsinformatie te beschermen.\n" +"- Ondersteuning voor meerdere valuta:** Vergroot uw marktbereik met transacties in meerdere valuta.\n" +"- **Real-Time Meldingen:** Blijf op de hoogte met directe meldingen over voorraadwijzigingen en orderstatussen.\n" +"\n" +"## Authenticatie\n" +"- Authenticatie wordt afgehandeld via uw handelaarstoken. Neem het token op in de `X-EVIBES-B2B-AUTH` header van je verzoeken in het formaat `Bearer `.\n" +"\n" +"## I18N\n" +"- Gebruik een `Accept-Language` header om een niet-standaard taal te gebruiken. Een lijst van alle talen is beschikbaar op `/app/languages/`.\n" +"\n" +"## Versie\n" +"Huidige API-versie: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Welkom bij de {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentatie.\n" +"\n" +"De {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is de centrale hub voor het beheren van productoverzichten, het controleren van bestellingen en het opvragen van analyses voor uw elektronicawinkel. De API biedt REST-achtige eindpunten voor het beheer van de back-end activiteiten van uw winkel en bevat zowel REST- als GraphQL-opties.\n" +"\n" +"## Belangrijkste functies\n" +"- **Productcatalogus:** Beheer productgegevens, prijzen en beschikbaarheid.\n" +"- Orderbeheer:**Toegang tot gedetailleerde orderinformatie en efficiënte verwerking van klantverzoeken.\n" +"- **Gebruikersrollen en -rechten:** Stel gebruikersrollen en -rechten in voor intern beheer.\n" +"- **Aangepaste integraties:** Verbind uw systeem met externe platforms via krachtige API's.\n" +"- **Detailrapportage:** Genereer uitgebreide rapporten over bestellingen, verkoopprestaties en productgegevens.\n" +"- Realtime gegevens:** Ontvang live updates over voorraad, prijzen en orderstatussen.\n" +"\n" +"## Authenticatie\n" +"- Authenticatie wordt afgehandeld via JWT-tokens. Neem het token op in de `X-EVIBES-AUTH` header van uw verzoeken in het formaat `Bearer `.\n" +"- De levensduur van het toegangstoken is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- De levensduur van een verversingstoken is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} uur.\n" +"- Refresh tokens worden na gebruik automatisch ongeldig gemaakt.\n" +"\n" +"## I18N\n" +"- Pas een `Accept-Language` header toe om een niet-standaard taal te gebruiken. Een lijst van alle talen is beschikbaar op `/app/languages/`.\n" +"\n" +"## Versie\n" +"Huidige API-versie: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentatie" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Winkelpui" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Ondersteuning" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "GraphQL-documenten" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Platform REST-documenten" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST-documenten" diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.mo b/evibes/locale/pl_PL/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..578604624481f6075984993f0a513e58e057e718 100644 GIT binary patch literal 9038 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 NBO$ZW425p9@;{u5`>X%} delta 71 zcmX@-_MFM$o)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DI8_Ic diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.po b/evibes/locale/pl_PL/LC_MESSAGES/django.po index 9a7d8f60..988d8ec2 100644 --- a/evibes/locale/pl_PL/LC_MESSAGES/django.po +++ b/evibes/locale/pl_PL/LC_MESSAGES/django.po @@ -1,201 +1,236 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: pl-pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Nazwa projektu" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Nazwa domeny frontendu" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Nazwa domeny podstawowej" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Nazwa firmy" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Adres spółki" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Numer telefonu firmy" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "Host SMTP" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "Port SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Użyj TLS (określ 0 dla Nie i 1 dla Tak)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Użyj SSL (określ 0 dla Nie i 1 dla Tak)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Nazwa użytkownika SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Hasło SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Adres nadawcy wiadomości e-mail" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "Adres URL bramki płatności" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Token bramki płatności" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Minimalna kwota bramki płatności" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Maksymalna kwota bramki płatności" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Klucz API kursu wymiany" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "Adres URL interfejsu API OpenStreetMap Nominatim" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "Klucz API OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" -msgstr "" +msgstr "Abstract API Key, jeśli pusty - brak funkcji Abstract" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "Serwer proxy HTTP" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Wyłączenie funkcji kupowania" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Jednostka do przechowywania danych reklamowych" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Jednostka do przechowywania danych analitycznych" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Witamy w dokumentacji {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API.\n" +"\n" +"Interfejs {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API został zaprojektowany w celu zapewnienia płynnej integracji dla sprzedawców sprzedających szeroką gamę elektroniki. Dzięki temu interfejsowi API współpracujący sprzedawcy mogą z łatwością zarządzać produktami, zamówieniami i zapasami, uzyskując jednocześnie dostęp do stanów magazynowych w czasie rzeczywistym.\n" +"\n" +"## Kluczowe funkcje\n" +"- Zarządzanie produktami:** Łatwe tworzenie, aktualizowanie i zarządzanie listami produktów ze szczegółowymi specyfikacjami.\n" +"- Przetwarzanie zamówień:** Efektywna obsługa zamówień masowych dzięki usprawnionym operacjom dla sprzedawców.\n" +"- Zarządzanie zapasami:** Śledź poziomy zapasów w czasie rzeczywistym, zapewniając płynną realizację zamówień.\n" +"- Bezpieczne transakcje:** Bezpieczne i szyfrowane transakcje w celu ochrony poufnych informacji biznesowych.\n" +"- Obsługa wielu walut:** Rozszerz swój zasięg rynkowy dzięki transakcjom wielowalutowym.\n" +"- Powiadomienia w czasie rzeczywistym:** Bądź na bieżąco dzięki natychmiastowym alertom o zmianach zapasów i statusach zamówień.\n" +"\n" +"## Uwierzytelnianie\n" +"- Uwierzytelnianie jest obsługiwane przez token sprzedawcy. Dołącz token w nagłówku `X-EVIBES-B2B-AUTH` swoich żądań w formacie `Bearer `.\n" +"\n" +"## I18N\n" +"- Zastosuj nagłówek `Accept-Language`, aby użyć języka innego niż domyślny. Lista wszystkich języków jest dostępna pod adresem `/app/languages/`.\n" +"\n" +"## Wersja\n" +"Aktualna wersja API: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Witamy w dokumentacji {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Dokumentacja API platformy.\n" +"\n" +"Interfejs API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API to centralne centrum zarządzania listami produktów, monitorowania zamówień i uzyskiwania dostępu do analiz dla sklepu elektronicznego. Zapewnia punkty końcowe RESTful do zarządzania operacjami zaplecza sklepu i zawiera zarówno opcje REST, jak i GraphQL.\n" +"\n" +"## Kluczowe funkcje\n" +"- Katalog produktów:** Zarządzanie szczegółami produktów, cenami i dostępnością.\n" +"- Zarządzanie zamówieniami:** Dostęp do szczegółowych informacji o zamówieniach i wydajne przetwarzanie żądań klientów.\n" +"- **User Roles & Permissions:** Ustawianie ról i uprawnień użytkowników dla wewnętrznego zarządzania.\n" +"- Niestandardowe integracje:** Połącz swój system z zewnętrznymi platformami za pomocą potężnych interfejsów API.\n" +"- **Szczegółowe raportowanie:** Generowanie kompleksowych raportów dotyczących zamówień, wyników sprzedaży i danych produktowych.\n" +"- **Dane w czasie rzeczywistym:** Uzyskaj aktualizacje na żywo dotyczące zapasów, cen i statusów zamówień.\n" +"\n" +"## Uwierzytelnianie\n" +"- Uwierzytelnianie jest obsługiwane za pomocą tokenów JWT. Dołącz token w nagłówku `X-EVIBES-AUTH` swoich żądań w formacie `Bearer `.\n" +"- Okres ważności tokenu dostępu wynosi {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Okres ważności tokenu odświeżania wynosi {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} godzin.\n" +"- Tokeny odświeżania są automatycznie unieważniane po użyciu.\n" +"\n" +"## I18N\n" +"- Zastosuj nagłówek `Accept-Language`, aby użyć języka innego niż domyślny. Lista wszystkich języków jest dostępna pod adresem `/app/languages/`.\n" +"\n" +"## Wersja\n" +"Aktualna wersja API: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Dokumentacja" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Witryna sklepowa" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Wsparcie" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Dokumenty GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Dokumenty platformy REST" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "Dokumenty B2B REST" diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.mo b/evibes/locale/pt_BR/LC_MESSAGES/django.mo index e7d918d9464c27824122248765904e135aba9737..835a6ec4c0c75422beeab6c31a7b53ad7b8e2d03 100644 GIT binary patch literal 9047 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 F{{!OVvKs&Z delta 77 zcmccaHj&xlo)F7a1|VPrVi_P-0b*t#)&XJ=umIw4prj>`2C0F8$(DkbCkqPIv)d^c JYFcwK003LG2$lc< diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.po b/evibes/locale/pt_BR/LC_MESSAGES/django.po index b841007d..bea23b0f 100644 --- a/evibes/locale/pt_BR/LC_MESSAGES/django.po +++ b/evibes/locale/pt_BR/LC_MESSAGES/django.po @@ -1,202 +1,236 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: pt-br\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Nome do projeto" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Nome de domínio de front-end" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Nome de domínio básico" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Nome da empresa" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Endereço da empresa" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Número de telefone da empresa" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "Host SMTP" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "Porta SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Use TLS (especifique 0 para No e 1 para Yes)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Use SSL (especifique 0 para No e 1 para Yes)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Nome de usuário SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Senha SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "O endereço do remetente do e-mail" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL do gateway de pagamento" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Token de gateway de pagamento" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Valor mínimo do gateway de pagamento" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Valor máximo do gateway de pagamento" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Chave da API de taxa de câmbio" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL da API do OpenStreetMap Nominatim" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "Chave da API da OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" -msgstr "" +msgstr "Chave de API abstrata, se vazia - nenhum recurso abstrato fornecido" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "Proxy HTTP" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Desativar a funcionalidade de compra" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Uma entidade para armazenar dados de propaganda" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Uma entidade para armazenar dados analíticos" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bem-vindo à documentação da {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentação da API B2B.\n" +"\n" +"A {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API foi projetada para fornecer uma integração perfeita para os comerciantes que vendem uma ampla variedade de produtos eletrônicos. Por meio dessa API, os comerciantes parceiros podem gerenciar produtos, pedidos e estoque com facilidade, enquanto acessam os níveis de estoque em tempo real.\n" +"\n" +"## Principais recursos\n" +"- Gerenciamento de produtos:** Crie, atualize e gerencie facilmente suas listas de produtos com especificações detalhadas.\n" +"- Processamento de pedidos:** Trate os pedidos em massa de forma eficiente com operações simplificadas para os comerciantes.\n" +"- Gerenciamento de estoque:** Acompanhe os níveis de estoque em tempo real, garantindo o atendimento sem problemas.\n" +"- Transações seguras:** Transações seguras e criptografadas para proteger informações comerciais confidenciais.\n" +"- Suporte a várias moedas:** Amplie seu alcance de mercado com transações em várias moedas.\n" +"- Notificações em tempo real:** Mantenha-se atualizado com alertas instantâneos sobre alterações de estoque e status de pedidos.\n" +"\n" +"## Autenticação\n" +"- A autenticação é feita por meio de seu token de comerciante. Inclua o token no cabeçalho `X-EVIBES-B2B-AUTH` de suas solicitações no formato `Bearer `.\n" +"\n" +"## I18N\n" +"- Aplique um cabeçalho `Accept-Language` para usar um idioma não padrão. Uma lista de todos os idiomas está disponível em `/app/languages/`.\n" +"\n" +"## Versão\n" +"Versão atual da API: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bem-vindo à documentação da {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentação da API da plataforma.\n" +"\n" +"A API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API é o hub central para gerenciar listagens de produtos, monitorar pedidos e acessar análises da sua loja de eletrônicos. Ela fornece pontos de extremidade RESTful para gerenciar as operações de back-end de sua loja e inclui opções REST e GraphQL.\n" +"\n" +"## Principais recursos\n" +"- Catálogo de produtos:** Gerencie detalhes, preços e disponibilidade dos produtos.\n" +"- Gerenciamento de pedidos:** Acesse informações detalhadas sobre os pedidos e processe as solicitações dos clientes com eficiência.\n" +"- Funções e permissões do usuário:** Defina funções e permissões do usuário para gerenciamento interno.\n" +"- Integrações personalizadas:** Conecte seu sistema a plataformas externas por meio de APIs avançadas.\n" +"- Relatórios detalhados:** Gere relatórios abrangentes sobre pedidos, desempenho de vendas e dados de produtos.\n" +"- Dados em tempo real:** Receba atualizações em tempo real sobre estoque, preços e status de pedidos.\n" +"\n" +"## Autenticação\n" +"- A autenticação é tratada por meio de tokens JWT. Inclua o token no cabeçalho `X-EVIBES-AUTH` de suas solicitações no formato `Bearer `.\n" +"- O tempo de vida do token de acesso é {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- A vida útil do token de atualização é de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} horas.\n" +"- Os tokens de atualização são automaticamente invalidados após o uso.\n" +"\n" +"## I18N\n" +"- Aplique um cabeçalho `Accept-Language` para usar um idioma não padrão. Uma lista de todos os idiomas está disponível em `/app/languages/`.\n" +"\n" +"## Versão\n" +"Versão atual da API: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentação" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Vitrine" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Suporte" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Documentos do GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Documentos REST da plataforma" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "Documentos B2B REST" diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.mo b/evibes/locale/ro_RO/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..94c7a5f7edb15214f89bceb6b248bdcdafb9e267 100644 GIT binary patch literal 9244 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 EFHPVSa{vGU delta 71 zcmbQ^@tn!xo)F7a1|VPrVi_P-0b*t#)&XJ=umECRprj>`2C0F8$(DkbCkqNiGco`G DD+32% diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.po b/evibes/locale/ro_RO/LC_MESSAGES/django.po index 9a7d8f60..4b5599e9 100644 --- a/evibes/locale/ro_RO/LC_MESSAGES/django.po +++ b/evibes/locale/ro_RO/LC_MESSAGES/django.po @@ -1,201 +1,238 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: ro-ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Denumirea proiectului" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Nume de domeniu Frontend" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Numele domeniului de bază" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Denumirea societății" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Adresa societății" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Numărul de telefon al societății" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "Gazdă SMTP" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "Portul SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Utilizați TLS (specificați 0 pentru Nu și 1 pentru Da)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Utilizați SSL (specificați 0 pentru Nu și 1 pentru Da)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Nume utilizator SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Parola SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Adresa expeditorului e-mailurilor" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL-ul gateway-ului de plată" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Token pentru gateway-ul de plată" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Suma minimă a gateway-ului de plată" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Suma maximă a gateway-ului de plată" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Cheie API pentru rata de schimb" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "Cheie API OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"Cheie API abstractă, dacă este goală - nu sunt furnizate caracteristici " +"abstracte" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "Proxy HTTP" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Dezactivați funcționalitatea de cumpărare" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "O entitate pentru stocarea datelor privind publicitatea" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "O entitate pentru stocarea datelor analitice" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bine ați venit la documentația {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Documentația API B2B.\n" +"\n" +"API-ul {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API este conceput pentru a oferi o integrare fără probleme pentru comercianții care vând o gamă largă de produse electronice. Prin intermediul acestui API, comercianții parteneri pot gestiona cu ușurință produsele, comenzile și inventarul, accesând în același timp nivelurile stocurilor în timp real.\n" +"\n" +"## Caracteristici cheie\n" +"- **Product Management: ** Creați, actualizați și gestionați cu ușurință listele de produse cu specificații detaliate.\n" +"- **Procesarea comenzilor:** Gestionați eficient comenzile voluminoase cu operațiuni simplificate pentru comercianți.\n" +"- **Gestionarea stocurilor:** Urmăriți nivelul stocurilor în timp real, asigurând o execuție fără probleme.\n" +"- **Secure Transactions:** Tranzacții sigure și criptate pentru a proteja informațiile comerciale sensibile.\n" +"- **Suport în mai multe valute:** Extindeți aria de acoperire a pieței dvs. cu tranzacții în mai multe valute.\n" +"- **Notificări în timp real:** Rămâneți la curent cu alertele instantanee privind modificările stocurilor și starea comenzilor.\n" +"\n" +"## Autentificare\n" +"- Autentificarea se realizează prin intermediul token-ului dvs. de comerciant. Includeți tokenul în antetul `X-EVIBES-B2B-AUTH` al cererilor dvs. în formatul `Bearer `.\n" +"\n" +"## I18N\n" +"- Aplicați un antet `Accept-Language` pentru a utiliza o altă limbă decât cea implicită. O listă a tuturor limbilor este disponibilă la `/app/languages/`.\n" +"\n" +"## Versiune\n" +"Versiunea curentă a API: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Bine ați venit la documentația {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" +"\n" +"API-ul {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API este hub-ul central pentru gestionarea listelor de produse, monitorizarea comenzilor și accesarea analizelor pentru magazinul dvs. de electronice. Acesta oferă puncte finale RESTful pentru gestionarea operațiunilor backend ale magazinului dvs. și include opțiuni REST și GraphQL.\n" +"\n" +"## Caracteristici cheie\n" +"- **Product Catalog:** Gestionați detaliile, prețurile și disponibilitatea produselor.\n" +"- **Order Management:** Accesați informații detaliate despre comenzi și procesați eficient cererile clienților.\n" +"- **Role și permisiuni ale utilizatorilor:** Setați rolurile și permisiunile utilizatorilor pentru gestionarea internă.\n" +"- **Integrații personalizate:** Conectați sistemul dvs. cu platforme externe prin API-uri puternice.\n" +"- **Raportare detaliată:** Generați rapoarte complete privind comenzile, performanța vânzărilor și datele despre produse.\n" +"- **Date în timp real:** Obțineți actualizări în timp real cu privire la inventar, prețuri și statusul comenzilor.\n" +"\n" +"## Autentificare\n" +"- Autentificarea este gestionată prin jetoane JWT. Includeți tokenul în antetul `X-EVIBES-AUTH` al cererilor dvs. în formatul `Bearer `.\n" +"- Durata de viață a jetonului de acces este {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Durata de viață a jetonului de reîmprospătare este de {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} ore.\n" +"- Jetoanele de reîmprospătare sunt invalidate automat după utilizare.\n" +"\n" +"## I18N\n" +"- Aplicați un antet `Accept-Language` pentru a utiliza o altă limbă decât cea implicită. O listă a tuturor limbilor este disponibilă la `/app/languages/`.\n" +"\n" +"## Versiune\n" +"Versiunea curentă a API: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Documentație" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Vitrină" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Sprijin" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Docuri GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Platforma REST Docs" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "Docuri B2B REST" diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.mo b/evibes/locale/ru_RU/LC_MESSAGES/django.mo index 0fc354f2efc739e96c080c8e83cbb0ebc294d822..602a047310ca62565095ed89b9fab60044dc3755 100644 GIT binary patch literal 11543 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 mOB7G(~q delta 71 zcmbOp^_`2C0F8$(DkbCkqNiGco`G DE{q3m diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.po b/evibes/locale/ru_RU/LC_MESSAGES/django.po index 9a7d8f60..ee39ab92 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/evibes/locale/ru_RU/LC_MESSAGES/django.po @@ -1,201 +1,237 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: ru-ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "Название проекта" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "Доменное имя фронтенд-приложения" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "Базовое доменное имя" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "Название компании" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "Адрес компании" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "Номер телефона компании" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP-хост" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "Порт SMTP" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "Использовать TLS (укажите 0 для \"Нет\" и 1 для \"Да\")" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "Использовать SSL (укажите 0 для \"Нет\" и 1 для \"Да\")" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "Имя пользователя SMTP" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "Пароль SMTP" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "Адрес отправителя электронного письма" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "URL-адрес платежного шлюза" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "Токен платежного шлюза" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "Минимальная сумма платежного шлюза" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "Максимальная сумма платежного шлюза" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "Ключ API обменного курса" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "URL-адрес API OpenStreetMap Nominatim" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "Ключ API OpenAI" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" msgstr "" +"API-ключ Abstract, если пустой - `абстрактные` функции не предоставляются" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP-прокси" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "Отключить функцию покупки" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "Устройство для хранения данных о рекламе" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "Сущность для хранения аналитических данных" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Добро пожаловать в {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Документация по B2B API.\n" +"\n" +"API {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API разработан для обеспечения бесшовной интеграции для продавцов, продающих широкий спектр электроники. С помощью этого API продавцы-партнеры могут легко управлять товарами, заказами и инвентарем, получая доступ к уровню запасов в режиме реального времени.\n" +"\n" +"## Ключевые особенности\n" +"- **Управление продуктами:** Удобное создание, обновление и управление списками продуктов с подробными характеристиками.\n" +"- **Обработка заказов:** Эффективная обработка оптовых заказов с оптимизированными операциями для продавцов.\n" +"- **Управление запасами:** Следите за уровнем запасов в режиме реального времени, обеспечивая бесперебойное выполнение заказов.\n" +"- **Безопасные транзакции:** Безопасные и зашифрованные транзакции для защиты конфиденциальной деловой информации.\n" +"- Мультивалютная поддержка:** Расширьте свой рынок с помощью мультивалютных транзакций.\n" +"- **Уведомления в режиме реального времени:** Получайте мгновенные уведомления об изменениях на складе и статусе заказа.\n" +"\n" +"## Аутентификация\n" +"- Аутентификация осуществляется с помощью токена продавца. Включите токен в заголовок `X-EVIBES-B2B-AUTH` ваших запросов в формате `Bearer <ваш_токен>`.\n" +"\n" +"## I18N\n" +"- Применяйте заголовок `Accept-Language` для использования языка не по умолчанию. Список всех языков доступен по адресу `/app/languages/`.\n" +"\n" +"## Версия\n" +"Текущая версия API: {EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"Добро пожаловать в {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Документация по API платформы.\n" +"\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API является центральным узлом для управления списками товаров, мониторинга заказов и доступа к аналитике для вашего магазина электроники. Он предоставляет конечные точки REST для управления внутренними операциями вашего магазина и включает в себя как REST, так и GraphQL.\n" +"\n" +"## Ключевые особенности.\n" +"- **Каталог товаров:** Управление информацией о товарах, ценами и наличием.\n" +"- **Управление заказами:** Доступ к подробной информации о заказе и эффективная обработка запросов клиентов.\n" +"- **Роли и разрешения пользователей:** Настройка ролей и разрешений пользователей для внутреннего управления.\n" +"- **Заказные интеграции:** Соедините вашу систему с внешними платформами с помощью мощных API.\n" +"- **Подробная отчетность:** Создавайте подробные отчеты о заказах, показателях продаж и данных о товарах.\n" +"- **Данные в режиме реального времени:** Получайте оперативные обновления о состоянии запасов, ценах и заказах.\n" +"\n" +"## Аутентификация\n" +"- Аутентификация осуществляется с помощью JWT-токенов. Включите токен в заголовок `X-EVIBES-AUTH` ваших запросов в формате `Bearer <ваш_токен>`.\n" +"- Срок действия токена доступа составляет {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Время жизни маркера обновления составляет {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} часов.\n" +"- Токены обновления автоматически аннулируются после использования.\n" +"\n" +"## I18N\n" +"- Применяйте заголовок `Accept-Language` для использования языка не по умолчанию. Список всех языков доступен по адресу `/app/languages/`.\n" +"\n" +"## Версия\n" +"Текущая версия API: {EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "Документация" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "Витрина" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "Поддержка" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "Документация по GraphQL" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "Документация по REST" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "Документация по B2B REST" diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.mo b/evibes/locale/zh_Hans/LC_MESSAGES/django.mo index ed31f42bbfeb1182dc2214a08da21ac4118d2798..a1befa3237a1c270ed29a097b7405cbe63237d02 100644 GIT binary patch literal 7887 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 delta 84 zcmX?a+s$loPl#nI0}wC*u?!Ha05LNV>i{tbSO9S#P|^}egVeylWJ|%zlZAzf_zbNT P3UW$|5_4<~thpEfqaF)J diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.po b/evibes/locale/zh_Hans/LC_MESSAGES/django.po index 1380a17d..55464e4b 100644 --- a/evibes/locale/zh_Hans/LC_MESSAGES/django.po +++ b/evibes/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,202 +1,236 @@ -# EVIBES GETTEXT TRANSLATIONS -# Copyright (C) 2025 EGOR GORBUNOV -# This file is distributed under the same license as the EVIBES package. -# EGOR GORBUNOV , 2025. # msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:31+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: zh-hans\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: evibes/settings/constance.py:18 msgid "Name of the project" -msgstr "" +msgstr "项目名称" #: evibes/settings/constance.py:19 msgid "Frontend domain name" -msgstr "" +msgstr "前台域名" #: evibes/settings/constance.py:20 msgid "Base domain name" -msgstr "" +msgstr "基础域名" #: evibes/settings/constance.py:21 msgid "Name of the company" -msgstr "" +msgstr "公司名称" #: evibes/settings/constance.py:22 msgid "Address of the company" -msgstr "" +msgstr "公司地址" #: evibes/settings/constance.py:23 msgid "Phone number of the company" -msgstr "" +msgstr "公司电话号码" + +#: evibes/settings/constance.py:24 +msgid "SMTP host" +msgstr "SMTP 主机" + +#: evibes/settings/constance.py:25 +msgid "SMTP port" +msgstr "SMTP 端口" #: evibes/settings/constance.py:26 -msgid "Designates whether every product has one stock or not" -msgstr "" +msgid "Use TLS (Specify 0 for No and 1 for Yes)" +msgstr "使用 TLS(0 表示否,1 表示是)" + +#: evibes/settings/constance.py:27 +msgid "Use SSL (Specify 0 for No and 1 for Yes)" +msgstr "使用 SSL(0 表示否,1 表示是)" #: evibes/settings/constance.py:28 -msgid "SMTP host" -msgstr "" +msgid "SMTP username" +msgstr "SMTP 用户名" #: evibes/settings/constance.py:29 -msgid "SMTP port" -msgstr "" +msgid "SMTP password" +msgstr "SMTP 密码" #: evibes/settings/constance.py:30 -msgid "Use TLS (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Mail from option" +msgstr "邮件发件人地址" #: evibes/settings/constance.py:31 -msgid "Use SSL (Specify 0 for No and 1 for Yes)" -msgstr "" +msgid "Payment gateway URL" +msgstr "付款网关 URL" #: evibes/settings/constance.py:32 -msgid "SMTP username" -msgstr "" +msgid "Payment gateway token" +msgstr "支付网关令牌" #: evibes/settings/constance.py:33 -msgid "SMTP password" -msgstr "" +msgid "Payment gateway minimum amount" +msgstr "支付网关最低金额" #: evibes/settings/constance.py:34 -msgid "Mail from option" -msgstr "" +msgid "Payment gateway maximum amount" +msgstr "支付网关最高限额" #: evibes/settings/constance.py:35 -msgid "Payment gateway URL" -msgstr "" +msgid "Exchange rate API key" +msgstr "汇率 API 密钥" #: evibes/settings/constance.py:36 -msgid "Payment gateway token" -msgstr "" +msgid "OpenStreetMap Nominatim API URL" +msgstr "OpenStreetMap Nominatim API URL" #: evibes/settings/constance.py:37 -msgid "Payment gateway minimum amount" -msgstr "" - -#: evibes/settings/constance.py:38 -msgid "Payment gateway maximum amount" -msgstr "" - -#: evibes/settings/constance.py:39 -msgid "Exchange rate API key" -msgstr "" +msgid "OpenAI API Key" +msgstr "OpenAI API 密钥" #: evibes/settings/constance.py:40 -msgid "OpenStreetMap Nominatim API URL" -msgstr "" - -#: evibes/settings/constance.py:41 -msgid "OpenAI API Key" -msgstr "" - -#: evibes/settings/constance.py:44 msgid "Abstract API Key, if empty - no Abstract features provided" -msgstr "" +msgstr "抽象 API 密钥,如果为空 - 不提供抽象功能" + +#: evibes/settings/constance.py:42 +msgid "HTTP Proxy" +msgstr "HTTP 代理服务器" + +#: evibes/settings/constance.py:43 +msgid "Disable buy functionality" +msgstr "禁用购买功能" #: evibes/settings/constance.py:46 -msgid "HTTP Proxy" -msgstr "" - -#: evibes/settings/constance.py:47 -msgid "Disable buy functionality" -msgstr "" - -#: evibes/settings/constance.py:50 msgid "An entity for storing advertisiment data" -msgstr "" +msgstr "存储广告数据的实体" -#: evibes/settings/constance.py:55 +#: evibes/settings/constance.py:51 msgid "An entity for storing analytics data" -msgstr "" +msgstr "存储分析数据的实体" #: evibes/settings/drf.py:49 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to " -"provide seamless integration for merchants selling a wide range of " -"electronics. Through this API, partnered merchants can manage products, " -"orders, and inventory with ease, while accessing real-time stock levels.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} B2B API is designed to provide seamless integration for merchants selling a wide range of electronics. Through this API, partnered merchants can manage products, orders, and inventory with ease, while accessing real-time stock levels.\n" "\n" "## Key Features\n" -"- **Product Management:** Easily create, update, and manage your product " -"listings with detailed specifications.\n" -"- **Order Processing:** Handle bulk orders efficiently with streamlined " -"operations for merchants.\n" -"- **Inventory Management:** Keep track of stock levels in real-time, " -"ensuring smooth fulfillment.\n" -"- **Secure Transactions:** Secure and encrypted transactions to protect " -"sensitive business information.\n" -"- **Multi-Currency Support:** Expand your market reach with multi-currency " -"transactions.\n" -"- **Real-Time Notifications:** Stay updated with instant alerts on stock " -"changes and order statuses.\n" +"- **Product Management:** Easily create, update, and manage your product listings with detailed specifications.\n" +"- **Order Processing:** Handle bulk orders efficiently with streamlined operations for merchants.\n" +"- **Inventory Management:** Keep track of stock levels in real-time, ensuring smooth fulfillment.\n" +"- **Secure Transactions:** Secure and encrypted transactions to protect sensitive business information.\n" +"- **Multi-Currency Support:** Expand your market reach with multi-currency transactions.\n" +"- **Real-Time Notifications:** Stay updated with instant alerts on stock changes and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via your merchant token. Include the token in " -"the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer " -"`.\n" +"- Authentication is handled via your merchant token. Include the token in the `X-EVIBES-B2B-AUTH` header of your requests in the format `Bearer `.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"欢迎访问 {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}B2B API 文档。\n" +"\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}B2B API 旨在为销售各种电子产品的商家提供无缝集成。通过该 API,合作商家可以轻松管理产品、订单和库存,同时访问实时库存水平。\n" +"\n" +"## 关键功能\n" +"- 产品管理:** 轻松创建、更新和管理具有详细规格的产品列表。\n" +"- 订单处理:** 为商家简化操作,高效处理大宗订单。\n" +"- 库存管理:** 实时跟踪库存水平,确保顺利履约。\n" +"- 安全交易:** 安全加密交易,保护敏感商业信息。\n" +"- 多币种支持:** 通过多币种交易扩大市场范围。\n" +"- 实时通知:** 库存变化和订单状态的即时提醒,让您随时了解最新情况。\n" +"\n" +"## 身份验证\n" +"- 通过商家令牌进行身份验证。在请求的 `X-EVIBES-B2B-AUTH` 头中包含令牌,格式为 `Bearer `。\n" +"\n" +"## I18N\n" +"- 应用 `Accept-Language` 头信息以使用非默认语言。所有语言的列表请访问 `/app/languages/`。\n" +"\n" +"## 版本\n" +"当前的 API 版本:{EVIBES_VERSION}\n" #: evibes/settings/drf.py:74 msgid "" "\n" -"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API " -"documentation.\n" +"Welcome to the {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} Platform API documentation.\n" "\n" -"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for " -"managing product listings, monitoring orders, and accessing analytics for " -"your electronics store. It provides RESTful endpoints for managing your " -"store’s backend operations and includes both REST and GraphQL options.\n" +"The {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]} API is the central hub for managing product listings, monitoring orders, and accessing analytics for your electronics store. It provides RESTful endpoints for managing your store’s backend operations and includes both REST and GraphQL options.\n" "\n" "## Key Features\n" "- **Product Catalog:** Manage product details, pricing, and availability.\n" -"- **Order Management:** Access detailed order information and process " -"customer requests efficiently.\n" -"- **User Roles & Permissions:** Set user roles and permissions for internal " -"management.\n" -"- **Custom Integrations:** Connect your system with external platforms " -"through powerful APIs.\n" -"- **Detailed Reporting:** Generate comprehensive reports on orders, sales " -"performance, and product data.\n" -"- **Real-Time Data:** Get live updates on inventory, pricing, and order " -"statuses.\n" +"- **Order Management:** Access detailed order information and process customer requests efficiently.\n" +"- **User Roles & Permissions:** Set user roles and permissions for internal management.\n" +"- **Custom Integrations:** Connect your system with external platforms through powerful APIs.\n" +"- **Detailed Reporting:** Generate comprehensive reports on orders, sales performance, and product data.\n" +"- **Real-Time Data:** Get live updates on inventory, pricing, and order statuses.\n" "\n" "## Authentication\n" -"- Authentication is handled via JWT tokens. Include the token in the `X-" -"EVIBES-AUTH` header of your requests in the format `Bearer `.\n" -"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else " -"\"hours\"}.\n" -"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\")." -"total_seconds() // 3600} hours.\n" +"- Authentication is handled via JWT tokens. Include the token in the `X-EVIBES-AUTH` header of your requests in the format `Bearer `.\n" +"- Access token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600} {\"minutes\" if not DEBUG else \"hours\"}.\n" +"- Refresh token lifetime is {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} hours.\n" "- Refresh tokens are automatically invalidated after usage.\n" "\n" "## I18N\n" -"- Apply an `Accept-Language` header to use non-default language. A list of " -"all languages is available at `/app/languages/`.\n" +"- Apply an `Accept-Language` header to use non-default language. A list of all languages is available at `/app/languages/`.\n" "\n" "## Version\n" "Current API version: {EVIBES_VERSION}\n" msgstr "" +"\n" +"欢迎访问 {CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}平台 API 文档。\n" +"\n" +"{CONSTANCE_CONFIG.get(\"PROJECT_NAME\")[0]}API 是管理产品列表、监控订单和访问电子商店分析的中心枢纽。它提供 RESTful 端点,用于管理商店的后台操作,并包含 REST 和 GraphQL 选项。\n" +"\n" +"## 关键功能\n" +"- 产品目录:** 管理产品详细信息、定价和可用性。\n" +"- 订单管理:** 访问详细的订单信息并高效处理客户请求。\n" +"- 用户角色和权限:** 为内部管理设置用户角色和权限。\n" +"- 自定义集成:** 通过强大的应用程序接口将系统与外部平台连接起来。\n" +"- 详细报告:** 生成有关订单、销售业绩和产品数据的综合报告。\n" +"- 实时数据:** 实时更新库存、定价和订单状态。\n" +"\n" +"## 身份验证\n" +"- 通过 JWT 标记进行身份验证。在请求的 `X-EVIBES-AUTH` 标头中包含令牌,格式为 `Bearer `。\n" +"- 访问令牌的有效期为 {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 60 if not DEBUG else 3600}{\"minutes\" if not DEBUG else \"hours\"}。\n" +"- 刷新令牌的有效期为 {SIMPLE_JWT.get(\"ACCESS_TOKEN_LIFETIME\").total_seconds() // 3600} 小时。\n" +"- 刷新令牌在使用后自动失效。\n" +"\n" +"## I18N\n" +"- 应用 `Accept-Language` 标头来使用非默认语言。所有语言的列表位于 `/app/languages/`。\n" +"\n" +"## 版本\n" +"当前的 API 版本:{EVIBES_VERSION}\n" + +#: evibes/settings/jazzmin.py:21 +msgid "Documentation" +msgstr "文件" + +#: evibes/settings/jazzmin.py:22 +msgid "Storefront" +msgstr "店面" + +#: evibes/settings/jazzmin.py:23 +msgid "Support" +msgstr "支持" + +#: evibes/settings/jazzmin.py:26 +msgid "GraphQL Docs" +msgstr "GraphQL 文档" + +#: evibes/settings/jazzmin.py:31 +msgid "Platform REST Docs" +msgstr "平台 REST 文档" + +#: evibes/settings/jazzmin.py:36 +msgid "B2B REST Docs" +msgstr "B2B REST 文档" diff --git a/evibes/settings/constance.py b/evibes/settings/constance.py index e108ced7..79f1748d 100644 --- a/evibes/settings/constance.py +++ b/evibes/settings/constance.py @@ -21,10 +21,6 @@ CONSTANCE_CONFIG = { "COMPANY_NAME": (getenv("COMPANY_NAME"), _("Name of the company")), "COMPANY_ADDRESS": (getenv("COMPANY_ADDRESS"), _("Address of the company")), "COMPANY_PHONE_NUMBER": (getenv("COMPANY_PHONE_NUMBER"), _("Phone number of the company")), - "STOCKS_ARE_SINGLE": ( - getenv("STOCKS_ARE_SINGLE", True), - _("Designates whether every product has one stock or not"), - ), "EMAIL_HOST": (getenv("EMAIL_HOST", "smtp.404.org"), _("SMTP host")), "EMAIL_PORT": (int(getenv("EMAIL_PORT", "465")), _("SMTP port")), "EMAIL_USE_TLS": (bool(int(getenv("EMAIL_USE_TLS", 0))), _("Use TLS (Specify 0 for No and 1 for Yes)")), diff --git a/evibes/settings/jazzmin.py b/evibes/settings/jazzmin.py index 98ad6b2d..ce63eb43 100644 --- a/evibes/settings/jazzmin.py +++ b/evibes/settings/jazzmin.py @@ -18,11 +18,25 @@ JAZZMIN_SETTINGS = { "user_avatar": "avatar", "topmenu_links": [ {"name": "Home", "url": "admin:index"}, + {"name": _("Documentation"), "url": "admin:docs"}, {"name": _("Storefront"), "url": f"https://{CONSTANCE_CONFIG.get('BASE_DOMAIN')[0]}", "new_window": True}, {"name": _("Support"), "url": "https://t.me/fureunoir", "new_window": True}, {"name": "GitLab", "url": "https://gitlab.com/wiseless/evibes", "new_window": True}, - {}, - {}, + { + "name": _("GraphQL Docs"), + "url": f"https://api.{CONSTANCE_CONFIG.get('BASE_DOMAIN')[0]}/graphql", # type: ignore + "new_window": True, + }, + { + "name": _("Platform REST Docs"), + "url": f"https://api.{CONSTANCE_CONFIG.get('BASE_DOMAIN')[0]}/docs/swagger", # type: ignore + "new_window": True, + }, + { + "name": _("B2B REST Docs"), + "url": f"https://b2b.{CONSTANCE_CONFIG.get('BASE_DOMAIN')[0]}/docs/swagger", # type: ignore + "new_window": True, + }, ], "usermenu_links": [], "show_sidebar": True, diff --git a/payments/locale/ar_AR/LC_MESSAGES/django.po b/payments/locale/ar_AR/LC_MESSAGES/django.po index 5a8dfcc9..7fb2ab64 100644 --- a/payments/locale/ar_AR/LC_MESSAGES/django.po +++ b/payments/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "تفاصيل المعالجة" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"يجب أن يتناسب مبلغ المعاملة مع " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"يجب أن يتناسب مبلغ المعاملة مع {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "مطلوب مزود للحصول على الأسعار من" msgid "couldn't find provider {provider}" msgstr "تعذّر العثور على الموفر {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | إيداع الرصيد" diff --git a/payments/locale/cs_CZ/LC_MESSAGES/django.po b/payments/locale/cs_CZ/LC_MESSAGES/django.po index e7ed0f46..4591b484 100644 --- a/payments/locale/cs_CZ/LC_MESSAGES/django.po +++ b/payments/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Podrobnosti o zpracování" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Částka transakce se musí vejít do rozmezí " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." +"Částka transakce se musí vejít do rozmezí {config.PAYMENT_GATEWAY_MINIMUM}-" +"{config.PAYMENT_GATEWAY_MAXIMUM}." #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "Je třeba mít poskytovatele, od kterého lze získat sazby" msgid "couldn't find provider {provider}" msgstr "Nepodařilo se najít poskytovatele {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Zůstatek vkladu" diff --git a/payments/locale/da_DK/LC_MESSAGES/django.po b/payments/locale/da_DK/LC_MESSAGES/django.po index b57ddfa8..dee00280 100644 --- a/payments/locale/da_DK/LC_MESSAGES/django.po +++ b/payments/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Behandling af detaljer" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Transaktionsbeløbet skal passe ind i " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." +"Transaktionsbeløbet skal passe ind i {config.PAYMENT_GATEWAY_MINIMUM}-" +"{config.PAYMENT_GATEWAY_MAXIMUM}." #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "Der er brug for en udbyder at få priser fra" msgid "couldn't find provider {provider}" msgstr "Kunne ikke finde udbyder {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Saldoindbetaling" diff --git a/payments/locale/de_DE/LC_MESSAGES/django.po b/payments/locale/de_DE/LC_MESSAGES/django.po index 15de2683..c045e97f 100644 --- a/payments/locale/de_DE/LC_MESSAGES/django.po +++ b/payments/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Details zur Verarbeitung" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Der Transaktionsbetrag muss zwischen " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM} liegen" +"Der Transaktionsbetrag muss zwischen {config.PAYMENT_GATEWAY_MINIMUM}-" +"{config.PAYMENT_GATEWAY_MAXIMUM} liegen" #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "Sie benötigen einen Anbieter, bei dem Sie die Preise erfragen können." msgid "couldn't find provider {provider}" msgstr "Anbieter {provider} konnte nicht gefunden werden" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Saldo Einzahlung" diff --git a/payments/locale/en_GB/LC_MESSAGES/django.po b/payments/locale/en_GB/LC_MESSAGES/django.po index c6bb4455..231a1572 100644 --- a/payments/locale/en_GB/LC_MESSAGES/django.po +++ b/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: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -120,7 +120,7 @@ msgstr "A provider to get rates from is required" msgid "couldn't find provider {provider}" msgstr "Couldn't find provider {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Balance Deposit" diff --git a/payments/locale/en_US/LC_MESSAGES/django.po b/payments/locale/en_US/LC_MESSAGES/django.po index f6465785..2aa96ff4 100644 --- a/payments/locale/en_US/LC_MESSAGES/django.po +++ b/payments/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Processing details" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"Transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "A provider to get rates from is required" msgid "couldn't find provider {provider}" msgstr "Couldn't find provider {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Balance Deposit" diff --git a/payments/locale/es_ES/LC_MESSAGES/django.po b/payments/locale/es_ES/LC_MESSAGES/django.po index 1de2abb2..59161299 100644 --- a/payments/locale/es_ES/LC_MESSAGES/django.po +++ b/payments/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Detalles del proceso" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"El importe de la transacción debe ajustarse a " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"El importe de la transacción debe ajustarse a {config." +"PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" #: payments/models.py:61 msgid "balance" @@ -95,7 +95,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." #: payments/templates/balance_deposit_email.html:107 @@ -116,7 +117,7 @@ msgstr "Se necesita un proveedor del que obtener tarifas" msgid "couldn't find provider {provider}" msgstr "No se ha podido encontrar el proveedor {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Depósito de saldo" diff --git a/payments/locale/fr_FR/LC_MESSAGES/django.po b/payments/locale/fr_FR/LC_MESSAGES/django.po index 2319678c..51d53a90 100644 --- a/payments/locale/fr_FR/LC_MESSAGES/django.po +++ b/payments/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Détails du traitement" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Le montant de la transaction doit être compris entre " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." +"Le montant de la transaction doit être compris entre {config." +"PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." #: payments/models.py:61 msgid "balance" @@ -95,7 +95,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." #: payments/templates/balance_deposit_email.html:107 @@ -109,15 +110,14 @@ msgstr "Tous droits réservés" #: 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" #: payments/utils/__init__.py:15 #, python-brace-format msgid "couldn't find provider {provider}" msgstr "Impossible de trouver le fournisseur {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Dépôt de solde" diff --git a/payments/locale/hi_IN/LC_MESSAGES/django.po b/payments/locale/hi_IN/LC_MESSAGES/django.po index c93e735e..1e125048 100644 --- a/payments/locale/hi_IN/LC_MESSAGES/django.po +++ b/payments/locale/hi_IN/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:40+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -113,7 +113,7 @@ msgstr "" msgid "couldn't find provider {provider}" msgstr "" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "" diff --git a/payments/locale/it_IT/LC_MESSAGES/django.po b/payments/locale/it_IT/LC_MESSAGES/django.po index 50d12ae9..32161916 100644 --- a/payments/locale/it_IT/LC_MESSAGES/django.po +++ b/payments/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Dettagli di elaborazione" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"L'importo della transazione deve rientrare in " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"L'importo della transazione deve rientrare in {config." +"PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" #: payments/models.py:61 msgid "balance" @@ -95,7 +95,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." #: payments/templates/balance_deposit_email.html:107 @@ -116,7 +117,7 @@ msgstr "È necessario un fornitore da cui ottenere le tariffe" msgid "couldn't find provider {provider}" msgstr "Impossibile trovare il fornitore {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Deposito a saldo" diff --git a/payments/locale/ja_JP/LC_MESSAGES/django.po b/payments/locale/ja_JP/LC_MESSAGES/django.po index 4c8d5b7d..fbaaeb0f 100644 --- a/payments/locale/ja_JP/LC_MESSAGES/django.po +++ b/payments/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,10 +52,11 @@ msgstr "加工内容" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"取引金額は{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}に収まる必要があります。" +"取引金額は{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}に" +"収まる必要があります。" #: payments/models.py:61 msgid "balance" @@ -115,7 +116,7 @@ msgstr "レートを取得するプロバイダーが必要" msgid "couldn't find provider {provider}" msgstr "{provider}プロバイダーが見つかりません。" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME}| 預金残高" diff --git a/payments/locale/kk_KZ/LC_MESSAGES/django.po b/payments/locale/kk_KZ/LC_MESSAGES/django.po index c93e735e..1e125048 100644 --- a/payments/locale/kk_KZ/LC_MESSAGES/django.po +++ b/payments/locale/kk_KZ/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:40+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -113,7 +113,7 @@ msgstr "" msgid "couldn't find provider {provider}" msgstr "" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "" diff --git a/payments/locale/nl_NL/LC_MESSAGES/django.po b/payments/locale/nl_NL/LC_MESSAGES/django.po index 76999271..670bfa0d 100644 --- a/payments/locale/nl_NL/LC_MESSAGES/django.po +++ b/payments/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Verwerkingsdetails" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Het transactiebedrag moet passen binnen " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." +"Het transactiebedrag moet passen binnen {config.PAYMENT_GATEWAY_MINIMUM}-" +"{config.PAYMENT_GATEWAY_MAXIMUM}." #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "Een provider om tarieven van te krijgen is vereist" msgid "couldn't find provider {provider}" msgstr "Kon provider {provider} niet vinden" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Saldo storting" diff --git a/payments/locale/pl_PL/LC_MESSAGES/django.po b/payments/locale/pl_PL/LC_MESSAGES/django.po index 3e8005d4..bb3f1061 100644 --- a/payments/locale/pl_PL/LC_MESSAGES/django.po +++ b/payments/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Szczegóły przetwarzania" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Kwota transakcji musi mieścić się w przedziale " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." +"Kwota transakcji musi mieścić się w przedziale {config." +"PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}." #: payments/models.py:61 msgid "balance" @@ -95,7 +95,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." #: payments/templates/balance_deposit_email.html:107 @@ -116,7 +117,7 @@ msgstr "Wymagany jest dostawca, od którego można uzyskać stawki" msgid "couldn't find provider {provider}" msgstr "Nie można znaleźć dostawcy {provider}." -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Wpłata salda" diff --git a/payments/locale/pt_BR/LC_MESSAGES/django.po b/payments/locale/pt_BR/LC_MESSAGES/django.po index 9ca89ceb..48074d9a 100644 --- a/payments/locale/pt_BR/LC_MESSAGES/django.po +++ b/payments/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Detalhes do processamento" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"O valor da transação deve se enquadrar em " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"O valor da transação deve se enquadrar em {config.PAYMENT_GATEWAY_MINIMUM}-" +"{config.PAYMENT_GATEWAY_MAXIMUM}" #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "É necessário um provedor para obter as tarifas" msgid "couldn't find provider {provider}" msgstr "Não foi possível encontrar o provedor {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Depósito de saldo" diff --git a/payments/locale/ro_RO/LC_MESSAGES/django.po b/payments/locale/ro_RO/LC_MESSAGES/django.po index 6c4601d8..417b7ff9 100644 --- a/payments/locale/ro_RO/LC_MESSAGES/django.po +++ b/payments/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Detalii de prelucrare" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Valoarea tranzacției trebuie să se încadreze în " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"Valoarea tranzacției trebuie să se încadreze în {config." +"PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "Este necesar un furnizor de la care să se obțină tarife" msgid "couldn't find provider {provider}" msgstr "Nu am putut găsi furnizorul {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Depozit sold" diff --git a/payments/locale/ru_RU/LC_MESSAGES/django.po b/payments/locale/ru_RU/LC_MESSAGES/django.po index 8d6432cc..5a00a637 100644 --- a/payments/locale/ru_RU/LC_MESSAGES/django.po +++ b/payments/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "Детали обработки" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"Сумма транзакции должна вписываться в " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"Сумма транзакции должна вписываться в {config.PAYMENT_GATEWAY_MINIMUM}-" +"{config.PAYMENT_GATEWAY_MAXIMUM}" #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "Требуется поставщик, у которого можно п msgid "couldn't find provider {provider}" msgstr "Не удалось найти провайдера {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME} | Депозит баланса" diff --git a/payments/locale/zh_Hans/LC_MESSAGES/django.po b/payments/locale/zh_Hans/LC_MESSAGES/django.po index 3f639b94..73e94f8c 100644 --- a/payments/locale/zh_Hans/LC_MESSAGES/django.po +++ b/payments/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-22 18:07+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -52,11 +52,11 @@ msgstr "处理细节" #: payments/models.py:39 #, python-brace-format msgid "" -"transaction amount must fit into " -"{config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM}" +"transaction amount must fit into {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM}" msgstr "" -"交易金额必须符合 {config.PAYMENT_GATEWAY_MINIMUM}-{config.PAYMENT_GATEWAY_MAXIMUM} " -"的规定。" +"交易金额必须符合 {config.PAYMENT_GATEWAY_MINIMUM}-{config." +"PAYMENT_GATEWAY_MAXIMUM} 的规定。" #: payments/models.py:61 msgid "balance" @@ -116,7 +116,7 @@ msgstr "需要提供商提供费率" msgid "couldn't find provider {provider}" msgstr "找不到提供方 {provider}" -#: payments/utils/emailing.py:27 +#: payments/utils/emailing.py:28 #, python-brace-format msgid "{config.PROJECT_NAME} | balance deposit" msgstr "{config.PROJECT_NAME}| 余额存款" diff --git a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po index 269fa4db..2036a39b 100644 --- a/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ar_AR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "الرصيد" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "الطلب" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "الطلبات" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "معلومات شخصية" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "الأذونات" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "تواريخ مهمة" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "معلومات إضافية" @@ -281,23 +281,23 @@ msgstr "الرمز المميز المدرج في القائمة السوداء" msgid "blacklisted tokens" msgstr "الرموز المميزة المدرجة في القائمة السوداء" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "لم يتم العثور على حساب نشط" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "تم إدراج الرمز المميز في القائمة السوداء" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "رمز غير صالح" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "لا توجد مطالبة معرف المستخدم في الرمز المميز" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "المستخدم غير موجود" diff --git a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po index 463f8e62..3b6c2375 100644 --- a/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/cs_CZ/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Bilance" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Objednávka" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Objednávky" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Osobní informace" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Oprávnění" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Důležitá data" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Další informace" @@ -280,23 +280,23 @@ msgstr "Token na černé listině" msgid "blacklisted tokens" msgstr "Tokeny na černé listině" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Nebyl nalezen žádný aktivní účet" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token na černé listině" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Neplatný token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "V tokenu není deklarace uuid uživatele" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "Uživatel neexistuje" diff --git a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po index a045f38f..4c85f569 100644 --- a/vibes_auth/locale/da_DK/LC_MESSAGES/django.po +++ b/vibes_auth/locale/da_DK/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Balance" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Bestil" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Bestillinger" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Personlig information" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Tilladelser" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Vigtige datoer" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Yderligere information" @@ -282,23 +282,23 @@ msgstr "Sortlistet token" msgid "blacklisted tokens" msgstr "Sortlistede tokens" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Ingen aktiv konto fundet" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token blacklistet" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Ugyldigt token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "Ingen bruger-uuid-krav til stede i token" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "Brugeren findes ikke" diff --git a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po index 8d2a35b5..424c1a4d 100644 --- a/vibes_auth/locale/de_DE/LC_MESSAGES/django.po +++ b/vibes_auth/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Waage" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Bestellung" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Bestellungen" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Persönliche Informationen" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Erlaubnisse" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Wichtige Termine" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Zusätzliche Informationen" @@ -287,23 +287,23 @@ msgstr "Token auf der schwarzen Liste" msgid "blacklisted tokens" msgstr "Token auf der schwarzen Liste" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Kein aktives Konto gefunden" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token auf der schwarzen Liste" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Ungültiges Token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "Kein Benutzer uuid-Anspruch im Token vorhanden" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "Benutzer existiert nicht" diff --git a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po index 69c069f4..db669f90 100644 --- a/vibes_auth/locale/en_GB/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_GB/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 Egor "fureunoir" Gorbunov # This file is distributed under the same license as the eVibes package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -22,27 +22,27 @@ msgstr "" msgid "balance" msgstr "Balance" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Order" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Orders" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Personal Info" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissions" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Important dates" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Additional Info" @@ -284,23 +284,23 @@ msgstr "Blacklisted token" msgid "blacklisted tokens" msgstr "Blacklisted tokens" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "No active account found" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token blacklisted" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "User does not exist" diff --git a/vibes_auth/locale/en_US/LC_MESSAGES/django.po b/vibes_auth/locale/en_US/LC_MESSAGES/django.po index cbf93d02..6aaa7ef7 100644 --- a/vibes_auth/locale/en_US/LC_MESSAGES/django.po +++ b/vibes_auth/locale/en_US/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Balance" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Order" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Orders" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Personal Info" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissions" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Important dates" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Additional Info" @@ -280,23 +280,23 @@ msgstr "Blacklisted token" msgid "blacklisted tokens" msgstr "Blacklisted tokens" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "No active account found" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token blacklisted" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "User does not exist" diff --git a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po index f51db134..a496ee77 100644 --- a/vibes_auth/locale/es_ES/LC_MESSAGES/django.po +++ b/vibes_auth/locale/es_ES/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Saldo" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Pida" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Pedidos" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Información personal" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permisos" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Fechas importantes" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Información adicional" @@ -283,23 +283,23 @@ msgstr "Ficha en la lista negra" msgid "blacklisted tokens" msgstr "Fichas en la lista negra" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "No se ha encontrado ninguna cuenta activa" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Ficha en la lista negra" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Token no válido" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "No user uuid claim present in token" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "El usuario no existe" diff --git a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po index ab1f4ec8..81945a24 100644 --- a/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/fr_FR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Balance" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Commande" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Commandes" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Informations personnelles" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissions" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Important dates" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Informations complémentaires" @@ -289,23 +289,23 @@ msgstr "Jeton sur liste noire" msgid "blacklisted tokens" msgstr "Jetons sur liste noire" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Aucun compte actif trouvé" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token sur liste noire" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Jeton non valide" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "L'utilisateur n'existe pas" diff --git a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po index bb8f1f37..ad89279f 100644 --- a/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po +++ b/vibes_auth/locale/hi_IN/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -21,27 +21,27 @@ msgstr "" msgid "balance" msgstr "" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "" @@ -281,23 +281,23 @@ msgstr "" msgid "blacklisted tokens" msgstr "" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "" diff --git a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po index 2fb50c91..4f377820 100644 --- a/vibes_auth/locale/it_IT/LC_MESSAGES/django.po +++ b/vibes_auth/locale/it_IT/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Equilibrio" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Ordine" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Ordini" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Informazioni personali" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permessi" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Date importanti" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Ulteriori informazioni" @@ -285,23 +285,23 @@ msgstr "Token in lista nera" msgid "blacklisted tokens" msgstr "Gettoni nella lista nera" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Nessun conto attivo trovato" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token nella lista nera" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Token non valido" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "Nessuna richiesta di uuid utente presente nel token" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "L'utente non esiste" diff --git a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po index a2bd3865..b8d8a4b7 100644 --- a/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ja_JP/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "バランス" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "オーダー" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "受注状況" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "個人情報" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "アクセス許可" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "重要な日程" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "追加情報" @@ -280,23 +280,23 @@ msgstr "ブラックリストトークン" msgid "blacklisted tokens" msgstr "ブラックリストに載ったトークン" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "アクティブなアカウントが見つかりません" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "トークンのブラックリスト入り" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "無効なトークン" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "トークンにユーザー uuid クレームが存在しない" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "ユーザーが存在しない" diff --git a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po index bb8f1f37..ad89279f 100644 --- a/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po +++ b/vibes_auth/locale/kk_KZ/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -21,27 +21,27 @@ msgstr "" msgid "balance" msgstr "" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "" @@ -281,23 +281,23 @@ msgstr "" msgid "blacklisted tokens" msgstr "" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "" diff --git a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po index 008ca5c8..4c0a13e0 100644 --- a/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/nl_NL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Saldo" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Bestel" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Bestellingen" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Persoonlijke info" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Rechten" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Belangrijke data" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Extra info" @@ -284,23 +284,23 @@ msgstr "Token op zwarte lijst" msgid "blacklisted tokens" msgstr "Tokens op de zwarte lijst" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Geen actieve account gevonden" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token op zwarte lijst" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Invalid token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "Geen gebruiker uuid claim aanwezig in token" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "Gebruiker bestaat niet" diff --git a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po index fb1a818a..84d912da 100644 --- a/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pl_PL/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Równowaga" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Zamówienie" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Zamówienia" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Informacje osobiste" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Uprawnienia" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Ważne daty" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Dodatkowe informacje" @@ -284,23 +284,23 @@ msgstr "Token na czarnej liście" msgid "blacklisted tokens" msgstr "Tokeny znajdujące się na czarnej liście" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Nie znaleziono aktywnego konta" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token na czarnej liście" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Nieprawidłowy token" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "Brak oświadczenia uuid użytkownika w tokenie" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "Użytkownik nie istnieje" diff --git a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po index a1cd0796..f88fc3a8 100644 --- a/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/vibes_auth/locale/pt_BR/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Equilíbrio" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Pedido" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Pedidos" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Informações pessoais" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permissões" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Datas importantes" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Informações adicionais" @@ -281,23 +281,23 @@ msgstr "Token na lista negra" msgid "blacklisted tokens" msgstr "Tokens na lista negra" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Nenhuma conta ativa encontrada" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token na lista negra" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Token inválido" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "Nenhuma reivindicação de uuid de usuário presente no token" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "O usuário não existe" diff --git a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po index b28bed23..d16c7dfa 100644 --- a/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ro_RO/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Echilibru" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Comandă" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Ordine" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Informații personale" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Permisiuni" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Date importante" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Informații suplimentare" @@ -284,23 +284,23 @@ msgstr "Token pe lista neagră" msgid "blacklisted tokens" msgstr "Jetoane pe lista neagră" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Nu s-a găsit niciun cont activ" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Token pe lista neagră" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Jeton invalid" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "În jeton nu este prezentă nicio cerere uuid a utilizatorului" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "Utilizatorul nu există" diff --git a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po index b2c7d8a3..31fa2c4e 100644 --- a/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po +++ b/vibes_auth/locale/ru_RU/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "Баланс" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "Заказать" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "Заказы" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "Личная информация" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "Разрешения" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "Важные даты" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "Дополнительная информация" @@ -284,23 +284,23 @@ msgstr "Токен в черном списке" msgid "blacklisted tokens" msgstr "Токены, внесенные в черный список" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "Активная учетная запись не найдена" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "Токен занесен в черный список" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "Неверный токен" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "В токене отсутствует утверждение uuid пользователя" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "Пользователь не существует" diff --git a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po index b7a5db41..519a64d8 100644 --- a/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/vibes_auth/locale/zh_Hans/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# +# msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-21 22:42+0100\n" +"POT-Creation-Date: 2025-06-29 17:23+0100\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -18,27 +18,27 @@ msgstr "" msgid "balance" msgstr "平衡" -#: vibes_auth/admin.py:44 +#: vibes_auth/admin.py:45 msgid "order" msgstr "订购" -#: vibes_auth/admin.py:45 vibes_auth/graphene/object_types.py:44 +#: vibes_auth/admin.py:46 vibes_auth/graphene/object_types.py:44 msgid "orders" msgstr "订单" -#: vibes_auth/admin.py:54 +#: vibes_auth/admin.py:56 msgid "personal info" msgstr "个人信息" -#: vibes_auth/admin.py:58 vibes_auth/graphene/object_types.py:43 +#: vibes_auth/admin.py:60 vibes_auth/graphene/object_types.py:43 msgid "permissions" msgstr "权限" -#: vibes_auth/admin.py:71 +#: vibes_auth/admin.py:73 msgid "important dates" msgstr "重要日期" -#: vibes_auth/admin.py:72 +#: vibes_auth/admin.py:74 msgid "additional info" msgstr "其他信息" @@ -278,23 +278,23 @@ msgstr "黑名单令牌" msgid "blacklisted tokens" msgstr "黑名单令牌" -#: vibes_auth/serializers.py:112 vibes_auth/serializers.py:134 +#: vibes_auth/serializers.py:110 vibes_auth/serializers.py:132 msgid "no active account" msgstr "未找到活动账户" -#: vibes_auth/serializers.py:205 +#: vibes_auth/serializers.py:203 msgid "token_blacklisted" msgstr "令牌被列入黑名单" -#: vibes_auth/serializers.py:210 +#: vibes_auth/serializers.py:208 msgid "invalid token" msgstr "无效令牌" -#: vibes_auth/serializers.py:216 +#: vibes_auth/serializers.py:214 msgid "no user uuid claim present in token" msgstr "令牌中没有用户 uuid 声明" -#: vibes_auth/serializers.py:218 +#: vibes_auth/serializers.py:216 msgid "user does not exist" msgstr "用户不存在"