diff --git a/engine/core/locale/ar_AR/LC_MESSAGES/django.mo b/engine/core/locale/ar_AR/LC_MESSAGES/django.mo index 544a862f..7129ab10 100644 Binary files a/engine/core/locale/ar_AR/LC_MESSAGES/django.mo and b/engine/core/locale/ar_AR/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/ar_AR/LC_MESSAGES/django.po b/engine/core/locale/ar_AR/LC_MESSAGES/django.po index 56c2224b..2d4a996e 100644 --- a/engine/core/locale/ar_AR/LC_MESSAGES/django.po +++ b/engine/core/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1084,7 +1084,7 @@ msgstr "البيانات المخزنة مؤقتاً" msgid "camelized JSON data from the requested URL" msgstr "بيانات JSON مجمّلة من عنوان URL المطلوب" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "يُسمح فقط بعناوين URL التي تبدأ ب http(s)://" @@ -2673,6 +2673,67 @@ msgstr "اتصل بنا" msgid "About Us" msgstr "نبذة عنا" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "مشرف موقع جانغو" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "لوحة التحكم" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "الإيرادات (الإجمالي، 30 د)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "الإيرادات (الصافي، 30 د)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "المرتجعات (30 د)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "الطلبات التي تمت معالجتها (30 د)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "المبيعات مقابل العوائد (30 د)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "الإجمالي" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "المرتجعات" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "لا توجد بيانات كافية للرسم البياني حتى الآن." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "روابط سريعة" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "لا توجد روابط متاحة." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "أكثر المنتجات المرغوبة" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "لا توجد بيانات بعد." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "المنتج الأكثر شعبية" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2883,7 +2944,7 @@ msgstr "يجب تكوين معلمة NOMINATIM_URL!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "يجب ألا تتجاوز أبعاد الصورة w{max_width} x h{max_height} بكسل!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2891,7 +2952,7 @@ msgstr "" "يتعامل مع طلب فهرس خريطة الموقع ويعيد استجابة XML. يضمن أن تتضمن الاستجابة " "رأس نوع المحتوى المناسب ل XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2900,16 +2961,16 @@ msgstr "" "يعالج استجابة العرض التفصيلي لخريطة الموقع. تقوم هذه الدالة بمعالجة الطلب، " "وجلب استجابة تفاصيل خريطة الموقع المناسبة، وتعيين رأس نوع المحتوى ل XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "إرجاع قائمة باللغات المدعومة والمعلومات الخاصة بها." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "إرجاع معلمات الموقع الإلكتروني ككائن JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -2917,11 +2978,11 @@ msgstr "" "يعالج عمليات ذاكرة التخزين المؤقت مثل قراءة بيانات ذاكرة التخزين المؤقت " "وتعيينها بمفتاح ومهلة محددة." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "يتعامل مع عمليات إرسال نموذج \"اتصل بنا\"." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -2929,15 +2990,15 @@ msgstr "" "يعالج طلبات معالجة عناوين URL والتحقق من صحة عناوين URL من طلبات POST " "الواردة." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "يتعامل مع استعلامات البحث العامة." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "يتعامل بمنطق الشراء كشركة تجارية دون تسجيل." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2945,31 +3006,31 @@ msgstr "" "يتعامل مع تنزيل الأصل الرقمي المرتبط بأمر ما.\n" "تحاول هذه الدالة خدمة ملف الأصل الرقمي الموجود في دليل التخزين الخاص بالمشروع. إذا لم يتم العثور على الملف، يتم رفع خطأ HTTP 404 للإشارة إلى أن المورد غير متوفر." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "الطلب_برو_منتج_uuid مطلوب" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "طلب المنتج غير موجود" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "يمكنك تنزيل الأصل الرقمي مرة واحدة فقط" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "يجب دفع الطلب قبل تنزيل الأصل الرقمي" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "لا يحتوي منتج الطلب على منتج" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "الرمز المفضل غير موجود" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2977,7 +3038,7 @@ msgstr "" "يتعامل مع طلبات الرمز المفضل لموقع ويب.\n" "تحاول هذه الدالة عرض ملف الأيقونة المفضلة الموجود في الدليل الثابت للمشروع. إذا لم يتم العثور على ملف الأيقونة المفضلة، يتم رفع خطأ HTTP 404 للإشارة إلى أن المورد غير متوفر." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -2987,10 +3048,14 @@ msgstr "" " توجيهها إلى صفحة فهرس واجهة إدارة Django. تستخدم دالة \"إعادة التوجيه\" في " "Django للتعامل مع إعادة توجيه HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "إرجاع الإصدار الحالي من eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "إرجاع المتغيرات المخصصة للوحة التحكم." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo b/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo index ffa342e6..24a70285 100644 Binary files a/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo and b/engine/core/locale/cs_CZ/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/cs_CZ/LC_MESSAGES/django.po b/engine/core/locale/cs_CZ/LC_MESSAGES/django.po index f5cc4c39..359cdbf0 100644 --- a/engine/core/locale/cs_CZ/LC_MESSAGES/django.po +++ b/engine/core/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1119,7 +1119,7 @@ msgstr "Data uložená v mezipaměti" msgid "camelized JSON data from the requested URL" msgstr "Kamelizovaná data JSON z požadované adresy URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Povoleny jsou pouze adresy URL začínající http(s)://." @@ -2738,6 +2738,67 @@ msgstr "Kontaktujte nás" msgid "About Us" msgstr "O nás" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Správce webu Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Přístrojová deska" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Příjmy (hrubé, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Příjmy (čisté, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Návraty (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Zpracované objednávky (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Prodej vs. návratnost (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Hrubý" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Vrací se" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Zatím není dostatek údajů pro graf." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Rychlé odkazy" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Nejsou k dispozici žádné odkazy." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Nejžádanější produkt" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Zatím nejsou k dispozici žádné údaje." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Nejoblíbenější produkt" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2955,7 +3016,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Rozměry obrázku by neměly přesáhnout w{max_width} x h{max_height} pixelů." -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2963,7 +3024,7 @@ msgstr "" "Zpracuje požadavek na index mapy stránek a vrátí odpověď XML. Zajistí, aby " "odpověď obsahovala odpovídající hlavičku typu obsahu XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2973,16 +3034,16 @@ msgstr "" "požadavek, načte příslušnou podrobnou odpověď mapy stránek a nastaví " "hlavičku Content-Type pro XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Vrátí seznam podporovaných jazyků a odpovídajících informací." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Vrátí parametry webové stránky jako objekt JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -2990,11 +3051,11 @@ msgstr "" "Zpracovává operace mezipaměti, jako je čtení a nastavování dat mezipaměti se" " zadaným klíčem a časovým limitem." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Zpracovává odeslání formuláře `contact us`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3002,15 +3063,15 @@ msgstr "" "Zpracovává požadavky na zpracování a ověřování adres URL z příchozích " "požadavků POST." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Zpracovává globální vyhledávací dotazy." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Řeší logiku nákupu jako firmy bez registrace." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3018,31 +3079,31 @@ msgstr "" "Zpracovává stahování digitálního aktiva spojeného s objednávkou.\n" "Tato funkce se pokusí obsloužit soubor digitálního aktiva umístěný v adresáři úložiště projektu. Pokud soubor není nalezen, je vyvolána chyba HTTP 404, která označuje, že zdroj není k dispozici." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid je povinné" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "objednávka produktu neexistuje" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Digitální aktivum můžete stáhnout pouze jednou" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "objednávka musí být zaplacena před stažením digitálního aktiva." -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Objednaný produkt nemá produkt" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon nebyl nalezen" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3050,7 +3111,7 @@ msgstr "" "Zpracovává požadavky na favicon webové stránky.\n" "Tato funkce se pokusí obsloužit soubor favicon umístěný ve statickém adresáři projektu. Pokud soubor favicon není nalezen, je vyvolána chyba HTTP 404, která označuje, že zdroj není k dispozici." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3061,10 +3122,14 @@ msgstr "" "administrátorského rozhraní Django. Pro zpracování přesměrování HTTP používá" " funkci `redirect` Djanga." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Vrací aktuální verzi systému eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Vrací vlastní proměnné pro Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/da_DK/LC_MESSAGES/django.mo b/engine/core/locale/da_DK/LC_MESSAGES/django.mo index 7faad892..8852f9b3 100644 Binary files a/engine/core/locale/da_DK/LC_MESSAGES/django.mo and b/engine/core/locale/da_DK/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/da_DK/LC_MESSAGES/django.po b/engine/core/locale/da_DK/LC_MESSAGES/django.po index 0c3d119a..2a676d80 100644 --- a/engine/core/locale/da_DK/LC_MESSAGES/django.po +++ b/engine/core/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1124,7 +1124,7 @@ msgstr "Cachelagrede data" msgid "camelized JSON data from the requested URL" msgstr "Cameliserede JSON-data fra den ønskede URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Kun URL'er, der starter med http(s)://, er tilladt." @@ -2764,6 +2764,67 @@ msgstr "Kontakt os" msgid "About Us" msgstr "Om os" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django site-administrator" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Dashboard" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Indtægter (brutto, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Indtægter (netto, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Returnerer (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Behandlede ordrer (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Salg vs. returnering (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brutto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Returnerer" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Ikke nok data til et diagram endnu." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Hurtige links" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Ingen tilgængelige links." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Mest ønskede produkt" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Ingen data endnu." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Mest populære produkt" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2981,7 +3042,7 @@ msgstr "" "Billedets dimensioner bør ikke overstige w{max_width} x h{max_height} " "pixels." -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2989,7 +3050,7 @@ msgstr "" "Håndterer anmodningen om sitemap-indekset og returnerer et XML-svar. Den " "sikrer, at svaret indeholder den passende indholdstypeheader for XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2999,17 +3060,17 @@ msgstr "" "behandler anmodningen, henter det relevante sitemap-detaljesvar og " "indstiller Content-Type-headeren til XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returnerer en liste over understøttede sprog og de tilhørende oplysninger." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnerer hjemmesidens parametre som et JSON-objekt." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3017,11 +3078,11 @@ msgstr "" "Håndterer cache-operationer som f.eks. læsning og indstilling af cachedata " "med en specificeret nøgle og timeout." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Håndterer indsendelser af `kontakt os`-formularer." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3029,15 +3090,15 @@ msgstr "" "Håndterer anmodninger om behandling og validering af URL'er fra indgående " "POST-anmodninger." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Håndterer globale søgeforespørgsler." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Håndterer logikken i at købe som en virksomhed uden registrering." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3045,31 +3106,31 @@ msgstr "" "Håndterer download af et digitalt aktiv, der er knyttet til en ordre.\n" "Denne funktion forsøger at betjene den digitale aktivfil, der ligger i projektets lagermappe. Hvis filen ikke findes, udløses en HTTP 404-fejl som tegn på, at ressourcen ikke er tilgængelig." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid er påkrævet" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "Bestil produkt findes ikke" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Du kan kun downloade det digitale aktiv én gang" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "Ordren skal betales, før det digitale aktiv downloades." -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Ordreproduktet har ikke et produkt" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "Favicon ikke fundet" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3077,7 +3138,7 @@ msgstr "" "Håndterer anmodninger om et websteds favicon.\n" "Denne funktion forsøger at servere favicon-filen, der ligger i projektets statiske mappe. Hvis favicon-filen ikke findes, udløses en HTTP 404-fejl for at angive, at ressourcen ikke er tilgængelig." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3088,10 +3149,14 @@ msgstr "" "administratorinterfacets indeksside. Den bruger Djangos `redirect`-funktion " "til at håndtere HTTP-omdirigeringen." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Returnerer den aktuelle version af eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Returnerer brugerdefinerede variabler til Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.mo b/engine/core/locale/de_DE/LC_MESSAGES/django.mo index 0d6dcfb2..5b4c25e0 100644 Binary files a/engine/core/locale/de_DE/LC_MESSAGES/django.mo and b/engine/core/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/de_DE/LC_MESSAGES/django.po b/engine/core/locale/de_DE/LC_MESSAGES/django.po index bbdcc681..43aa2575 100644 --- a/engine/core/locale/de_DE/LC_MESSAGES/django.po +++ b/engine/core/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1163,7 +1163,7 @@ msgstr "Zwischengespeicherte Daten" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-Daten aus der angeforderten URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Nur URLs, die mit http(s):// beginnen, sind zulässig" @@ -2837,6 +2837,67 @@ msgstr "Kontakt" msgid "About Us" msgstr "Über uns" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django-Website-Administrator" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Dashboard" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Einkommen (gross, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Einnahmen (netto, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Rückgaben (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Bearbeitete Aufträge (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Verkäufe vs. Retouren (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brutto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Rückgabe" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Noch nicht genug Daten für ein Diagramm." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Schnelle Links" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Keine Links verfügbar." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Meistgewünschtes Produkt" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Noch keine Daten." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Beliebtestes Produkt" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3056,7 +3117,7 @@ msgstr "" "Die Bildabmessungen sollten w{max_width} x h{max_height} Pixel nicht " "überschreiten" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3065,7 +3126,7 @@ msgstr "" "zurück. Sie stellt sicher, dass die Antwort den entsprechenden Content-Type-" "Header für XML enthält." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3075,18 +3136,18 @@ msgstr "" "Funktion verarbeitet die Anfrage, holt die entsprechende Sitemap-" "Detailantwort ab und setzt den Content-Type-Header für XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Gibt eine Liste der unterstützten Sprachen und der entsprechenden " "Informationen zurück." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Gibt die Parameter der Website als JSON-Objekt zurück." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3094,11 +3155,11 @@ msgstr "" "Erledigt Cache-Operationen wie das Lesen und Setzen von Cache-Daten mit " "einem bestimmten Schlüssel und Timeout." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Verarbeitet Übermittlungen des Formulars \"Kontaktieren Sie uns\"." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3106,15 +3167,15 @@ msgstr "" "Bearbeitet Anfragen zur Verarbeitung und Validierung von URLs aus " "eingehenden POST-Anfragen." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Bearbeitet globale Suchanfragen." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Behandelt die Logik des Kaufs als Unternehmen ohne Registrierung." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3122,33 +3183,33 @@ msgstr "" "Bearbeitet das Herunterladen eines digitalen Assets, das mit einem Auftrag verbunden ist.\n" "Diese Funktion versucht, die Datei des digitalen Assets, die sich im Speicherverzeichnis des Projekts befindet, bereitzustellen. Wenn die Datei nicht gefunden wird, wird ein HTTP 404-Fehler ausgelöst, um anzuzeigen, dass die Ressource nicht verfügbar ist." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid ist erforderlich" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "Produkt bestellen existiert nicht" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Sie können das digitale Asset nur einmal herunterladen" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "" "die Bestellung muss vor dem Herunterladen des digitalen Assets bezahlt " "werden" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Das Bestellprodukt hat kein Produkt" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "Favicon nicht gefunden" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3156,7 +3217,7 @@ msgstr "" "Bearbeitet Anfragen nach dem Favicon einer Website.\n" "Diese Funktion versucht, die Favicon-Datei, die sich im statischen Verzeichnis des Projekts befindet, bereitzustellen. Wenn die Favicon-Datei nicht gefunden wird, wird ein HTTP 404-Fehler ausgegeben, um anzuzeigen, dass die Ressource nicht verfügbar ist." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3167,10 +3228,14 @@ msgstr "" "Administrationsoberfläche um. Sie verwendet die Funktion `redirect` von " "Django für die Bearbeitung der HTTP-Umleitung." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Gibt die aktuelle Version von eVibes zurück." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Gibt benutzerdefinierte Variablen für das Dashboard zurück." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.mo b/engine/core/locale/en_GB/LC_MESSAGES/django.mo index b900c9b6..1a7883b3 100644 Binary files a/engine/core/locale/en_GB/LC_MESSAGES/django.mo and b/engine/core/locale/en_GB/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/en_GB/LC_MESSAGES/django.po b/engine/core/locale/en_GB/LC_MESSAGES/django.po index 6b04b851..686452f2 100644 --- a/engine/core/locale/en_GB/LC_MESSAGES/django.po +++ b/engine/core/locale/en_GB/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1087,7 +1087,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -2700,6 +2700,67 @@ msgstr "Contact Us" msgid "About Us" msgstr "About Us" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django site admin" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Dashboard" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Revenue (gross, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Revenue (net, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Returns (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Processed orders (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Sales vs Returns (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Gross" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Returns" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Not enough data for chart yet." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Quick Links" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "No links available." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Most wished product" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "No data yet." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Most popular product" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2916,7 +2977,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Image dimensions should not exceed w{max_width} x h{max_height} pixels!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2924,7 +2985,7 @@ msgstr "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2934,17 +2995,17 @@ msgstr "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returns a list of supported languages and their corresponding information." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Returns the parameters of the website as a JSON object." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -2952,11 +3013,11 @@ msgstr "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Handles `contact us` form submissions." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -2964,15 +3025,15 @@ msgstr "" "Handles requests for processing and validating URLs from incoming POST " "requests." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Handles global search queries." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Handles the logic of buying as a business without registration." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2980,31 +3041,31 @@ msgstr "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid is required" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "order product does not exist" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "the order must be paid before downloading the digital asset" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "The order product does not have a product" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon not found" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3012,7 +3073,7 @@ msgstr "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3022,10 +3083,14 @@ msgstr "" " HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Returns current version of the eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Returns custom variables for Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/en_US/LC_MESSAGES/django.mo b/engine/core/locale/en_US/LC_MESSAGES/django.mo index 77ab373e..6fd8ef15 100644 Binary files a/engine/core/locale/en_US/LC_MESSAGES/django.mo and b/engine/core/locale/en_US/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/en_US/LC_MESSAGES/django.po b/engine/core/locale/en_US/LC_MESSAGES/django.po index 33f2e8ca..609c7b12 100644 --- a/engine/core/locale/en_US/LC_MESSAGES/django.po +++ b/engine/core/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1083,7 +1083,7 @@ msgstr "Cached data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON data from the requested URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Only URLs starting with http(s):// are allowed" @@ -2696,6 +2696,67 @@ msgstr "Contact Us" msgid "About Us" msgstr "About Us" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django site admin" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Dashboard" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Revenue (gross, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Revenue (net, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Returns (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Processed orders (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Sales vs Returns (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Gross" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Returns" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Not enough data for chart yet." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Quick Links" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "No links available." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Most wished product" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "No data yet." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Most popular product" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2912,7 +2973,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Image dimensions should not exceed w{max_width} x h{max_height} pixels!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2920,7 +2981,7 @@ msgstr "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2930,17 +2991,17 @@ msgstr "" "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returns a list of supported languages and their corresponding information." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Returns the parameters of the website as a JSON object." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -2948,11 +3009,11 @@ msgstr "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Handles `contact us` form submissions." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -2960,15 +3021,15 @@ msgstr "" "Handles requests for processing and validating URLs from incoming POST " "requests." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Handles global search queries." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Handles the logic of buying as a business without registration." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2976,31 +3037,31 @@ msgstr "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid is required" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "order product does not exist" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "You can only download the digital asset once" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "the order must be paid before downloading the digital asset" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "The order product does not have a product" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon not found" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3008,7 +3069,7 @@ msgstr "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3018,10 +3079,14 @@ msgstr "" " HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Returns current version of the eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Returns custom variables for Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/es_ES/LC_MESSAGES/django.mo b/engine/core/locale/es_ES/LC_MESSAGES/django.mo index 012cd06a..bf0f3afb 100644 Binary files a/engine/core/locale/es_ES/LC_MESSAGES/django.mo and b/engine/core/locale/es_ES/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/es_ES/LC_MESSAGES/django.po b/engine/core/locale/es_ES/LC_MESSAGES/django.po index 94e9ab84..1ee5cf01 100644 --- a/engine/core/locale/es_ES/LC_MESSAGES/django.po +++ b/engine/core/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1135,7 +1135,7 @@ msgstr "Datos en caché" msgid "camelized JSON data from the requested URL" msgstr "Datos JSON camelizados de la URL solicitada" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Sólo se permiten URL que empiecen por http(s)://." @@ -2783,6 +2783,67 @@ msgstr "Contacte con nosotros" msgid "About Us" msgstr "Quiénes somos" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Administrador del sitio Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Cuadro de mandos" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Ingresos (brutos, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Ingresos (netos, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Devoluciones (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Pedidos procesados (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Ventas frente a devoluciones (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Bruto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Devuelve" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Aún no hay datos suficientes para el gráfico." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Enlaces rápidos" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "No hay enlaces disponibles." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Producto más deseado" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Aún no hay datos." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Producto más popular" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3001,7 +3062,7 @@ msgstr "" "Las dimensiones de la imagen no deben superar w{max_width} x h{max_height} " "píxeles." -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3010,7 +3071,7 @@ msgstr "" " XML. Se asegura de que la respuesta incluya el encabezado de tipo de " "contenido apropiado para XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3020,18 +3081,18 @@ msgstr "" "función procesa la solicitud, obtiene la respuesta detallada del mapa del " "sitio y establece el encabezado Content-Type para XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Devuelve una lista de los idiomas admitidos y su información " "correspondiente." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Devuelve los parámetros del sitio web como un objeto JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3039,11 +3100,11 @@ msgstr "" "Gestiona las operaciones de caché, como la lectura y el establecimiento de " "datos de caché con una clave y un tiempo de espera especificados." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Gestiona los formularios de contacto." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3051,15 +3112,15 @@ msgstr "" "Gestiona las solicitudes de procesamiento y validación de URL de las " "solicitudes POST entrantes." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Gestiona las consultas de búsqueda global." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Maneja la lógica de la compra como empresa sin registro." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3067,31 +3128,31 @@ msgstr "" "Gestiona la descarga de un activo digital asociado a un pedido.\n" "Esta función intenta servir el archivo del activo digital ubicado en el directorio de almacenamiento del proyecto. Si no se encuentra el archivo, se genera un error HTTP 404 para indicar que el recurso no está disponible." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid es obligatorio" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "pedir producto no existe" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Sólo puede descargar el activo digital una vez" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "el pedido debe pagarse antes de descargar el activo digital" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "El producto del pedido no tiene un producto" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon no encontrado" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3099,7 +3160,7 @@ msgstr "" "Gestiona las peticiones del favicon de un sitio web.\n" "Esta función intenta servir el archivo favicon ubicado en el directorio estático del proyecto. Si no se encuentra el archivo favicon, se genera un error HTTP 404 para indicar que el recurso no está disponible." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3110,10 +3171,14 @@ msgstr "" "de la interfaz de administración de Django. Utiliza la función `redirect` de" " Django para gestionar la redirección HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Devuelve la versión actual del eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Devuelve variables personalizadas para Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/fa_IR/LC_MESSAGES/django.po b/engine/core/locale/fa_IR/LC_MESSAGES/django.po index 07f0c955..8342cd77 100644 --- a/engine/core/locale/fa_IR/LC_MESSAGES/django.po +++ b/engine/core/locale/fa_IR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2526,6 +2526,67 @@ msgstr "" msgid "About Us" msgstr "" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "" + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "" + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "" + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2727,53 +2788,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2781,31 +2842,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2813,17 +2874,21 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "" +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "" + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.mo b/engine/core/locale/fr_FR/LC_MESSAGES/django.mo index cc07a3fe..f562baa2 100644 Binary files a/engine/core/locale/fr_FR/LC_MESSAGES/django.mo and b/engine/core/locale/fr_FR/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/fr_FR/LC_MESSAGES/django.po b/engine/core/locale/fr_FR/LC_MESSAGES/django.po index 9aea5106..0dc5c414 100644 --- a/engine/core/locale/fr_FR/LC_MESSAGES/django.po +++ b/engine/core/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1156,7 +1156,7 @@ msgstr "Données mises en cache" msgid "camelized JSON data from the requested URL" msgstr "Données JSON camélisées provenant de l'URL demandée" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Seuls les URL commençant par http(s):// sont autorisés." @@ -2835,6 +2835,67 @@ msgstr "Nous contacter" msgid "About Us" msgstr "À propos de nous" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Administrateur de site Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Tableau de bord" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Revenue (gross, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Revenue (net, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Retours (30j)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Commandes traitées (30j)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Ventes et retours (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brut" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Retours" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Il n'y a pas encore assez de données pour établir un graphique." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Liens rapides" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Aucun lien n'est disponible." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Produit le plus souhaité" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Pas encore de données." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Produit le plus populaire" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3056,7 +3117,7 @@ msgstr "" "Les dimensions de l'image ne doivent pas dépasser w{max_width} x " "h{max_height} pixels." -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3064,7 +3125,7 @@ msgstr "" "Gère la demande d'index sitemap et renvoie une réponse XML. Il s'assure que " "la réponse inclut l'en-tête de type de contenu approprié pour XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3074,18 +3135,18 @@ msgstr "" "demande, récupère la réponse détaillée appropriée du plan du site et définit" " l'en-tête Content-Type pour XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Renvoie une liste des langues prises en charge et des informations " "correspondantes." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Renvoie les paramètres du site web sous la forme d'un objet JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3093,11 +3154,11 @@ msgstr "" "Gère les opérations de cache telles que la lecture et la définition des " "données de cache avec une clé et un délai spécifiés." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Gère les soumissions du formulaire `contact us`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3105,15 +3166,15 @@ msgstr "" "Gère les demandes de traitement et de validation des URL à partir des " "requêtes POST entrantes." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Traite les demandes de recherche globales." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Gère la logique de l'achat en tant qu'entreprise sans enregistrement." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3121,31 +3182,31 @@ msgstr "" "Gère le téléchargement d'un bien numérique associé à une commande.\n" "Cette fonction tente de servir le fichier de ressource numérique situé dans le répertoire de stockage du projet. Si le fichier n'est pas trouvé, une erreur HTTP 404 est générée pour indiquer que la ressource n'est pas disponible." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid est obligatoire" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "le produit de la commande n'existe pas" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Vous ne pouvez télécharger le bien numérique qu'une seule fois" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "la commande doit être payée avant le téléchargement du bien numérique" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Le produit de la commande n'a pas de produit" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon introuvable" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3153,7 +3214,7 @@ msgstr "" "Gère les demandes de favicon d'un site web.\n" "Cette fonction tente de servir le fichier favicon situé dans le répertoire statique du projet. Si le fichier favicon n'est pas trouvé, une erreur HTTP 404 est générée pour indiquer que la ressource n'est pas disponible." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3164,10 +3225,14 @@ msgstr "" " d'index de l'interface d'administration de Django. Elle utilise la fonction" " `redirect` de Django pour gérer la redirection HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Renvoie la version actuelle d'eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Renvoie les variables personnalisées pour le tableau de bord." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.mo b/engine/core/locale/he_IL/LC_MESSAGES/django.mo index 9ec71912..fa608b54 100644 Binary files a/engine/core/locale/he_IL/LC_MESSAGES/django.mo and b/engine/core/locale/he_IL/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/he_IL/LC_MESSAGES/django.po b/engine/core/locale/he_IL/LC_MESSAGES/django.po index 66497b1c..fb09cb2f 100644 --- a/engine/core/locale/he_IL/LC_MESSAGES/django.po +++ b/engine/core/locale/he_IL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1072,7 +1072,7 @@ msgstr "נתונים במטמון" msgid "camelized JSON data from the requested URL" msgstr "נתוני JSON שעברו קמלאיזציה מה-URL המבוקש" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "רק כתובות URL המתחילות ב-http(s):// מותרות" @@ -2645,6 +2645,67 @@ msgstr "צור קשר" msgid "About Us" msgstr "אודות" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "מנהל אתר Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "לוח מחוונים" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "הכנסה (ברוטו, 30 יום)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "הכנסות (נטו, 30 יום)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "החזרות (30 יום)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "הזמנות מעובדות (30 יום)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "מכירות לעומת החזרות (30 יום)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "גרוס" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "החזרות" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "אין מספיק נתונים כדי ליצור תרשים." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "קישורים מהירים" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "אין קישורים זמינים." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "המוצר המבוקש ביותר" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "אין עדיין נתונים." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "המוצר הפופולרי ביותר" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2847,7 +2908,7 @@ msgstr "יש להגדיר את הפרמטר NOMINATIM_URL!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "מידות התמונה לא יעלו על w{max_width} x h{max_height} פיקסלים!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2855,7 +2916,7 @@ msgstr "" "מטפל בבקשה לאינדקס מפת האתר ומחזיר תגובה בפורמט XML. הוא מבטיח שהתגובה תכלול" " את כותרת סוג התוכן המתאימה ל-XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2864,41 +2925,41 @@ msgstr "" "מטפל בתגובה לתצוגה מפורטת של מפת אתר. פונקציה זו מעבדת את הבקשה, משיגה את " "התגובה המתאימה לפרטי מפת האתר, וקובעת את כותרת Content-Type עבור XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "מחזיר רשימה של שפות נתמכות והמידע המתאים להן." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "מחזיר את הפרמטרים של האתר כאובייקט JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" "מטפל בפעולות מטמון כגון קריאה והגדרת נתוני מטמון עם מפתח וזמן המתנה מוגדרים." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "מטפל בהגשת טפסי \"צור קשר\"." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "מטפל בבקשות לעיבוד ואימות כתובות URL מבקשות POST נכנסות." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "מטפל בשאילתות חיפוש גלובליות." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "מטפל בהיגיון הרכישה כעסק ללא רישום." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2907,31 +2968,31 @@ msgstr "" "הדיגיטלי הנמצא בספריית האחסון של הפרויקט. אם הקובץ לא נמצא, מתקבלת שגיאת " "HTTP 404 המציינת שהמשאב אינו זמין." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid נדרש" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "המוצר שהוזמן אינו קיים" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "ניתן להוריד את הנכס הדיגיטלי פעם אחת בלבד" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "יש לשלם את ההזמנה לפני הורדת הנכס הדיגיטלי" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "למוצר ההזמנה אין מוצר" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "לא נמצא סמל מועדף" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2940,7 +3001,7 @@ msgstr "" "המועדף הנמצא בספרייה הסטטית של הפרויקט. אם קובץ הסמל המועדף לא נמצא, מתקבלת " "שגיאת HTTP 404 המציינת שהמשאב אינו זמין." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -2950,10 +3011,14 @@ msgstr "" " אותן לדף האינדקס של ממשק המנהל של Django. היא משתמשת בפונקציית `redirect` " "של Django לטיפול בהפניה HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "מחזיר את הגרסה הנוכחית של eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "מחזיר משתנים מותאמים אישית עבור לוח המחוונים." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/hi_IN/LC_MESSAGES/django.po b/engine/core/locale/hi_IN/LC_MESSAGES/django.po index 1463c6e9..23915302 100644 --- a/engine/core/locale/hi_IN/LC_MESSAGES/django.po +++ b/engine/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 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2526,6 +2526,67 @@ msgstr "" msgid "About Us" msgstr "" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "" + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "" + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "" + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2727,53 +2788,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2781,31 +2842,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2813,17 +2874,21 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "" +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "" + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/hr_HR/LC_MESSAGES/django.po b/engine/core/locale/hr_HR/LC_MESSAGES/django.po index 07f0c955..8342cd77 100644 --- a/engine/core/locale/hr_HR/LC_MESSAGES/django.po +++ b/engine/core/locale/hr_HR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2526,6 +2526,67 @@ msgstr "" msgid "About Us" msgstr "" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "" + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "" + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "" + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2727,53 +2788,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2781,31 +2842,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2813,17 +2874,21 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "" +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "" + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/id_ID/LC_MESSAGES/django.mo b/engine/core/locale/id_ID/LC_MESSAGES/django.mo index 2dea875c..635fbbd7 100644 Binary files a/engine/core/locale/id_ID/LC_MESSAGES/django.mo and b/engine/core/locale/id_ID/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/id_ID/LC_MESSAGES/django.po b/engine/core/locale/id_ID/LC_MESSAGES/django.po index 20afd4fc..27934ad2 100644 --- a/engine/core/locale/id_ID/LC_MESSAGES/django.po +++ b/engine/core/locale/id_ID/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1157,7 +1157,7 @@ msgstr "Data yang di-cache" msgid "camelized JSON data from the requested URL" msgstr "Data JSON yang di-camel dari URL yang diminta" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Hanya URL yang dimulai dengan http(s):// yang diperbolehkan" @@ -2799,6 +2799,67 @@ msgstr "Hubungi Kami" msgid "About Us" msgstr "Tentang Kami" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Admin situs Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Dasbor" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Pendapatan (kotor, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Pendapatan (bersih, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Pengembalian (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Pesanan yang diproses (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Penjualan vs Pengembalian (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Kotor" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Pengembalian" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Belum cukup data untuk grafik." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Tautan Cepat" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Tidak ada tautan yang tersedia." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Produk yang paling diharapkan" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Belum ada data." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Produk paling populer" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3016,7 +3077,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Dimensi gambar tidak boleh melebihi w{max_width} x h{max_height} piksel!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3024,7 +3085,7 @@ msgstr "" "Menangani permintaan indeks peta situs dan mengembalikan respons XML. " "Memastikan respons menyertakan header jenis konten yang sesuai untuk XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3034,16 +3095,16 @@ msgstr "" "permintaan, mengambil respons detail peta situs yang sesuai, dan menetapkan " "header Jenis Konten untuk XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Mengembalikan daftar bahasa yang didukung dan informasi terkait." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Mengembalikan parameter situs web sebagai objek JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3051,11 +3112,11 @@ msgstr "" "Menangani operasi cache seperti membaca dan mengatur data cache dengan kunci" " dan batas waktu tertentu." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Menangani pengiriman formulir `hubungi kami`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3063,15 +3124,15 @@ msgstr "" "Menangani permintaan untuk memproses dan memvalidasi URL dari permintaan " "POST yang masuk." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Menangani kueri penelusuran global." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Menangani logika pembelian sebagai bisnis tanpa registrasi." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3079,31 +3140,31 @@ msgstr "" "Menangani pengunduhan aset digital yang terkait dengan pesanan.\n" "Fungsi ini mencoba untuk menyajikan file aset digital yang terletak di direktori penyimpanan proyek. Jika file tidak ditemukan, kesalahan HTTP 404 akan muncul untuk mengindikasikan bahwa sumber daya tidak tersedia." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid diperlukan" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "produk pesanan tidak ada" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Anda hanya dapat mengunduh aset digital sekali saja" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "pesanan harus dibayar sebelum mengunduh aset digital" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Produk pesanan tidak memiliki produk" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon tidak ditemukan" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3111,7 +3172,7 @@ msgstr "" "Menangani permintaan favicon dari sebuah situs web.\n" "Fungsi ini mencoba menyajikan file favicon yang terletak di direktori statis proyek. Jika file favicon tidak ditemukan, kesalahan HTTP 404 akan dimunculkan untuk mengindikasikan bahwa sumber daya tidak tersedia." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3122,10 +3183,14 @@ msgstr "" "admin Django. Fungsi ini menggunakan fungsi `redirect` Django untuk " "menangani pengalihan HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Mengembalikan versi eVibes saat ini." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Mengembalikan variabel khusus untuk Dasbor." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/it_IT/LC_MESSAGES/django.mo b/engine/core/locale/it_IT/LC_MESSAGES/django.mo index 6158cab7..37b70222 100644 Binary files a/engine/core/locale/it_IT/LC_MESSAGES/django.mo and b/engine/core/locale/it_IT/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/it_IT/LC_MESSAGES/django.po b/engine/core/locale/it_IT/LC_MESSAGES/django.po index 3c104829..5450a3b1 100644 --- a/engine/core/locale/it_IT/LC_MESSAGES/django.po +++ b/engine/core/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1149,7 +1149,7 @@ msgstr "Dati in cache" msgid "camelized JSON data from the requested URL" msgstr "Dati JSON camelizzati dall'URL richiesto" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Sono consentiti solo gli URL che iniziano con http(s)://" @@ -2800,6 +2800,67 @@ msgstr "Contatto" msgid "About Us" msgstr "Chi siamo" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Amministratore del sito Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Cruscotto" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Ricavi (lordi, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Ricavi (netti, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Restituzioni (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Ordini evasi (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Vendite e resi (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Gross" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Restituzioni" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Non ci sono ancora dati sufficienti per un grafico." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Collegamenti rapidi" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Nessun link disponibile." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Il prodotto più desiderato" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Non ci sono ancora dati." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Il prodotto più popolare" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3019,7 +3080,7 @@ msgstr "" "Le dimensioni dell'immagine non devono superare w{max_width} x h{max_height}" " pixel" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3028,7 +3089,7 @@ msgstr "" "XML. Assicura che la risposta includa l'intestazione del tipo di contenuto " "appropriato per XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3038,17 +3099,17 @@ msgstr "" "funzione elabora la richiesta, recupera la risposta dettagliata della " "sitemap e imposta l'intestazione Content-Type per XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Restituisce un elenco di lingue supportate e le informazioni corrispondenti." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Restituisce i parametri del sito web come oggetto JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3056,11 +3117,11 @@ msgstr "" "Gestisce le operazioni di cache, come la lettura e l'impostazione dei dati " "della cache con una chiave e un timeout specificati." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Gestisce l'invio del modulo `contatti`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3068,15 +3129,15 @@ msgstr "" "Gestisce le richieste di elaborazione e validazione degli URL dalle " "richieste POST in arrivo." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Gestisce le query di ricerca globali." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Gestisce la logica dell'acquisto come azienda senza registrazione." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3084,31 +3145,31 @@ msgstr "" "Gestisce il download di una risorsa digitale associata a un ordine.\n" "Questa funzione tenta di servire il file della risorsa digitale che si trova nella directory di archiviazione del progetto. Se il file non viene trovato, viene generato un errore HTTP 404 per indicare che la risorsa non è disponibile." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid è obbligatorio" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "ordine prodotto non esistente" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "È possibile scaricare l'asset digitale una sola volta" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "l'ordine deve essere pagato prima di scaricare il bene digitale" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Il prodotto dell'ordine non ha un prodotto" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon non trovata" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3116,7 +3177,7 @@ msgstr "" "Gestisce le richieste per la favicon di un sito web.\n" "Questa funzione tenta di servire il file favicon situato nella cartella statica del progetto. Se il file favicon non viene trovato, viene generato un errore HTTP 404 per indicare che la risorsa non è disponibile." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3127,10 +3188,14 @@ msgstr "" "indice dell'interfaccia di amministrazione di Django. Utilizza la funzione " "`redirect` di Django per gestire il reindirizzamento HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Restituisce la versione corrente di eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Restituisce le variabili personalizzate per Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/ja_JP/LC_MESSAGES/django.mo b/engine/core/locale/ja_JP/LC_MESSAGES/django.mo index 97ab1d0c..5b9177c3 100644 Binary files a/engine/core/locale/ja_JP/LC_MESSAGES/django.mo and b/engine/core/locale/ja_JP/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/ja_JP/LC_MESSAGES/django.po b/engine/core/locale/ja_JP/LC_MESSAGES/django.po index d03d0c44..758ff012 100644 --- a/engine/core/locale/ja_JP/LC_MESSAGES/django.po +++ b/engine/core/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1066,7 +1066,7 @@ msgstr "キャッシュ・データ" msgid "camelized JSON data from the requested URL" msgstr "リクエストされたURLからキャメル化されたJSONデータ" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "http(s)://で始まるURLのみが許可されます。" @@ -2578,6 +2578,67 @@ msgstr "お問い合わせ" msgid "About Us" msgstr "会社概要" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Djangoサイト管理者" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "ダッシュボード" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "収入(グロス、30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "収入(純額、30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "リターンズ(30日)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "処理済み注文 (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "売上対返品 (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "グロス" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "リターン" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "まだチャートには十分なデータがない。" + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "クイックリンク" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "リンクはありません。" + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "最も欲しい製品" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "まだデータはない。" + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "最も人気のある製品" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2783,14 +2844,14 @@ msgstr "NOMINATIM_URLパラメータを設定する必要があります!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "画像のサイズは w{max_width} x h{max_height} ピクセルを超えないようにしてください!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" "サイトマップインデックスのリクエストを処理し、XMLレスポンスを返します。レスポンスにXML用の適切なコンテントタイプヘッダーが含まれるようにします。" -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2799,40 +2860,40 @@ msgstr "" "サイトマップの詳細表示レスポンスを処理します。この関数はリクエストを処理し、適切なサイトマップ詳細レスポンスを取得し、XML の Content-" "Type ヘッダを設定します。" -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "サポートされている言語の一覧と対応する情報を返します。" -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "ウェブサイトのパラメータをJSONオブジェクトとして返します。" -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "指定されたキーとタイムアウトで、キャッシュ・データの読み取りや設定などのキャッシュ操作を行う。" -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "お問い合わせフォームの送信を処理する。" -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "入ってくる POST リクエストからの URL の処理と検証のリクエストを処理します。" -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "グローバル検索クエリを処理する。" -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "登録なしでビジネスとして購入するロジックを扱う。" -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2840,31 +2901,31 @@ msgstr "" "注文に関連付けられたデジタルアセットのダウンロードを処理します。\n" "この関数は、プロジェクトのストレージディレクトリにあるデジタルアセットファイルの提供を試みます。ファイルが見つからない場合、リソースが利用できないことを示すHTTP 404エラーが発生します。" -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuidは必須です。" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "注文商品が存在しない" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "デジタルアセットのダウンロードは1回限りです。" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "デジタル資産をダウンロードする前に、注文を支払う必要があります。" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "注文商品に商品がない" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "ファビコンが見つかりません" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2872,7 +2933,7 @@ msgstr "" "ウェブサイトのファビコンへのリクエストを処理します。\n" "この関数は、プロジェクトの静的ディレクトリにあるファビコンファイルの提供を試みます。ファビコンファイルが見つからない場合、リソースが利用できないことを示す HTTP 404 エラーが発生します。" -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -2881,10 +2942,14 @@ msgstr "" "リクエストを admin インデックスページにリダイレクトします。この関数は、HTTP リクエストを処理し、 Django の admin " "インタフェースインデッ クスページにリダイレクトします。HTTP リダイレクトの処理には Django の `redirect` 関数を使います。" -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "eVibes の現在のバージョンを返します。" +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "ダッシュボードのカスタム変数を返します。" + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po b/engine/core/locale/kk_KZ/LC_MESSAGES/django.po index 1463c6e9..23915302 100644 --- a/engine/core/locale/kk_KZ/LC_MESSAGES/django.po +++ b/engine/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 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -1049,7 +1049,7 @@ msgstr "" msgid "camelized JSON data from the requested URL" msgstr "" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "" @@ -2526,6 +2526,67 @@ msgstr "" msgid "About Us" msgstr "" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "" + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "" + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "" + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2727,53 +2788,53 @@ msgstr "" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "" -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "" -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "" -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "" -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "" -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "" -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the " @@ -2781,31 +2842,31 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static " @@ -2813,17 +2874,21 @@ msgid "" "error is raised to indicate the resource is unavailable." msgstr "" -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming " "HTTP requests and redirects them to the Django admin interface index page. " "It uses Django's `redirect` function for handling the HTTP redirection." msgstr "" -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "" +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "" + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/ko_KR/LC_MESSAGES/django.mo b/engine/core/locale/ko_KR/LC_MESSAGES/django.mo index aa9daa50..d1e2f581 100644 Binary files a/engine/core/locale/ko_KR/LC_MESSAGES/django.mo and b/engine/core/locale/ko_KR/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/ko_KR/LC_MESSAGES/django.po b/engine/core/locale/ko_KR/LC_MESSAGES/django.po index 3dbaea1b..f8e97349 100644 --- a/engine/core/locale/ko_KR/LC_MESSAGES/django.po +++ b/engine/core/locale/ko_KR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1063,7 +1063,7 @@ msgstr "캐시된 데이터" msgid "camelized JSON data from the requested URL" msgstr "요청된 URL의 카멜라이즈된 JSON 데이터" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "http(s)://로 시작하는 URL만 허용됩니다." @@ -2602,6 +2602,67 @@ msgstr "문의하기" msgid "About Us" msgstr "회사 소개" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "장고 사이트 관리자" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "대시보드" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "수익(총액, 30일)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "수익(순, 30일)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "반품 (30일)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "처리된 주문(30일)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "판매 대 반품(30일)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Gross" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "반환" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "아직 차트에 넣을 데이터가 충분하지 않습니다." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "빠른 링크" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "사용할 수 있는 링크가 없습니다." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "가장 많이 원하는 제품" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "아직 데이터가 없습니다." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "가장 인기 있는 제품" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2808,14 +2869,14 @@ msgstr "NOMINATIM_URL 파라미터를 설정해야 합니다!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "이미지 크기는 w{max_width} x h{max_height} 픽셀을 초과하지 않아야 합니다!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "" "사이트맵 색인에 대한 요청을 처리하고 XML 응답을 반환합니다. 응답에 XML에 적합한 콘텐츠 유형 헤더가 포함되어 있는지 확인합니다." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2824,40 +2885,40 @@ msgstr "" "사이트맵에 대한 상세 보기 응답을 처리합니다. 이 함수는 요청을 처리하고 적절한 사이트맵 상세 보기 응답을 가져온 다음 XML의 " "Content-Type 헤더를 설정합니다." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "지원되는 언어 목록과 해당 정보를 반환합니다." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "웹사이트의 매개변수를 JSON 객체로 반환합니다." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "지정된 키와 시간 초과로 캐시 데이터를 읽고 설정하는 등의 캐시 작업을 처리합니다." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "'문의하기' 양식 제출을 처리합니다." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "들어오는 POST 요청의 URL 처리 및 유효성 검사 요청을 처리합니다." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "글로벌 검색 쿼리를 처리합니다." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "등록하지 않고 비즈니스로 구매하는 로직을 처리합니다." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2865,31 +2926,31 @@ msgstr "" "주문과 관련된 디지털 자산의 다운로드를 처리합니다.\n" "이 함수는 프로젝트의 저장소 디렉토리에 있는 디지털 자산 파일을 제공하려고 시도합니다. 파일을 찾을 수 없으면 HTTP 404 오류가 발생하여 리소스를 사용할 수 없음을 나타냅니다." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "주문_제품_UUID는 필수입니다." -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "주문 제품이 존재하지 않습니다." -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "디지털 자산은 한 번만 다운로드할 수 있습니다." -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "디지털 자산을 다운로드하기 전에 주문을 결제해야 합니다." -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "주문 제품에 제품이 없습니다." -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "파비콘을 찾을 수 없습니다." -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2897,7 +2958,7 @@ msgstr "" "웹사이트의 파비콘 요청을 처리합니다.\n" "이 함수는 프로젝트의 정적 디렉토리에 있는 파비콘 파일을 제공하려고 시도합니다. 파비콘 파일을 찾을 수 없는 경우 HTTP 404 오류가 발생하여 리소스를 사용할 수 없음을 나타냅니다." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -2906,10 +2967,14 @@ msgstr "" "요청을 관리자 색인 페이지로 리디렉션합니다. 이 함수는 들어오는 HTTP 요청을 처리하여 Django 관리자 인터페이스 인덱스 페이지로 " "리디렉션합니다. HTTP 리디렉션을 처리하기 위해 Django의 `redirect` 함수를 사용합니다." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "현재 버전의 eVibes를 반환합니다." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "대시보드에 대한 사용자 지정 변수를 반환합니다." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/nl_NL/LC_MESSAGES/django.mo b/engine/core/locale/nl_NL/LC_MESSAGES/django.mo index c0ac6713..cfd3fbbf 100644 Binary files a/engine/core/locale/nl_NL/LC_MESSAGES/django.mo and b/engine/core/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/nl_NL/LC_MESSAGES/django.po b/engine/core/locale/nl_NL/LC_MESSAGES/django.po index c71d7a14..b9c230ec 100644 --- a/engine/core/locale/nl_NL/LC_MESSAGES/django.po +++ b/engine/core/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1152,7 +1152,7 @@ msgstr "Gecachte gegevens" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-gegevens van de opgevraagde URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Alleen URL's die beginnen met http(s):// zijn toegestaan" @@ -2811,6 +2811,67 @@ msgstr "Neem contact met ons op" msgid "About Us" msgstr "Over ons" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django website beheerder" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Dashboard" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Inkomsten (bruto, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Inkomsten (netto, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Retourzendingen (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Verwerkte orders (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Verkoop vs Retourzendingen (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Bruto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Geeft" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Nog niet genoeg gegevens voor een grafiek." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Snelle links" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Geen links beschikbaar." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Meest gewenste product" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Nog geen gegevens." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Populairste product" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3030,7 +3091,7 @@ msgstr "" "Afbeeldingsafmetingen mogen niet groter zijn dan w{max_width} x " "h{max_height} pixels" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3039,7 +3100,7 @@ msgstr "" "terug. Het zorgt ervoor dat het antwoord de juiste inhoudstype header voor " "XML bevat." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3049,16 +3110,16 @@ msgstr "" "verwerkt het verzoek, haalt het juiste sitemap detail antwoord op en stelt " "de Content-Type header in voor XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Geeft een lijst met ondersteunde talen en de bijbehorende informatie." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Retourneert de parameters van de website als een JSON-object." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3066,11 +3127,11 @@ msgstr "" "Verwerkt cachebewerkingen zoals het lezen en instellen van cachegegevens met" " een opgegeven sleutel en time-out." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Handelt `contact met ons` formulier inzendingen af." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3078,15 +3139,15 @@ msgstr "" "Handelt verzoeken af voor het verwerken en valideren van URL's van inkomende" " POST-verzoeken." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Handelt globale zoekopdrachten af." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Behandelt de logica van kopen als bedrijf zonder registratie." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3094,33 +3155,33 @@ msgstr "" "Handelt het downloaden af van een digitaal actief dat is gekoppeld aan een bestelling.\n" "Deze functie probeert het digitale activabestand te serveren dat zich in de opslagmap van het project bevindt. Als het bestand niet wordt gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet beschikbaar is." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid is vereist" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "bestelproduct bestaat niet" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "U kunt het digitale goed maar één keer downloaden" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "" "de bestelling moet worden betaald voordat het digitale actief kan worden " "gedownload" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Het bestelde product heeft geen product" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon niet gevonden" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3128,7 +3189,7 @@ msgstr "" "Handelt verzoeken af voor de favicon van een website.\n" "Deze functie probeert het favicon-bestand te serveren dat zich in de statische map van het project bevindt. Als het favicon-bestand niet wordt gevonden, wordt er een HTTP 404-fout weergegeven om aan te geven dat de bron niet beschikbaar is." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3139,10 +3200,14 @@ msgstr "" "Django admin-interface. Het gebruikt Django's `redirect` functie voor het " "afhandelen van de HTTP-omleiding." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Geeft als resultaat de huidige versie van eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Geeft aangepaste variabelen voor Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.mo b/engine/core/locale/no_NO/LC_MESSAGES/django.mo index 980ea230..5e6d0bed 100644 Binary files a/engine/core/locale/no_NO/LC_MESSAGES/django.mo and b/engine/core/locale/no_NO/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/no_NO/LC_MESSAGES/django.po b/engine/core/locale/no_NO/LC_MESSAGES/django.po index 4196d84f..e409ec07 100644 --- a/engine/core/locale/no_NO/LC_MESSAGES/django.po +++ b/engine/core/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1133,7 +1133,7 @@ msgstr "Bufret data" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-data fra den forespurte URL-en" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Bare nettadresser som begynner med http(s):// er tillatt" @@ -2773,6 +2773,67 @@ msgstr "Kontakt oss" msgid "About Us" msgstr "Om oss" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django site admin" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Dashbord" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Inntekter (brutto, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Inntekter (netto, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Returnerer (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Behandlede bestillinger (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Salg vs. retur (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brutto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Retur" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Ikke nok data til å lage et diagram ennå." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Hurtigkoblinger" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Ingen lenker tilgjengelig." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Mest ønskede produkt" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Ingen data ennå." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Mest populære produkt" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2990,7 +3051,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Bildedimensjonene bør ikke overstige b{max_width} x h{max_height} piksler!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2998,7 +3059,7 @@ msgstr "" "Håndterer forespørselen om områdekartindeksen og returnerer et XML-svar. Den" " sørger for at svaret inneholder riktig innholdstypeoverskrift for XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3008,17 +3069,17 @@ msgstr "" "behandler forespørselen, henter det aktuelle detaljsvaret for områdekartet " "og angir overskriften Content-Type for XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returnerer en liste over språk som støttes, med tilhørende informasjon." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnerer nettstedets parametere som et JSON-objekt." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3026,11 +3087,11 @@ msgstr "" "Håndterer cache-operasjoner som lesing og innstilling av cachedata med en " "spesifisert nøkkel og tidsavbrudd." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Håndterer innsendinger av `kontakt oss`-skjemaer." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3038,15 +3099,15 @@ msgstr "" "Håndterer forespørsler om behandling og validering av URL-er fra innkommende" " POST-forespørsler." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Håndterer globale søk." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Håndterer logikken med å kjøpe som en bedrift uten registrering." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3054,31 +3115,31 @@ msgstr "" "Håndterer nedlastingen av en digital ressurs som er knyttet til en bestilling.\n" "Denne funksjonen forsøker å levere den digitale ressursfilen som ligger i lagringskatalogen til prosjektet. Hvis filen ikke blir funnet, vises en HTTP 404-feil for å indikere at ressursen ikke er tilgjengelig." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid er påkrevd" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "ordreproduktet eksisterer ikke" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Du kan bare laste ned den digitale ressursen én gang" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "bestillingen må betales før nedlasting av den digitale ressursen" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Ordreproduktet har ikke et produkt" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon ble ikke funnet" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3086,7 +3147,7 @@ msgstr "" "Håndterer forespørsler om faviconet til et nettsted.\n" "Denne funksjonen forsøker å vise favicon-filen som ligger i den statiske katalogen i prosjektet. Hvis favicon-filen ikke blir funnet, vises en HTTP 404-feil for å indikere at ressursen ikke er tilgjengelig." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3097,10 +3158,14 @@ msgstr "" "administrasjonsgrensesnittet. Den bruker Djangos `redirect`-funksjon for å " "håndtere HTTP-omdirigeringen." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Returnerer gjeldende versjon av eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Returnerer egendefinerte variabler for Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/pl_PL/LC_MESSAGES/django.mo b/engine/core/locale/pl_PL/LC_MESSAGES/django.mo index d06ccd02..ece54ca4 100644 Binary files a/engine/core/locale/pl_PL/LC_MESSAGES/django.mo and b/engine/core/locale/pl_PL/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/pl_PL/LC_MESSAGES/django.po b/engine/core/locale/pl_PL/LC_MESSAGES/django.po index 5084d3d3..98d101ab 100644 --- a/engine/core/locale/pl_PL/LC_MESSAGES/django.po +++ b/engine/core/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1139,7 +1139,7 @@ msgstr "Dane w pamięci podręcznej" msgid "camelized JSON data from the requested URL" msgstr "Kamelizowane dane JSON z żądanego adresu URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Dozwolone są tylko adresy URL zaczynające się od http(s)://" @@ -2784,6 +2784,67 @@ msgstr "Kontakt" msgid "About Us" msgstr "O nas" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Administrator strony Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Pulpit nawigacyjny" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Przychody (brutto, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Przychody (netto, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Zwroty (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Przetworzone zamówienia (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Sprzedaż a zwroty (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brutto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Zwroty" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Za mało danych na wykres." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Szybkie łącza" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Brak dostępnych linków." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Najbardziej pożądany produkt" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Brak danych." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Najpopularniejszy produkt" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3003,7 +3064,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Wymiary obrazu nie powinny przekraczać w{max_width} x h{max_height} pikseli." -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3011,7 +3072,7 @@ msgstr "" "Obsługuje żądanie indeksu mapy witryny i zwraca odpowiedź XML. Zapewnia, że " "odpowiedź zawiera odpowiedni nagłówek typu zawartości dla XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3021,16 +3082,16 @@ msgstr "" "przetwarza żądanie, pobiera odpowiednią szczegółową odpowiedź mapy witryny i" " ustawia nagłówek Content-Type dla XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Zwraca listę obsługiwanych języków i odpowiadające im informacje." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Zwraca parametry strony internetowej jako obiekt JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3038,11 +3099,11 @@ msgstr "" "Obsługuje operacje pamięci podręcznej, takie jak odczytywanie i ustawianie " "danych pamięci podręcznej z określonym kluczem i limitem czasu." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Obsługuje zgłoszenia formularzy `kontaktuj się z nami`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3050,15 +3111,15 @@ msgstr "" "Obsługuje żądania przetwarzania i sprawdzania poprawności adresów URL z " "przychodzących żądań POST." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Obsługuje globalne zapytania wyszukiwania." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Obsługuje logikę zakupu jako firma bez rejestracji." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3066,31 +3127,31 @@ msgstr "" "Obsługuje pobieranie zasobu cyfrowego powiązanego z zamówieniem.\n" "Ta funkcja próbuje obsłużyć plik zasobu cyfrowego znajdujący się w katalogu przechowywania projektu. Jeśli plik nie zostanie znaleziony, zgłaszany jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "Order_product_uuid jest wymagany" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "zamówiony produkt nie istnieje" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Zasób cyfrowy można pobrać tylko raz" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "zamówienie musi zostać opłacone przed pobraniem zasobu cyfrowego" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Produkt zamówienia nie ma produktu" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "nie znaleziono favicon" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3098,7 +3159,7 @@ msgstr "" "Obsługuje żądania favicon strony internetowej.\n" "Ta funkcja próbuje obsłużyć plik favicon znajdujący się w katalogu statycznym projektu. Jeśli plik favicon nie zostanie znaleziony, zgłaszany jest błąd HTTP 404 wskazujący, że zasób jest niedostępny." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3109,10 +3170,14 @@ msgstr "" "administratora Django. Używa funkcji `redirect` Django do obsługi " "przekierowania HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Zwraca aktualną wersję aplikacji eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Zwraca zmienne niestandardowe dla Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/pt_BR/LC_MESSAGES/django.mo b/engine/core/locale/pt_BR/LC_MESSAGES/django.mo index d23de866..3b614b5c 100644 Binary files a/engine/core/locale/pt_BR/LC_MESSAGES/django.mo and b/engine/core/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/pt_BR/LC_MESSAGES/django.po b/engine/core/locale/pt_BR/LC_MESSAGES/django.po index cd73fa04..e073832b 100644 --- a/engine/core/locale/pt_BR/LC_MESSAGES/django.po +++ b/engine/core/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1123,7 +1123,7 @@ msgstr "Dados em cache" msgid "camelized JSON data from the requested URL" msgstr "Dados JSON camelizados da URL solicitada" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Somente URLs que começam com http(s):// são permitidos" @@ -2763,6 +2763,67 @@ msgstr "Entre em contato conosco" msgid "About Us" msgstr "Sobre nós" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Administrador do site Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Painel de controle" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Receita (bruta, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Receita (líquida, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Devoluções (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Pedidos processados (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Vendas versus devoluções (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Bruto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Devoluções" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Ainda não há dados suficientes para o gráfico." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Links rápidos" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Não há links disponíveis." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Produto mais desejado" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Ainda não há dados." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Produto mais popular" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2979,7 +3040,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "As dimensões da imagem não devem exceder w{max_width} x h{max_height} pixels" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2988,7 +3049,7 @@ msgstr "" "Ele garante que a resposta inclua o cabeçalho de tipo de conteúdo apropriado" " para XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2998,17 +3059,17 @@ msgstr "" "processa a solicitação, obtém a resposta detalhada apropriada do mapa do " "site e define o cabeçalho Content-Type para XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Retorna uma lista de idiomas suportados e suas informações correspondentes." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Retorna os parâmetros do site como um objeto JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3016,11 +3077,11 @@ msgstr "" "Manipula operações de cache, como ler e definir dados de cache com uma chave" " e um tempo limite especificados." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Trata os envios de formulários \"entre em contato conosco\"." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3028,15 +3089,15 @@ msgstr "" "Trata as solicitações de processamento e validação de URLs de solicitações " "POST recebidas." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Trata as consultas de pesquisa global." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Lida com a lógica de comprar como uma empresa sem registro." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3044,31 +3105,31 @@ msgstr "" "Trata do download de um ativo digital associado a um pedido.\n" "Essa função tenta servir o arquivo de ativo digital localizado no diretório de armazenamento do projeto. Se o arquivo não for encontrado, será gerado um erro HTTP 404 para indicar que o recurso não está disponível." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid é obrigatório" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "o produto do pedido não existe" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Você só pode fazer o download do ativo digital uma vez" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "o pedido deve ser pago antes de fazer o download do ativo digital" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "O produto do pedido não tem um produto" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon não encontrado" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3076,7 +3137,7 @@ msgstr "" "Trata as solicitações do favicon de um site.\n" "Essa função tenta servir o arquivo favicon localizado no diretório estático do projeto. Se o arquivo favicon não for encontrado, será gerado um erro HTTP 404 para indicar que o recurso não está disponível." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3087,10 +3148,14 @@ msgstr "" "índice da interface de administração do Django. Ela usa a função `redirect` " "do Django para lidar com o redirecionamento HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Retorna a versão atual do eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Retorna variáveis personalizadas para o Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/ro_RO/LC_MESSAGES/django.mo b/engine/core/locale/ro_RO/LC_MESSAGES/django.mo index 46e65b89..b076f899 100644 Binary files a/engine/core/locale/ro_RO/LC_MESSAGES/django.mo and b/engine/core/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/ro_RO/LC_MESSAGES/django.po b/engine/core/locale/ro_RO/LC_MESSAGES/django.po index 8c030aaa..136c055d 100644 --- a/engine/core/locale/ro_RO/LC_MESSAGES/django.po +++ b/engine/core/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1146,7 +1146,7 @@ msgstr "Date în cache" msgid "camelized JSON data from the requested URL" msgstr "Date JSON Camelizate de la URL-ul solicitat" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Sunt permise numai URL-urile care încep cu http(s)://" @@ -2799,6 +2799,67 @@ msgstr "Contactați-ne" msgid "About Us" msgstr "Despre noi" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Administratorul site-ului Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Tablou de bord" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Venituri (brute, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Venituri (nete, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Returnări (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Comenzi procesate (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Vânzări vs retururi (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brut" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Returnări" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Nu există încă suficiente date pentru grafic." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Linkuri rapide" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Nu există legături disponibile." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Cel mai dorit produs" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Nu există încă date." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Cel mai popular produs" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3017,7 +3078,7 @@ msgstr "" "Dimensiunile imaginii nu trebuie să depășească w{max_width} x h{max_height} " "pixeli" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3025,7 +3086,7 @@ msgstr "" "Gestionează cererea pentru indexul sitemap și returnează un răspuns XML. Se " "asigură că răspunsul include antetul tip de conținut adecvat pentru XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3035,17 +3096,17 @@ msgstr "" "Această funcție procesează cererea, extrage răspunsul detaliat corespunzător" " al hărții site-ului și stabilește antetul Content-Type pentru XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Returnează o listă a limbilor acceptate și informațiile corespunzătoare." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnează parametrii site-ului web sub forma unui obiect JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3053,11 +3114,11 @@ msgstr "" "Gestionează operațiunile din cache, cum ar fi citirea și setarea datelor din" " cache cu o cheie și un timeout specificate." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Gestionează trimiterea formularelor `contact us`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3065,15 +3126,15 @@ msgstr "" "Gestionează cererile de procesare și validare a URL-urilor din cererile POST" " primite." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Gestionează interogările de căutare globală." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Gestionează logica cumpărării ca o afacere fără înregistrare." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3081,31 +3142,31 @@ msgstr "" "Gestionează descărcarea unui bun digital asociat cu o comandă.\n" "Această funcție încearcă să servească fișierul activului digital situat în directorul de stocare al proiectului. Dacă fișierul nu este găsit, este generată o eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid este necesar" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "comanda produsul nu există" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Puteți descărca activul digital o singură dată" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "comanda trebuie plătită înainte de descărcarea activului digital" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Produsul de comandă nu are un produs" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon nu a fost găsit" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3113,7 +3174,7 @@ msgstr "" "Gestionează cererile pentru favicon-ul unui site web.\n" "Această funcție încearcă să servească fișierul favicon situat în directorul static al proiectului. Dacă fișierul favicon nu este găsit, este generată o eroare HTTP 404 pentru a indica faptul că resursa nu este disponibilă." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3124,10 +3185,14 @@ msgstr "" " index a interfeței de administrare Django. Aceasta utilizează funcția " "`redirect` din Django pentru gestionarea redirecționării HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Returnează versiunea curentă a eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Returnează variabilele personalizate pentru tabloul de bord." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/ru_RU/LC_MESSAGES/django.mo b/engine/core/locale/ru_RU/LC_MESSAGES/django.mo index 2206585a..ec455d60 100644 Binary files a/engine/core/locale/ru_RU/LC_MESSAGES/django.mo and b/engine/core/locale/ru_RU/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/ru_RU/LC_MESSAGES/django.po b/engine/core/locale/ru_RU/LC_MESSAGES/django.po index a6fbf7ca..73c3f2a0 100644 --- a/engine/core/locale/ru_RU/LC_MESSAGES/django.po +++ b/engine/core/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1145,7 +1145,7 @@ msgstr "Кэшированные данные" msgid "camelized JSON data from the requested URL" msgstr "Camelized JSON-данные из запрашиваемого URL" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Допускаются только URL-адреса, начинающиеся с http(s)://" @@ -2787,6 +2787,67 @@ msgstr "Свяжитесь с нами" msgid "About Us" msgstr "О нас" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Администратор сайта Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Приборная панель" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Выручка (брутто, 30д)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Выручка (нетто, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Возвращение (30 дней)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Обработанные заказы (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Продажи против возвратов (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Брутто" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Возвращает" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Пока недостаточно данных для построения графика." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Быстрые ссылки" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Ссылки недоступны." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Самый желанный продукт" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Данных пока нет." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Самый популярный продукт" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3006,7 +3067,7 @@ msgstr "" "Размеры изображения не должны превышать w{max_width} x h{max_height} " "пикселей" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3015,7 +3076,7 @@ msgstr "" "Он обеспечивает включение в ответ заголовка типа содержимого, " "соответствующего типу XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3025,17 +3086,17 @@ msgstr "" "обрабатывает запрос, извлекает соответствующий подробный ответ карты сайта и" " устанавливает заголовок Content-Type для XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Возвращает список поддерживаемых языков и соответствующую информацию о них." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Возвращает параметры сайта в виде объекта JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3043,26 +3104,26 @@ msgstr "" "Выполняет операции с кэшем, такие как чтение и установка данных кэша с " "заданным ключом и таймаутом." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Обрабатывает отправленные формы `contact us`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "" "Обрабатывает запросы на обработку и проверку URL из входящих POST-запросов." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Обрабатывает глобальные поисковые запросы." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Работает с логикой покупки как бизнеса без регистрации." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3070,31 +3131,31 @@ msgstr "" "Обрабатывает загрузку цифрового актива, связанного с заказом.\n" "Эта функция пытается обслужить файл цифрового актива, расположенный в каталоге хранения проекта. Если файл не найден, выдается ошибка HTTP 404, указывающая на недоступность ресурса." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "требуется order_product_uuid" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "заказанный товар не существует" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Вы можете загрузить цифровой актив только один раз" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "заказ должен быть оплачен до загрузки цифрового актива" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "У заказанного продукта нет продукта" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon не найден" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3102,7 +3163,7 @@ msgstr "" "Обрабатывает запросы на фавикон веб-сайта.\n" "Эта функция пытается обслужить файл favicon, расположенный в статической директории проекта. Если файл favicon не найден, выдается ошибка HTTP 404, указывающая на недоступность ресурса." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3113,10 +3174,14 @@ msgstr "" "администратора Django. Для обработки HTTP-перенаправления используется " "функция Django `redirect`." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Возвращает текущую версию eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Возвращает пользовательские переменные для Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/sv_SE/LC_MESSAGES/django.mo b/engine/core/locale/sv_SE/LC_MESSAGES/django.mo index 47c9baf3..e7f72087 100644 Binary files a/engine/core/locale/sv_SE/LC_MESSAGES/django.mo and b/engine/core/locale/sv_SE/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/sv_SE/LC_MESSAGES/django.po b/engine/core/locale/sv_SE/LC_MESSAGES/django.po index 5aa8ef10..fcc6f0d4 100644 --- a/engine/core/locale/sv_SE/LC_MESSAGES/django.po +++ b/engine/core/locale/sv_SE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1118,7 +1118,7 @@ msgstr "Cachad data" msgid "camelized JSON data from the requested URL" msgstr "Cameliserad JSON-data från den begärda URL:en" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Endast webbadresser som börjar med http(s):// är tillåtna" @@ -2752,6 +2752,67 @@ msgstr "Kontakta oss" msgid "About Us" msgstr "Om oss" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django webbplatsadministratör" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Instrumentpanel" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Intäkter (brutto, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Intäkter (netto, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Avkastning (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Bearbetade order (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Försäljning vs returer (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brutto" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Avkastning" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Inte tillräckligt med data för diagram ännu." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Snabblänkar" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Inga länkar tillgängliga." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Mest önskade produkt" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Inga uppgifter ännu." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Mest populära produkt" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2968,7 +3029,7 @@ msgstr "Parametern NOMINATIM_URL måste konfigureras!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "Bildmåtten får inte överstiga w{max_width} x h{max_height} pixlar!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2976,7 +3037,7 @@ msgstr "" "Hanterar begäran om index för webbplatskartan och returnerar ett XML-svar. " "Den ser till att svaret innehåller rätt innehållstypshuvud för XML." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2986,16 +3047,16 @@ msgstr "" "bearbetar begäran, hämtar det lämpliga detaljerade svaret för " "webbplatskartan och ställer in Content-Type-huvudet för XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "Returnerar en lista över språk som stöds och motsvarande information." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Returnerar webbplatsens parametrar som ett JSON-objekt." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3003,11 +3064,11 @@ msgstr "" "Hanterar cacheoperationer som att läsa och ställa in cachedata med en " "angiven nyckel och timeout." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Hanterar formulärinlämningar för `kontakta oss`." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3015,15 +3076,15 @@ msgstr "" "Hanterar förfrågningar om bearbetning och validering av URL:er från " "inkommande POST-förfrågningar." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Hanterar globala sökfrågor." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Hanterar logiken i att köpa som ett företag utan registrering." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3031,31 +3092,31 @@ msgstr "" "Hanterar nedladdning av en digital tillgång som är kopplad till en order.\n" "Denna funktion försöker servera den digitala tillgångsfilen som finns i lagringskatalogen för projektet. Om filen inte hittas visas ett HTTP 404-fel som indikerar att resursen inte är tillgänglig." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid är obligatoriskt" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "Beställ produkten finns inte" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Du kan bara ladda ner den digitala tillgången en gång" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "beställningen måste betalas innan den digitala tillgången laddas ner" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Beställningens produkt har ingen produkt" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon hittades inte" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3063,7 +3124,7 @@ msgstr "" "Hanterar förfrågningar om favicon på en webbplats.\n" "Denna funktion försöker servera favicon-filen som finns i den statiska katalogen i projektet. Om favicon-filen inte hittas visas ett HTTP 404-fel som anger att resursen inte är tillgänglig." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3074,10 +3135,14 @@ msgstr "" "admin-gränssnitt. Den använder Djangos `redirect`-funktion för att hantera " "HTTP-omdirigeringen." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Returnerar aktuell version av eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Returnerar anpassade variabler för Dashboard." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/th_TH/LC_MESSAGES/django.mo b/engine/core/locale/th_TH/LC_MESSAGES/django.mo index ebf8345c..a5be9481 100644 Binary files a/engine/core/locale/th_TH/LC_MESSAGES/django.mo and b/engine/core/locale/th_TH/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/th_TH/LC_MESSAGES/django.po b/engine/core/locale/th_TH/LC_MESSAGES/django.po index 533e29b7..1553bfd9 100644 --- a/engine/core/locale/th_TH/LC_MESSAGES/django.po +++ b/engine/core/locale/th_TH/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1112,7 +1112,7 @@ msgstr "ข้อมูลที่เก็บไว้ในแคช" msgid "camelized JSON data from the requested URL" msgstr "ข้อมูล JSON ที่ผ่านการคาราเมลไลซ์จาก URL ที่ร้องขอ" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "อนุญาตเฉพาะ URL ที่ขึ้นต้นด้วย http(s):// เท่านั้น" @@ -2724,6 +2724,67 @@ msgstr "ติดต่อเรา" msgid "About Us" msgstr "เกี่ยวกับเรา" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "ผู้ดูแลระบบเว็บไซต์ Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "แดชบอร์ด" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "รายได้ (รวม, 30 วัน)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "รายได้ (สุทธิ, 30 วัน)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "การคืนสินค้า (30 วัน)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "คำสั่งซื้อที่ดำเนินการแล้ว (30 วัน)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "ยอดขายเทียบกับการคืนสินค้า (30 วัน)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "กรอส" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "การคืนสินค้า" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "ข้อมูลไม่เพียงพอสำหรับการสร้างแผนภูมิ" + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "ลิงก์ด่วน" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "ไม่มีลิงก์ให้ใช้" + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "สินค้าที่ลูกค้าต้องการมากที่สุด" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "ยังไม่มีข้อมูล" + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "สินค้าที่ได้รับความนิยมมากที่สุด" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2932,7 +2993,7 @@ msgstr "ต้องกำหนดค่าพารามิเตอร์ NO msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "ขนาดของภาพไม่ควรเกิน w{max_width} x h{max_height} พิกเซล!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2940,7 +3001,7 @@ msgstr "" "จัดการคำขอสำหรับดัชนีแผนผังเว็บไซต์และส่งคืนการตอบสนองในรูปแบบ XML " "โดยตรวจสอบให้แน่ใจว่าการตอบสนองมีหัวข้อประเภทเนื้อหาที่เหมาะสมสำหรับ XML" -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2950,16 +3011,16 @@ msgstr "" " ดึงการตอบสนองรายละเอียดแผนผังเว็บไซต์ที่เหมาะสม และตั้งค่าส่วนหัว Content-" "Type สำหรับ XML" -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "ส่งคืนรายการของภาษาที่รองรับและข้อมูลที่เกี่ยวข้อง" -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "ส่งคืนพารามิเตอร์ของเว็บไซต์ในรูปแบบอ็อบเจ็กต์ JSON" -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -2967,11 +3028,11 @@ msgstr "" "จัดการการดำเนินการแคช เช่น " "การอ่านและการตั้งค่าข้อมูลแคชด้วยคีย์ที่กำหนดและเวลาหมดอายุ" -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "จัดการการส่งแบบฟอร์ม 'ติดต่อเรา'" -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -2979,15 +3040,15 @@ msgstr "" "จัดการคำขอสำหรับการประมวลผลและตรวจสอบความถูกต้องของ URL จากคำขอ POST " "ที่เข้ามา" -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "จัดการคำค้นหาทั่วโลก" -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "จัดการตรรกะของการซื้อในฐานะธุรกิจโดยไม่ต้องจดทะเบียน" -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2996,31 +3057,31 @@ msgstr "" "ฟังก์ชันนี้พยายามให้บริการไฟล์สินทรัพย์ดิจิทัลที่อยู่ในไดเรกทอรีจัดเก็บของโครงการ" " หากไม่พบไฟล์ จะเกิดข้อผิดพลาด HTTP 404 เพื่อระบุว่าทรัพยากรไม่พร้อมใช้งาน" -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid เป็นข้อมูลที่จำเป็น" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "คำสั่งซื้อสินค้าไม่มีอยู่" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "คุณสามารถดาวน์โหลดสินทรัพย์ดิจิทัลได้เพียงครั้งเดียวเท่านั้น" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "คำสั่งซื้อจะต้องชำระเงินก่อนดาวน์โหลดสินทรัพย์ดิจิทัล" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "สินค้าตามคำสั่งซื้อไม่มีสินค้า" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "ไม่พบไอคอนเว็บไซต์" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3029,7 +3090,7 @@ msgstr "" "favicon ที่อยู่ในไดเรกทอรีแบบคงที่ของโปรเจกต์ หากไม่พบไฟล์ favicon " "จะเกิดข้อผิดพลาด HTTP 404 เพื่อแสดงว่าทรัพยากรไม่พร้อมใช้งาน" -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3039,10 +3100,14 @@ msgstr "" "ที่เข้ามาและเปลี่ยนเส้นทางไปยังหน้าดัชนีของอินเทอร์เฟซผู้ดูแลระบบ Django " "โดยใช้ฟังก์ชัน `redirect` ของ Django สำหรับการเปลี่ยนเส้นทาง HTTP" -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "ส่งคืนเวอร์ชันปัจจุบันของ eVibes" +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "ส่งคืนตัวแปรที่กำหนดเองสำหรับแดชบอร์ด" + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/tr_TR/LC_MESSAGES/django.mo b/engine/core/locale/tr_TR/LC_MESSAGES/django.mo index d96958d5..3f234446 100644 Binary files a/engine/core/locale/tr_TR/LC_MESSAGES/django.mo and b/engine/core/locale/tr_TR/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/tr_TR/LC_MESSAGES/django.po b/engine/core/locale/tr_TR/LC_MESSAGES/django.po index 97ad9f52..6133fae8 100644 --- a/engine/core/locale/tr_TR/LC_MESSAGES/django.po +++ b/engine/core/locale/tr_TR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1134,7 +1134,7 @@ msgstr "Önbelleğe alınmış veriler" msgid "camelized JSON data from the requested URL" msgstr "İstenen URL'den kameleştirilmiş JSON verileri" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Yalnızca http(s):// ile başlayan URL'lere izin verilir" @@ -2765,6 +2765,67 @@ msgstr "Bize Ulaşın" msgid "About Us" msgstr "Hakkımızda" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django site yöneticisi" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Gösterge Tablosu" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Gelir (brüt, 30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Gelir (net, 30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "İadeler (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "İşlenmiş siparişler (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Satışlar ve İadeler (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Brüt" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Geri dönüşler" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Grafik için henüz yeterli veri yok." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Hızlı Bağlantılar" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Bağlantı mevcut değil." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "En çok istenen ürün" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "No data yet." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "En popüler ürün" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2981,7 +3042,7 @@ msgstr "NOMINATIM_URL parametresi yapılandırılmalıdır!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "Resim boyutları w{max_width} x h{max_height} pikseli geçmemelidir!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -2989,7 +3050,7 @@ msgstr "" "Site haritası dizini için isteği işler ve bir XML yanıtı döndürür. Yanıtın " "XML için uygun içerik türü başlığını içermesini sağlar." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -2999,18 +3060,18 @@ msgstr "" " işler, uygun site haritası ayrıntı yanıtını getirir ve XML için Content-" "Type başlığını ayarlar." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Desteklenen dillerin bir listesini ve bunlara karşılık gelen bilgileri " "döndürür." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Web sitesinin parametrelerini bir JSON nesnesi olarak döndürür." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3018,11 +3079,11 @@ msgstr "" "Belirli bir anahtar ve zaman aşımı ile önbellek verilerini okuma ve ayarlama" " gibi önbellek işlemlerini gerçekleştirir." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Bize ulaşın` form gönderimlerini işler." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." @@ -3030,15 +3091,15 @@ msgstr "" "Gelen POST isteklerinden gelen URL'leri işleme ve doğrulama isteklerini " "işler." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Küresel arama sorgularını işler." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "Kayıt olmadan bir işletme olarak satın alma mantığını ele alır." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3046,31 +3107,31 @@ msgstr "" "Bir siparişle ilişkili bir dijital varlığın indirilmesini yönetir.\n" "Bu fonksiyon, projenin depolama dizininde bulunan dijital varlık dosyasını sunmaya çalışır. Dosya bulunamazsa, kaynağın kullanılamadığını belirtmek için bir HTTP 404 hatası verilir." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid gereklidir" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "sipariş ürünü mevcut değil" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Dijital varlığı yalnızca bir kez indirebilirsiniz" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "dijital varlık indirilmeden önce siparişin ödenmesi gerekir" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Sipariş ürününün bir ürünü yok" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "favicon bulunamadı" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3078,7 +3139,7 @@ msgstr "" "Bir web sitesinin favicon'u için istekleri işler.\n" "Bu fonksiyon, projenin statik dizininde bulunan favicon dosyasını sunmaya çalışır. Favicon dosyası bulunamazsa, kaynağın kullanılamadığını belirtmek için bir HTTP 404 hatası verilir." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3089,10 +3150,14 @@ msgstr "" "yönlendirir. HTTP yönlendirmesini işlemek için Django'nun `redirect` " "fonksiyonunu kullanır." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "eVibes'in geçerli sürümünü döndürür." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Gösterge Tablosu için özel değişkenleri döndürür." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/vi_VN/LC_MESSAGES/django.mo b/engine/core/locale/vi_VN/LC_MESSAGES/django.mo index 47c4ec97..eb9a9759 100644 Binary files a/engine/core/locale/vi_VN/LC_MESSAGES/django.mo and b/engine/core/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/vi_VN/LC_MESSAGES/django.po b/engine/core/locale/vi_VN/LC_MESSAGES/django.po index 8da3e98b..d1da1ab4 100644 --- a/engine/core/locale/vi_VN/LC_MESSAGES/django.po +++ b/engine/core/locale/vi_VN/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1156,7 +1156,7 @@ msgid "camelized JSON data from the requested URL" msgstr "" "Dữ liệu JSON đã được chuyển đổi sang định dạng JSON từ URL được yêu cầu." -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "Chỉ các URL bắt đầu bằng http(s):// mới được phép." @@ -2796,6 +2796,67 @@ msgstr "Liên hệ với chúng tôi" msgid "About Us" msgstr "Giới thiệu về chúng tôi" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Quản trị viên trang web Django" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "Bảng điều khiển" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "Doanh thu (tổng, 30 ngày)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "Doanh thu (ròng, 30 ngày)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "Hoàn trả (30 ngày)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "Đơn hàng đã xử lý (30 ngày)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "Doanh số bán hàng so với hàng trả lại (30 ngày)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "Gross" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "Trả hàng" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "Chưa có đủ dữ liệu để tạo biểu đồ." + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "Liên kết nhanh" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "Không có liên kết nào có sẵn." + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "Sản phẩm được mong đợi nhất" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "Chưa có dữ liệu." + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "Sản phẩm phổ biến nhất" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -3011,7 +3072,7 @@ msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "" "Kích thước hình ảnh không được vượt quá w{max_width} x h{max_height} pixel!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." @@ -3019,7 +3080,7 @@ msgstr "" "Xử lý yêu cầu về sơ đồ trang web (sitemap index) và trả về phản hồi XML. Nó " "đảm bảo rằng phản hồi bao gồm tiêu đề loại nội dung XML phù hợp." -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " @@ -3029,17 +3090,17 @@ msgstr "" "lấy phản hồi chi tiết phù hợp của sơ đồ trang web và đặt tiêu đề Content-" "Type cho XML." -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "" "Trả về danh sách các ngôn ngữ được hỗ trợ và thông tin tương ứng của chúng." -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "Trả về các tham số của trang web dưới dạng đối tượng JSON." -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." @@ -3047,27 +3108,27 @@ msgstr "" "Xử lý các thao tác bộ nhớ đệm như đọc và ghi dữ liệu bộ nhớ đệm với khóa và " "thời gian chờ được chỉ định." -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "Xử lý các biểu mẫu liên hệ." -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "Xử lý các yêu cầu xử lý và xác thực URL từ các yêu cầu POST đến." -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "Xử lý các truy vấn tìm kiếm toàn cầu." -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "" "Xử lý logic của việc mua hàng như một hoạt động kinh doanh mà không cần đăng" " ký." -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3077,32 +3138,32 @@ msgstr "" " lưu trữ của dự án. Nếu tệp không được tìm thấy, một lỗi HTTP 404 sẽ được " "trả về để thông báo rằng tài nguyên không khả dụng." -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid là trường bắt buộc." -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "Sản phẩm không tồn tại" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "Bạn chỉ có thể tải xuống tài sản kỹ thuật số một lần." -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "" "Đơn hàng phải được thanh toán trước khi tải xuống tài sản kỹ thuật số." -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "Sản phẩm đặt hàng không có sản phẩm." -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "Biểu tượng trang web không tìm thấy" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -3112,7 +3173,7 @@ msgstr "" "không được tìm thấy, một lỗi HTTP 404 sẽ được trả về để thông báo rằng tài " "nguyên không khả dụng." -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -3123,10 +3184,14 @@ msgstr "" "Django. Nó sử dụng hàm `redirect` của Django để xử lý việc chuyển hướng " "HTTP." -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "Trả về phiên bản hiện tại của eVibes." +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "Trả về các biến tùy chỉnh cho Bảng điều khiển." + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo b/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo index 9afa4691..e58afefc 100644 Binary files a/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo and b/engine/core/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po index 1bcbbe70..4fba80fb 100644 --- a/engine/core/locale/zh_Hans/LC_MESSAGES/django.po +++ b/engine/core/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" @@ -1059,7 +1059,7 @@ msgstr "缓存数据" msgid "camelized JSON data from the requested URL" msgstr "从请求的 URL 中获取驼峰化 JSON 数据" -#: engine/core/graphene/mutations.py:67 engine/core/views.py:239 +#: engine/core/graphene/mutations.py:67 engine/core/views.py:243 msgid "only URLs starting with http(s):// are allowed" msgstr "只允许使用以 http(s):// 开头的 URL" @@ -2565,6 +2565,67 @@ msgstr "联系我们" msgid "About Us" msgstr "关于我们" +#: engine/core/templates/admin/index.html:9 +msgid "Django site admin" +msgstr "Django 网站管理员" + +#: engine/core/templates/admin/index.html:19 +msgid "Dashboard" +msgstr "仪表板" + +#: engine/core/templates/admin/index.html:25 +msgid "Revenue (gross, 30d)" +msgstr "收入(毛额,30d)" + +#: engine/core/templates/admin/index.html:34 +msgid "Revenue (net, 30d)" +msgstr "收入(净额,30d)" + +#: engine/core/templates/admin/index.html:43 +msgid "Returns (30d)" +msgstr "返回 (30d)" + +#: engine/core/templates/admin/index.html:52 +msgid "Processed orders (30d)" +msgstr "已处理订单 (30d)" + +#: engine/core/templates/admin/index.html:65 +msgid "Sales vs Returns (30d)" +msgstr "销售与退货 (30d)" + +#: engine/core/templates/admin/index.html:82 +msgid "Gross" +msgstr "毛额" + +#: engine/core/templates/admin/index.html:87 +msgid "Returns" +msgstr "返回" + +#: engine/core/templates/admin/index.html:94 +msgid "Not enough data for chart yet." +msgstr "图表数据尚不充足。" + +#: engine/core/templates/admin/index.html:103 +msgid "Quick Links" +msgstr "快速链接" + +#: engine/core/templates/admin/index.html:110 +msgid "No links available." +msgstr "没有链接。" + +#: engine/core/templates/admin/index.html:119 +msgid "Most wished product" +msgstr "最希望的产品" + +#: engine/core/templates/admin/index.html:128 +#: engine/core/templates/admin/index.html:144 +msgid "No data yet." +msgstr "尚无数据。" + +#: engine/core/templates/admin/index.html:135 +msgid "Most popular product" +msgstr "最受欢迎的产品" + #: engine/core/templates/digital_order_created_email.html:7 #: engine/core/templates/digital_order_created_email.html:100 #: engine/core/templates/digital_order_delivered_email.html:6 @@ -2770,53 +2831,53 @@ msgstr "必须配置 NOMINATIM_URL 参数!" msgid "image dimensions should not exceed w{max_width} x h{max_height} pixels" msgstr "图像尺寸不应超过 w{max_width} x h{max_height} 像素!" -#: engine/core/views.py:73 +#: engine/core/views.py:77 msgid "" "Handles the request for the sitemap index and returns an XML response. It " "ensures the response includes the appropriate content type header for XML." msgstr "处理网站地图索引请求并返回 XML 响应。它确保响应包含适当的 XML 内容类型标头。" -#: engine/core/views.py:88 +#: engine/core/views.py:92 msgid "" "Handles the detailed view response for a sitemap. This function processes " "the request, fetches the appropriate sitemap detail response, and sets the " "Content-Type header for XML." msgstr "处理网站地图的详细视图响应。该函数处理请求,获取相应的网站地图详细响应,并将 Content-Type 标头设置为 XML。" -#: engine/core/views.py:123 +#: engine/core/views.py:127 msgid "" "Returns a list of supported languages and their corresponding information." msgstr "返回支持语言及其相应信息的列表。" -#: engine/core/views.py:155 +#: engine/core/views.py:159 msgid "Returns the parameters of the website as a JSON object." msgstr "以 JSON 对象形式返回网站参数。" -#: engine/core/views.py:174 +#: engine/core/views.py:178 msgid "" "Handles cache operations such as reading and setting cache data with a " "specified key and timeout." msgstr "处理缓存操作,如使用指定的键和超时读取和设置缓存数据。" -#: engine/core/views.py:201 +#: engine/core/views.py:205 msgid "Handles `contact us` form submissions." msgstr "处理 \"联系我们 \"表单提交。" -#: engine/core/views.py:222 +#: engine/core/views.py:226 msgid "" "Handles requests for processing and validating URLs from incoming POST " "requests." msgstr "处理来自传入 POST 请求的处理和验证 URL 的请求。" -#: engine/core/views.py:262 +#: engine/core/views.py:266 msgid "Handles global search queries." msgstr "处理全局搜索查询。" -#: engine/core/views.py:277 +#: engine/core/views.py:281 msgid "Handles the logic of buying as a business without registration." msgstr "处理未注册企业的购买逻辑。" -#: engine/core/views.py:314 +#: engine/core/views.py:318 msgid "" "Handles the downloading of a digital asset associated with an order.\n" "This function attempts to serve the digital asset file located in the storage directory of the project. If the file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2824,31 +2885,31 @@ msgstr "" "处理与订单相关的数字资产的下载。\n" "此函数会尝试为位于项目存储目录中的数字资产文件提供服务。如果未找到文件,则会出现 HTTP 404 错误,表示资源不可用。" -#: engine/core/views.py:325 +#: engine/core/views.py:329 msgid "order_product_uuid is required" msgstr "order_product_uuid 为必填项" -#: engine/core/views.py:332 +#: engine/core/views.py:336 msgid "order product does not exist" msgstr "订单产品不存在" -#: engine/core/views.py:335 +#: engine/core/views.py:339 msgid "you can only download the digital asset once" msgstr "您只能下载一次数字资产" -#: engine/core/views.py:338 +#: engine/core/views.py:342 msgid "the order must be paid before downloading the digital asset" msgstr "在下载数字资产前必须支付订单费用" -#: engine/core/views.py:344 +#: engine/core/views.py:348 msgid "the order product does not have a product" msgstr "订单产品没有产品" -#: engine/core/views.py:381 +#: engine/core/views.py:385 msgid "favicon not found" msgstr "未找到 favicon" -#: engine/core/views.py:386 +#: engine/core/views.py:390 msgid "" "Handles requests for the favicon of a website.\n" "This function attempts to serve the favicon file located in the static directory of the project. If the favicon file is not found, an HTTP 404 error is raised to indicate the resource is unavailable." @@ -2856,7 +2917,7 @@ msgstr "" "处理网站的 favicon 请求。\n" "该函数会尝试为位于项目静态目录中的 favicon 文件提供服务。如果找不到 favicon 文件,就会出现 HTTP 404 错误,表示资源不可用。" -#: engine/core/views.py:398 +#: engine/core/views.py:402 msgid "" "Redirects the request to the admin index page. The function handles incoming" " HTTP requests and redirects them to the Django admin interface index page. " @@ -2865,10 +2926,14 @@ msgstr "" "将请求重定向到管理索引页面。该函数处理传入的 HTTP 请求并将其重定向到 Django 管理界面索引页面。它使用 Django 的 " "`redirect` 函数来处理 HTTP 重定向。" -#: engine/core/views.py:411 +#: engine/core/views.py:415 msgid "Returns current version of the eVibes. " msgstr "返回 eVibes 的当前版本。" +#: engine/core/views.py:494 +msgid "Returns custom variables for Dashboard. " +msgstr "返回 Dashboard 的自定义变量。" + #: engine/core/viewsets.py:136 msgid "" "Defines a viewset for managing Evibes-related operations. The EvibesViewSet " diff --git a/engine/core/templates/admin/index.html b/engine/core/templates/admin/index.html index 7f213e36..51f9dafc 100644 --- a/engine/core/templates/admin/index.html +++ b/engine/core/templates/admin/index.html @@ -1,6 +1,5 @@ {% extends 'admin/base.html' %} - -{% load i18n %} +{% load i18n unfold %} {% block title %} {% if subtitle %} @@ -15,38 +14,58 @@ {% endblock %} {% block content %} -
-

{% trans "Dashboard" %}

+ {% component "unfold/components/container.html" %} + {% component "unfold/components/title.html" %} + {% trans "Dashboard" %} + {% endcomponent %} -
-
-
{% trans "Revenue (gross, 30d)" %}
-
{{ revenue_gross_30|default:0 }}
-
-
-
{% trans "Revenue (net, 30d)" %}
-
{{ revenue_net_30|default:0 }}
-
-
-
{% trans "Returns (30d)" %}
-
{{ returns_30|default:0 }}
-
-
-
{% trans "Processed orders (30d)" %}
-
{{ processed_orders_30|default:0 }}
-
+
+ {% component "unfold/components/card.html" %} + {% component "unfold/components/text.html" %} + {% trans "Revenue (gross, 30d)" %} + {% endcomponent %} + {% component "unfold/components/title.html" %} + {{ revenue_gross_30|default:0 }} + {% endcomponent %} + {% endcomponent %} + + {% component "unfold/components/card.html" %} + {% component "unfold/components/text.html" %} + {% trans "Revenue (net, 30d)" %} + {% endcomponent %} + {% component "unfold/components/title.html" %} + {{ revenue_net_30|default:0 }} + {% endcomponent %} + {% endcomponent %} + + {% component "unfold/components/card.html" %} + {% component "unfold/components/text.html" %} + {% trans "Returns (30d)" %} + {% endcomponent %} + {% component "unfold/components/title.html" %} + {{ returns_30|default:0 }} + {% endcomponent %} + {% endcomponent %} + + {% component "unfold/components/card.html" %} + {% component "unfold/components/text.html" %} + {% trans "Processed orders (30d)" %} + {% endcomponent %} + {% component "unfold/components/title.html" %} + {{ processed_orders_30|default:0 }} + {% endcomponent %} + {% endcomponent %}
-
+
{% with gross=revenue_gross_30|default:0 returns=returns_30|default:0 %} {% with total=gross|add:returns %} -
-
-

{% trans "Sales vs Returns (30d)" %}

-
+ {% component "unfold/components/card.html" with class="xl:col-span-2" %} + {% component "unfold/components/title.html" %} + {% trans "Sales vs Returns (30d)" %} + {% endcomponent %} {% if total and total > 0 %} {% widthratio gross total 360 as gross_deg %} - {% widthratio returns total 360 as returns_deg %}
{% else %} -

{% trans "Not enough data for chart yet." %}

+ {% component "unfold/components/text.html" %} + {% trans "Not enough data for chart yet." %} + {% endcomponent %} {% endif %} -
+ {% endcomponent %} {% endwith %} {% endwith %} - + {% component "unfold/components/card.html" %} + {% component "unfold/components/title.html" %} + {% trans "Quick Links" %} + {% endcomponent %} + {% if quick_links %} + {% component "unfold/components/navigation.html" with items=quick_links %} + {% endcomponent %} + {% else %} + {% component "unfold/components/text.html" %} + {% trans "No links available." %} + {% endcomponent %} + {% endif %} + {% endcomponent %}
-
+ +
+ {% component "unfold/components/card.html" %} + {% component "unfold/components/title.html" %} + {% trans "Most wished product" %} + {% endcomponent %} + {% if most_wished_product %} + + {{ most_wished_product.name }} + {{ most_wished_product.name }} + + {% else %} + {% component "unfold/components/text.html" %} + {% trans "No data yet." %} + {% endcomponent %} + {% endif %} + {% endcomponent %} + + {% component "unfold/components/card.html" %} + {% component "unfold/components/title.html" %} + {% trans "Most popular product" %} + {% endcomponent %} + {% if most_popular_product %} + + {{ most_popular_product.name }} + {{ most_popular_product.name }} + + {% else %} + {% component "unfold/components/text.html" %} + {% trans "No data yet." %} + {% endcomponent %} + {% endif %} + {% endcomponent %} +
+ + {% endcomponent %} {% endblock %} diff --git a/engine/core/views.py b/engine/core/views.py index 286fde27..1ab9528f 100644 --- a/engine/core/views.py +++ b/engine/core/views.py @@ -2,6 +2,7 @@ import logging import mimetypes import os import traceback +from contextlib import suppress import requests from django.conf import settings @@ -9,8 +10,10 @@ from django.contrib.sitemaps.views import index as _sitemap_index_view from django.contrib.sitemaps.views import sitemap as _sitemap_detail_view from django.core.cache import cache from django.core.exceptions import BadRequest +from django.db.models import Count, Sum from django.http import FileResponse, Http404, HttpRequest, HttpResponse, HttpResponseRedirect, JsonResponse from django.shortcuts import redirect +from django.urls import reverse from django.utils.decorators import method_decorator from django.utils.http import urlsafe_base64_decode from django.utils.translation import gettext_lazy as _ @@ -44,7 +47,7 @@ from engine.core.docs.drf.views import ( SEARCH_SCHEMA, ) from engine.core.elasticsearch import process_query -from engine.core.models import DigitalAssetDownload, Order, OrderProduct +from engine.core.models import DigitalAssetDownload, Order, OrderProduct, Product, Wishlist from engine.core.serializers import ( BuyAsBusinessOrderSerializer, CacheOperatorSerializer, @@ -52,8 +55,8 @@ from engine.core.serializers import ( LanguageSerializer, ) from engine.core.utils import get_project_parameters, is_url_safe -from engine.core.utils.commerce import get_revenue, get_returns, get_total_processed_orders from engine.core.utils.caching import web_cache +from engine.core.utils.commerce import get_returns, get_revenue, get_total_processed_orders from engine.core.utils.emailing import contact_us_email from engine.core.utils.languages import get_flag_by_language from engine.payments.serializers import TransactionProcessSerializer @@ -419,6 +422,58 @@ def dashboard_callback(request, context): returns_30 = get_returns() processed_orders_30 = get_total_processed_orders() + quick_links: list[dict[str, str]] = [] + with suppress(Exception): + quick_links_section = settings.UNFOLD.get("SIDEBAR", {}).get("navigation", [])[1] # type: ignore[assignment] + for item in quick_links_section.get("items", []): + title = item.get("title") + link = item.get("link") + if not title or not link: + continue + if str(title).lower() == "dashboard": + continue + url = str(link) + quick_links.append({"name": str(title), "href": url}) + + most_wished: dict[str, str | int | float | None] | None = None + with suppress(Exception): + wished = ( + Wishlist.objects.filter(user__is_active=True, user__is_staff=False) + .values("products") + .exclude(products__isnull=True) + .annotate(cnt=Count("products")) + .order_by("-cnt") + .first() + ) + if wished and wished.get("products"): + product = Product.objects.filter(pk=wished["products"]).first() + if product: + img = product.images.first().image_url if product.images.exists() else "" + most_wished = { + "name": product.name, + "image": img, + "admin_url": reverse("admin:core_product_change", args=[product.pk]), + } + + most_popular: dict[str, str | int | float | None] | None = None + with suppress(Exception): + popular = ( + OrderProduct.objects.filter(status="FINISHED", order__status="FINISHED", product__isnull=False) + .values("product") + .annotate(total_qty=Sum("quantity")) + .order_by("-total_qty") + .first() + ) + if popular and popular.get("product"): + product = Product.objects.filter(pk=popular["product"]).first() + if product: + img = product.images.first().image_url if product.images.exists() else "" + most_popular = { + "name": product.name, + "image": img, + "admin_url": reverse("admin:core_product_change", args=[product.pk]), + } + context.update( { "custom_variable": "value", @@ -426,6 +481,9 @@ def dashboard_callback(request, context): "revenue_net_30": revenue_net_30, "returns_30": returns_30, "processed_orders_30": processed_orders_30, + "quick_links": quick_links, + "most_wished_product": most_wished, + "most_popular_product": most_popular, } ) diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.mo b/evibes/locale/ar_AR/LC_MESSAGES/django.mo index e4dc8028..18857fd2 100644 Binary files a/evibes/locale/ar_AR/LC_MESSAGES/django.mo and b/evibes/locale/ar_AR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ar_AR/LC_MESSAGES/django.po b/evibes/locale/ar_AR/LC_MESSAGES/django.po index 4639df68..b8b0a79f 100644 --- a/evibes/locale/ar_AR/LC_MESSAGES/django.po +++ b/evibes/locale/ar_AR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -227,54 +227,62 @@ msgstr "" "## الإصدار\n" "إصدار API الحالي: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "قائمة الطعام" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "لوحة التحكم" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "الصحة" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "التكوين" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "المستخدمون" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "المجموعات" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "المنتجات" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "الفئات" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "العلامات التجارية" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "المدونات" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "المهام الدورية" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "لوحة المهام" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "الدعم" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "روابط سريعة" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "المستخدمون" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "المجموعات" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "الطلبات" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "المنتجات" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "الفئات" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "العلامات التجارية" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "المدونات" diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.mo b/evibes/locale/cs_CZ/LC_MESSAGES/django.mo index 201ab0f4..ce634bf7 100644 Binary files a/evibes/locale/cs_CZ/LC_MESSAGES/django.mo and b/evibes/locale/cs_CZ/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/cs_CZ/LC_MESSAGES/django.po b/evibes/locale/cs_CZ/LC_MESSAGES/django.po index 585ca93b..10b3b5e7 100644 --- a/evibes/locale/cs_CZ/LC_MESSAGES/django.po +++ b/evibes/locale/cs_CZ/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Verze\n" "Aktuální verze API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Nabídka" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Přístrojová deska" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Zdraví" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfigurace" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Uživatelé" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Skupiny" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produkty" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategorie" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Značky" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposty" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Pravidelné úkoly" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Podpora" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Rychlé odkazy" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Uživatelé" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Skupiny" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Objednávky" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produkty" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategorie" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Značky" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposty" diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.mo b/evibes/locale/da_DK/LC_MESSAGES/django.mo index a4c0d85d..27a26682 100644 Binary files a/evibes/locale/da_DK/LC_MESSAGES/django.mo and b/evibes/locale/da_DK/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/da_DK/LC_MESSAGES/django.po b/evibes/locale/da_DK/LC_MESSAGES/django.po index cb1699be..ee14bc77 100644 --- a/evibes/locale/da_DK/LC_MESSAGES/django.po +++ b/evibes/locale/da_DK/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Version\n" "Nuværende API-version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Sundhed" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfig" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Brugere" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grupper" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produkter" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategorier" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Mærker" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogindlæg" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Periodiske opgaver" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Opgavetavle" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Støtte" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Hurtige links" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Brugere" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grupper" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Bestillinger" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produkter" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategorier" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Mærker" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogindlæg" diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.mo b/evibes/locale/de_DE/LC_MESSAGES/django.mo index b14a8bb6..1292415d 100644 Binary files a/evibes/locale/de_DE/LC_MESSAGES/django.mo and b/evibes/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/de_DE/LC_MESSAGES/django.po b/evibes/locale/de_DE/LC_MESSAGES/django.po index 7e059b87..16815035 100644 --- a/evibes/locale/de_DE/LC_MESSAGES/django.po +++ b/evibes/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -230,54 +230,62 @@ msgstr "" "## Version\n" "Aktuelle API-Version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menü" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Gesundheit" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfigurieren Sie" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Benutzer" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Gruppen" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produkte" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategorien" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Marken" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Regelmäßige Aufgaben" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Aufgabentafel" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Unterstützung" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Schnelle Links" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Benutzer" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Gruppen" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Bestellungen" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produkte" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategorien" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Marken" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.mo b/evibes/locale/en_GB/LC_MESSAGES/django.mo index 830b3e21..b6239bb1 100644 Binary files a/evibes/locale/en_GB/LC_MESSAGES/django.mo and b/evibes/locale/en_GB/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/en_GB/LC_MESSAGES/django.po b/evibes/locale/en_GB/LC_MESSAGES/django.po index bdda740d..fd7251ea 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 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -233,54 +233,62 @@ msgstr "" "## Version\n" "Current API version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Health" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Users" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Groups" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Products" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Categories" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Brands" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Periodic Tasks" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Support" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Quick Links" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Users" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Groups" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Orders" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Products" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Categories" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Brands" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/en_US/LC_MESSAGES/django.mo b/evibes/locale/en_US/LC_MESSAGES/django.mo index e14386d7..ed21c9fe 100644 Binary files a/evibes/locale/en_US/LC_MESSAGES/django.mo and b/evibes/locale/en_US/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/en_US/LC_MESSAGES/django.po b/evibes/locale/en_US/LC_MESSAGES/django.po index 307f0d88..ac841f70 100644 --- a/evibes/locale/en_US/LC_MESSAGES/django.po +++ b/evibes/locale/en_US/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Version\n" "Current API version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Health" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Users" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Groups" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Products" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Categories" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Brands" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Periodic Tasks" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Support" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Quick Links" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Users" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Groups" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Orders" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Products" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Categories" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Brands" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.mo b/evibes/locale/es_ES/LC_MESSAGES/django.mo index b6f036b2..cd452852 100644 Binary files a/evibes/locale/es_ES/LC_MESSAGES/django.mo and b/evibes/locale/es_ES/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/es_ES/LC_MESSAGES/django.po b/evibes/locale/es_ES/LC_MESSAGES/django.po index 15bd1d78..0ef0d5d3 100644 --- a/evibes/locale/es_ES/LC_MESSAGES/django.po +++ b/evibes/locale/es_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Versión\n" "Versión actual de la API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menú" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Cuadro de mandos" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Salud" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Configurar" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Usuarios" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grupos" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Productos" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Categorías" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Marcas" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Tareas periódicas" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Taskboard" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Ayuda" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Enlaces rápidos" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Usuarios" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grupos" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Pedidos" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Productos" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Categorías" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Marcas" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/fa_IR/LC_MESSAGES/django.po b/evibes/locale/fa_IR/LC_MESSAGES/django.po index 70d0f492..413ef38b 100644 --- a/evibes/locale/fa_IR/LC_MESSAGES/django.po +++ b/evibes/locale/fa_IR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -199,54 +199,62 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "" diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.mo b/evibes/locale/fr_FR/LC_MESSAGES/django.mo index a0d0a3d0..4dbb7c1c 100644 Binary files a/evibes/locale/fr_FR/LC_MESSAGES/django.mo and b/evibes/locale/fr_FR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/fr_FR/LC_MESSAGES/django.po b/evibes/locale/fr_FR/LC_MESSAGES/django.po index f9f2507c..7c1b5f42 100644 --- a/evibes/locale/fr_FR/LC_MESSAGES/django.po +++ b/evibes/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -233,54 +233,62 @@ msgstr "" "## Version\n" "Version actuelle de l'API : {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Tableau de bord" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Santé" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Utilisateurs" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Groupes" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produits" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Catégories" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Marques" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Tâches périodiques" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Tableau des tâches" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Soutien" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Liens rapides" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Utilisateurs" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Groupes" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Commandes" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produits" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Catégories" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Marques" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.mo b/evibes/locale/he_IL/LC_MESSAGES/django.mo index 7770c980..26901e1a 100644 Binary files a/evibes/locale/he_IL/LC_MESSAGES/django.mo and b/evibes/locale/he_IL/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/he_IL/LC_MESSAGES/django.po b/evibes/locale/he_IL/LC_MESSAGES/django.po index 02d18083..7d27509b 100644 --- a/evibes/locale/he_IL/LC_MESSAGES/django.po +++ b/evibes/locale/he_IL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -193,54 +193,62 @@ msgstr "" "- ניתן לאחזר את השפות הזמינות מנקודת הקצה `/app/languages/`. - כל התוכן המוצג למשתמש תומך במספר שפות באופן מובנה. ## פורמטים של תגובה ה-API תומך במספר פורמטים של תגובה: - **JSON** (ברירת מחדל, בפורמט camelCase) - **XML** (הוסף `?format=xml` או הגדר `Accept: application/xml`)\n" "- **YAML** (הוסף `?format=yaml` או הגדר `Accept: application/x-yaml`) ## תקינות וניטור - בדיקות תקינות: `/health/` - מדדי Prometheus (מוגנים באמצעות אימות בסיסי): `/prometheus/` ## גרסה גרסת ה-API הנוכחית: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "תפריט" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "לוח מחוונים" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "בריאות" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "תצורה" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "משתמשים" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "קבוצות" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "מוצרים" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "קטגוריות" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "מותגים" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "פוסטים בבלוג" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "משימות תקופתיות" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "לוח משימות" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "תמיכה" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "קישורים מהירים" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "משתמשים" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "קבוצות" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "הזמנות" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "מוצרים" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "קטגוריות" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "מותגים" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "פוסטים בבלוג" diff --git a/evibes/locale/hi_IN/LC_MESSAGES/django.po b/evibes/locale/hi_IN/LC_MESSAGES/django.po index 94d6de17..f2c03a59 100644 --- a/evibes/locale/hi_IN/LC_MESSAGES/django.po +++ b/evibes/locale/hi_IN/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -199,54 +199,62 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "" diff --git a/evibes/locale/hr_HR/LC_MESSAGES/django.po b/evibes/locale/hr_HR/LC_MESSAGES/django.po index 70d0f492..413ef38b 100644 --- a/evibes/locale/hr_HR/LC_MESSAGES/django.po +++ b/evibes/locale/hr_HR/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -199,54 +199,62 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "" diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.mo b/evibes/locale/id_ID/LC_MESSAGES/django.mo index b7d776ae..40b58cd9 100644 Binary files a/evibes/locale/id_ID/LC_MESSAGES/django.mo and b/evibes/locale/id_ID/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/id_ID/LC_MESSAGES/django.po b/evibes/locale/id_ID/LC_MESSAGES/django.po index d564b7da..35ce6298 100644 --- a/evibes/locale/id_ID/LC_MESSAGES/django.po +++ b/evibes/locale/id_ID/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Versi\n" "Versi API saat ini: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Dasbor" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Kesehatan" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfigurasi" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Pengguna" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grup" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produk" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategori" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Merek" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Posting blog" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Tugas Berkala" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Papan tugas" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Dukungan" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Tautan Cepat" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Pengguna" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grup" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Pesanan" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produk" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategori" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Merek" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Posting blog" diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.mo b/evibes/locale/it_IT/LC_MESSAGES/django.mo index 5a304af4..21ac3500 100644 Binary files a/evibes/locale/it_IT/LC_MESSAGES/django.mo and b/evibes/locale/it_IT/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/it_IT/LC_MESSAGES/django.po b/evibes/locale/it_IT/LC_MESSAGES/django.po index b7c4c822..ea44896d 100644 --- a/evibes/locale/it_IT/LC_MESSAGES/django.po +++ b/evibes/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Versione\n" "Versione attuale dell'API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Cruscotto" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Salute" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Configurazione" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Utenti" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Gruppi" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Prodotti" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Categorie" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Marche" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Compiti periodici" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Lavagna" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Supporto" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Collegamenti rapidi" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Utenti" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Gruppi" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Ordini" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Prodotti" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Categorie" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Marche" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.mo b/evibes/locale/ja_JP/LC_MESSAGES/django.mo index 2cf57abb..2c6bfbff 100644 Binary files a/evibes/locale/ja_JP/LC_MESSAGES/django.mo and b/evibes/locale/ja_JP/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ja_JP/LC_MESSAGES/django.po b/evibes/locale/ja_JP/LC_MESSAGES/django.po index 84e0b870..126bfc9b 100644 --- a/evibes/locale/ja_JP/LC_MESSAGES/django.po +++ b/evibes/locale/ja_JP/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -227,54 +227,62 @@ msgstr "" "## バージョン\n" "現在のAPIバージョン:現在のAPIバージョン: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "メニュー" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "ダッシュボード" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "健康" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "コンフィグ" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "ユーザー" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "グループ" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "製品紹介" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "カテゴリー" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "ブランド" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "ブログ記事" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "定期的なタスク" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "タスクボード" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "サポート" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "クイックリンク" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "ユーザー" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "グループ" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "受注状況" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "製品紹介" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "カテゴリー" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "ブランド" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "ブログ記事" diff --git a/evibes/locale/kk_KZ/LC_MESSAGES/django.po b/evibes/locale/kk_KZ/LC_MESSAGES/django.po index 94d6de17..f2c03a59 100644 --- a/evibes/locale/kk_KZ/LC_MESSAGES/django.po +++ b/evibes/locale/kk_KZ/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) 2025 EGOR GORBUNOV # This file is distributed under the same license as the EVIBES package. # EGOR GORBUNOV , 2025. -# +# msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 16:53+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -199,54 +199,62 @@ msgid "" "Current API version: {EVIBES_VERSION}\n" msgstr "" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "" diff --git a/evibes/locale/ko_KR/LC_MESSAGES/django.mo b/evibes/locale/ko_KR/LC_MESSAGES/django.mo index 23b24e2c..695d489a 100644 Binary files a/evibes/locale/ko_KR/LC_MESSAGES/django.mo and b/evibes/locale/ko_KR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ko_KR/LC_MESSAGES/django.po b/evibes/locale/ko_KR/LC_MESSAGES/django.po index 786c5782..825c9451 100644 --- a/evibes/locale/ko_KR/LC_MESSAGES/django.po +++ b/evibes/locale/ko_KR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -227,54 +227,62 @@ msgstr "" "## 버전\n" "현재 API 버전입니다: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "메뉴" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "대시보드" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "건강" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "구성" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "사용자" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "그룹" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "제품" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "카테고리" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "브랜드" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "블로그 게시물" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "정기 작업" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "작업 보드" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "지원" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "빠른 링크" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "사용자" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "그룹" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "주문" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "제품" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "카테고리" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "브랜드" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "블로그 게시물" diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.mo b/evibes/locale/nl_NL/LC_MESSAGES/django.mo index f9b85f01..0e2c6840 100644 Binary files a/evibes/locale/nl_NL/LC_MESSAGES/django.mo and b/evibes/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/nl_NL/LC_MESSAGES/django.po b/evibes/locale/nl_NL/LC_MESSAGES/django.po index 77bd412e..2f0f4e83 100644 --- a/evibes/locale/nl_NL/LC_MESSAGES/django.po +++ b/evibes/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Versie\n" "Huidige API versie: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Dashboard" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Gezondheid" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Config" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Gebruikers" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Groepen" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Producten" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Categorieën" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Merken" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Periodieke taken" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Taakbord" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Ondersteuning" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Snelle links" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Gebruikers" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Groepen" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Bestellingen" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Producten" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Categorieën" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Merken" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/no_NO/LC_MESSAGES/django.mo b/evibes/locale/no_NO/LC_MESSAGES/django.mo index 372a1395..feae483b 100644 Binary files a/evibes/locale/no_NO/LC_MESSAGES/django.mo and b/evibes/locale/no_NO/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/no_NO/LC_MESSAGES/django.po b/evibes/locale/no_NO/LC_MESSAGES/django.po index c27ed7bd..a2d40651 100644 --- a/evibes/locale/no_NO/LC_MESSAGES/django.po +++ b/evibes/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Versjon\n" "Gjeldende API-versjon: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Meny" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Dashbord" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Helse" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfigurer" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Brukere" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grupper" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produkter" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategorier" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Merkevarer" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogginnlegg" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Periodiske oppgaver" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Oppgavetavle" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Støtte" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Hurtigkoblinger" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Brukere" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grupper" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Bestillinger" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produkter" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategorier" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Merkevarer" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogginnlegg" diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.mo b/evibes/locale/pl_PL/LC_MESSAGES/django.mo index 478e4c75..84e7e1b7 100644 Binary files a/evibes/locale/pl_PL/LC_MESSAGES/django.mo and b/evibes/locale/pl_PL/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/pl_PL/LC_MESSAGES/django.po b/evibes/locale/pl_PL/LC_MESSAGES/django.po index 005d20f4..d02692a8 100644 --- a/evibes/locale/pl_PL/LC_MESSAGES/django.po +++ b/evibes/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Wersja\n" "Aktualna wersja API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Pulpit nawigacyjny" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Zdrowie" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfiguracja" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Użytkownicy" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grupy" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produkty" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategorie" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Marki" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposts" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Zadania okresowe" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Tablica zadań" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Wsparcie" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Szybkie łącza" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Użytkownicy" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grupy" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Zamówienia" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produkty" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategorie" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Marki" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposts" diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.mo b/evibes/locale/pt_BR/LC_MESSAGES/django.mo index 7e2e2572..1d5847f5 100644 Binary files a/evibes/locale/pt_BR/LC_MESSAGES/django.mo and b/evibes/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/pt_BR/LC_MESSAGES/django.po b/evibes/locale/pt_BR/LC_MESSAGES/django.po index d926a207..ba3d8342 100644 --- a/evibes/locale/pt_BR/LC_MESSAGES/django.po +++ b/evibes/locale/pt_BR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Versão\n" "Versão atual da API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Painel de controle" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Saúde" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Configuração" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Usuários" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grupos" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produtos" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Categorias" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Marcas" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Postagens em blogs" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Tarefas periódicas" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Quadro de tarefas" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Suporte" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Links rápidos" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Usuários" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grupos" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Pedidos" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produtos" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Categorias" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Marcas" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Postagens em blogs" diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.mo b/evibes/locale/ro_RO/LC_MESSAGES/django.mo index f7d93126..ac629c22 100644 Binary files a/evibes/locale/ro_RO/LC_MESSAGES/django.mo and b/evibes/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ro_RO/LC_MESSAGES/django.po b/evibes/locale/ro_RO/LC_MESSAGES/django.po index 5147fbb4..e41747e7 100644 --- a/evibes/locale/ro_RO/LC_MESSAGES/django.po +++ b/evibes/locale/ro_RO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Versiune\n" "Versiunea curentă a API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Meniu" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Tablou de bord" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Sănătate" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Configurare" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Utilizatori" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grupuri" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produse" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Categorii" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Mărci" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogposturi" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Sarcini periodice" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Tablou de sarcini" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Sprijin" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Linkuri rapide" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Utilizatori" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grupuri" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Ordine" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produse" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Categorii" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Mărci" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogposturi" diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.mo b/evibes/locale/ru_RU/LC_MESSAGES/django.mo index f415534c..5758d9dc 100644 Binary files a/evibes/locale/ru_RU/LC_MESSAGES/django.mo and b/evibes/locale/ru_RU/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.po b/evibes/locale/ru_RU/LC_MESSAGES/django.po index 75d99626..72be4d00 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/evibes/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Версия\n" "Текущая версия API: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Меню" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Панель" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Здоровье" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Конфигурация" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Пользователи" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Группы" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Товары" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Категории" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Бренды" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Посты" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Периодические задачи" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Канбан" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Поддержка" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Быстрые ссылки" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Пользователи" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Группы" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Заказы" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Товары" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Категории" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Бренды" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Посты" diff --git a/evibes/locale/sv_SE/LC_MESSAGES/django.mo b/evibes/locale/sv_SE/LC_MESSAGES/django.mo index 2fe48c71..d8a6c3db 100644 Binary files a/evibes/locale/sv_SE/LC_MESSAGES/django.mo and b/evibes/locale/sv_SE/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/sv_SE/LC_MESSAGES/django.po b/evibes/locale/sv_SE/LC_MESSAGES/django.po index 46df1beb..edc0807a 100644 --- a/evibes/locale/sv_SE/LC_MESSAGES/django.po +++ b/evibes/locale/sv_SE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -229,54 +229,62 @@ msgstr "" "## Version\n" "Aktuell API-version: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Meny" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Instrumentpanel" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Hälsa" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfig" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Användare" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Grupper" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Produkter" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategorier" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Brands" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blogginlägg" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Periodiska uppgifter" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Uppgiftstavla" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Stöd" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Snabblänkar" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Användare" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Grupper" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Beställningar" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Produkter" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategorier" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Brands" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blogginlägg" diff --git a/evibes/locale/th_TH/LC_MESSAGES/django.mo b/evibes/locale/th_TH/LC_MESSAGES/django.mo index bad5ee60..7399a0f2 100644 Binary files a/evibes/locale/th_TH/LC_MESSAGES/django.mo and b/evibes/locale/th_TH/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/th_TH/LC_MESSAGES/django.po b/evibes/locale/th_TH/LC_MESSAGES/django.po index 4d63b8cf..1263f64c 100644 --- a/evibes/locale/th_TH/LC_MESSAGES/django.po +++ b/evibes/locale/th_TH/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -194,54 +194,62 @@ msgstr "" "- ภาษาที่มีให้บริการสามารถดึงข้อมูลได้จากจุดสิ้นสุด `/app/languages/` - เนื้อหาที่แสดงต่อผู้ใช้ทั้งหมดรองรับหลายภาษาโดยอัตโนมัติ ## รูปแบบการตอบกลับ API รองรับรูปแบบการตอบกลับหลายรูปแบบ: - **JSON** (ค่าเริ่มต้น, รูปแบบ camelCase) - **XML** (เพิ่ม `?format=xml` หรือตั้งค่า `Accept: application/xml`)\n" "- **YAML** (เพิ่ม `?format=yaml` หรือตั้งค่า `Accept: application/x-yaml`) ## สุขภาพและการตรวจสอบ - การตรวจสอบสุขภาพ: `/health/` - เมตริก Prometheus (ป้องกันด้วย basic-auth): `/prometheus/` ## เวอร์ชัน เวอร์ชัน API ปัจจุบัน: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "เมนู" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "แดชบอร์ด" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "สุขภาพ" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "การกำหนดค่า" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "ผู้ใช้" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "กลุ่ม" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "ผลิตภัณฑ์" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "หมวดหมู่" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "แบรนด์" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "บทความบล็อก" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "งานประจำ" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "กระดานงาน" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "การสนับสนุน" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "ลิงก์ด่วน" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "ผู้ใช้" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "กลุ่ม" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "คำสั่ง" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "ผลิตภัณฑ์" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "หมวดหมู่" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "แบรนด์" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "บทความบล็อก" diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.mo b/evibes/locale/tr_TR/LC_MESSAGES/django.mo index 43f2d03c..db70dae6 100644 Binary files a/evibes/locale/tr_TR/LC_MESSAGES/django.mo and b/evibes/locale/tr_TR/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/tr_TR/LC_MESSAGES/django.po b/evibes/locale/tr_TR/LC_MESSAGES/django.po index dfe41e3d..19b70307 100644 --- a/evibes/locale/tr_TR/LC_MESSAGES/django.po +++ b/evibes/locale/tr_TR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -230,54 +230,62 @@ msgstr "" "## Sürüm\n" "Geçerli API sürümü: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Menü" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Gösterge Tablosu" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Sağlık" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Konfigürasyon" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Kullanıcılar" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Gruplar" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Ürünler" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Kategoriler" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Markalar" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Blog Yazıları" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Periyodik Görevler" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Görev Panosu" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Destek" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Hızlı Bağlantılar" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Kullanıcılar" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Gruplar" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Siparişler" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Ürünler" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Kategoriler" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Markalar" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Blog Yazıları" diff --git a/evibes/locale/vi_VN/LC_MESSAGES/django.mo b/evibes/locale/vi_VN/LC_MESSAGES/django.mo index 36701e6b..9636c3ca 100644 Binary files a/evibes/locale/vi_VN/LC_MESSAGES/django.mo and b/evibes/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/vi_VN/LC_MESSAGES/django.po b/evibes/locale/vi_VN/LC_MESSAGES/django.po index ce349668..4dbc8c8e 100644 --- a/evibes/locale/vi_VN/LC_MESSAGES/django.po +++ b/evibes/locale/vi_VN/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -196,54 +196,62 @@ msgstr "" "- Các ngôn ngữ có sẵn có thể được lấy từ điểm cuối `/app/languages/`. - Tất cả nội dung hiển thị cho người dùng đều hỗ trợ nhiều ngôn ngữ ngay từ đầu. ## Định dạng phản hồi API hỗ trợ nhiều định dạng phản hồi: - **JSON** (mặc định, định dạng camelCase) - **XML** (thêm `?format=xml` hoặc đặt `Accept: application/xml`)\n" "- **YAML** (thêm `?format=yaml` hoặc đặt `Accept: application/x-yaml`) ## Sức khỏe & Giám sát - Kiểm tra sức khỏe: `/health/` - Chỉ số Prometheus (bảo vệ bằng basic-auth): `/prometheus/` ## Phiên bản Phiên bản API hiện tại: {EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "Thực đơn" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "Bảng điều khiển" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "Sức khỏe" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "Cấu hình" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "Người dùng" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "Nhóm" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "Sản phẩm" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "Các danh mục" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "Thương hiệu" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "Bài viết trên blog" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "Các tác vụ định kỳ" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "Bảng nhiệm vụ" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "Hỗ trợ" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "Liên kết nhanh" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "Người dùng" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "Nhóm" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "Đơn hàng" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "Sản phẩm" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "Các danh mục" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "Thương hiệu" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "Bài viết trên blog" diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.mo b/evibes/locale/zh_Hans/LC_MESSAGES/django.mo index 14ab8d9a..41a136ab 100644 Binary files a/evibes/locale/zh_Hans/LC_MESSAGES/django.mo and b/evibes/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/evibes/locale/zh_Hans/LC_MESSAGES/django.po b/evibes/locale/zh_Hans/LC_MESSAGES/django.po index 41331168..26a4b480 100644 --- a/evibes/locale/zh_Hans/LC_MESSAGES/django.po +++ b/evibes/locale/zh_Hans/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: EVIBES 2025.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-15 17:05+0300\n" +"POT-Creation-Date: 2025-11-16 15:38+0300\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: LANGUAGE \n" @@ -227,54 +227,62 @@ msgstr "" "## 版本\n" "当前 API 版本:{EVIBES_VERSION}\n" -#: evibes/settings/unfold.py:62 +#: evibes/settings/unfold.py:53 msgid "Menu" msgstr "菜单" -#: evibes/settings/unfold.py:67 +#: evibes/settings/unfold.py:58 msgid "Dashboard" msgstr "仪表板" -#: evibes/settings/unfold.py:72 +#: evibes/settings/unfold.py:63 msgid "Health" msgstr "健康" -#: evibes/settings/unfold.py:77 +#: evibes/settings/unfold.py:68 msgid "Config" msgstr "配置" -#: evibes/settings/unfold.py:82 -msgid "Users" -msgstr "用户" - -#: evibes/settings/unfold.py:87 -msgid "Groups" -msgstr "组别" - -#: evibes/settings/unfold.py:92 -msgid "Products" -msgstr "产品" - -#: evibes/settings/unfold.py:97 -msgid "Categories" -msgstr "类别" - -#: evibes/settings/unfold.py:102 -msgid "Brands" -msgstr "品牌" - -#: evibes/settings/unfold.py:107 -msgid "Blogposts" -msgstr "博客文章" - -#: evibes/settings/unfold.py:112 +#: evibes/settings/unfold.py:73 msgid "Periodic Tasks" msgstr "定期任务" -#: evibes/settings/unfold.py:137 +#: evibes/settings/unfold.py:98 msgid "Taskboard" msgstr "任务板" -#: evibes/settings/unfold.py:142 +#: evibes/settings/unfold.py:103 msgid "Support" msgstr "支持" + +#: evibes/settings/unfold.py:110 +msgid "Quick Links" +msgstr "快速链接" + +#: evibes/settings/unfold.py:115 +msgid "Users" +msgstr "用户" + +#: evibes/settings/unfold.py:120 +msgid "Groups" +msgstr "组别" + +#: evibes/settings/unfold.py:125 +msgid "Orders" +msgstr "订单" + +#: evibes/settings/unfold.py:130 +msgid "Products" +msgstr "产品" + +#: evibes/settings/unfold.py:135 +msgid "Categories" +msgstr "类别" + +#: evibes/settings/unfold.py:140 +msgid "Brands" +msgstr "品牌" + +#: evibes/settings/unfold.py:145 +msgid "Blogposts" +msgstr "博客文章" diff --git a/evibes/settings/unfold.py b/evibes/settings/unfold.py index 41311357..83e4979d 100644 --- a/evibes/settings/unfold.py +++ b/evibes/settings/unfold.py @@ -69,36 +69,6 @@ UNFOLD = { "icon": "construction", "link": reverse_lazy("admin:core_config_changelist"), }, - { - "title": _("Users"), - "icon": "person", - "link": reverse_lazy("admin:vibes_auth_user_changelist"), - }, - { - "title": _("Groups"), - "icon": "people", - "link": reverse_lazy("admin:vibes_auth_group_changelist"), - }, - { - "title": _("Products"), - "icon": "storefront", - "link": reverse_lazy("admin:core_product_changelist"), - }, - { - "title": _("Categories"), - "icon": "category", - "link": reverse_lazy("admin:core_category_changelist"), - }, - { - "title": _("Brands"), - "icon": "copyright", - "link": reverse_lazy("admin:core_brand_changelist"), - }, - { - "title": _("Blogposts"), - "icon": "newspaper", - "link": reverse_lazy("admin:blog_post_changelist"), - }, { "title": _("Periodic Tasks"), "icon": "event_list", @@ -136,6 +106,48 @@ UNFOLD = { }, ], }, + { + "title": _("Quick Links"), + "separator": True, + "collapsible": False, + "items": [ + { + "title": _("Users"), + "icon": "person", + "link": reverse_lazy("admin:vibes_auth_user_changelist"), + }, + { + "title": _("Groups"), + "icon": "people", + "link": reverse_lazy("admin:vibes_auth_group_changelist"), + }, + { + "title": _("Orders"), + "icon": "package", + "link": reverse_lazy("admin:core_order_changelist"), + }, + { + "title": _("Products"), + "icon": "storefront", + "link": reverse_lazy("admin:core_product_changelist"), + }, + { + "title": _("Categories"), + "icon": "category", + "link": reverse_lazy("admin:core_category_changelist"), + }, + { + "title": _("Brands"), + "icon": "copyright", + "link": reverse_lazy("admin:core_brand_changelist"), + }, + { + "title": _("Blogposts"), + "icon": "newspaper", + "link": reverse_lazy("admin:blog_post_changelist"), + }, + ], + }, ], }, }