From 2ca004463101582d14412bc7d2911d31e5b4b3c9 Mon Sep 17 00:00:00 2001 From: lvalics Date: Mon, 29 Jan 2024 11:30:42 +0000 Subject: [PATCH 01/15] Started to add API swagger documentation. --- dj_backend_server/api/chatbot_info.py | 23 ++++++++ dj_backend_server/api/pdf_handler.py | 57 +++++++++++++++++-- dj_backend_server/api/urls.py | 11 +++- .../dj_backend_server/settings.py | 48 ++++++++++++---- dj_backend_server/requirements.txt | 5 ++ 5 files changed, 126 insertions(+), 18 deletions(-) create mode 100644 dj_backend_server/api/chatbot_info.py diff --git a/dj_backend_server/api/chatbot_info.py b/dj_backend_server/api/chatbot_info.py new file mode 100644 index 00000000..e38ee417 --- /dev/null +++ b/dj_backend_server/api/chatbot_info.py @@ -0,0 +1,23 @@ +from django.http import JsonResponse +from web.models.chatbot import Chatbot +from drf_spectacular.utils import extend_schema, OpenApiParameter +from drf_spectacular.types import OpenApiTypes +from rest_framework.decorators import api_view, parser_classes +from rest_framework.parsers import MultiPartParser, FormParser + + +@extend_schema( + methods=['GET'], + description="Get Chatbot info based on Bot ID", + request=None, +) +@api_view(['GET']) +def get_chatbot_info(request, bot_id): + ''' + Easy way to get chatbot info based on Bot ID + ''' + try: + bot = Chatbot.objects.get(id=bot_id) + return JsonResponse({'id': bot.id, 'name': bot.name}, status=200) + except Chatbot.DoesNotExist: + return JsonResponse({'error': 'Chatbot not found'}, status=404) diff --git a/dj_backend_server/api/pdf_handler.py b/dj_backend_server/api/pdf_handler.py index d6289754..e86656ac 100644 --- a/dj_backend_server/api/pdf_handler.py +++ b/dj_backend_server/api/pdf_handler.py @@ -3,16 +3,62 @@ associates the uploaded PDFs with a chatbot based on the provided bot token, and triggers further processing of the PDFs. The endpoint requires a POST request with the PDF files and optional flags. """ - from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt -from django.views.decorators.http import require_POST from web.services.handle_pdf_datasource import HandlePdfDataSource from web.models.chatbot import Chatbot from web.signals.pdf_datasource_was_added import pdf_data_source_added +from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiExample +from drf_spectacular.types import OpenApiTypes +from rest_framework.decorators import api_view, parser_classes +from rest_framework.parsers import MultiPartParser, FormParser + -@csrf_exempt -@require_POST +@extend_schema( + methods=['POST'], + description="Upload PDF files and associate them with a chatbot based on the provided bot token.", + request={ + 'multipart/form-data': { + 'type': 'object', + 'properties': { + 'pdffiles': { + 'type': 'array', + 'items': { + 'type': 'string', + 'format': 'binary' + }, + 'description': 'The PDF file(s) to be uploaded. Can be a single file or multiple files.', + }, + 'delete_folder_flag': { + 'type': 'integer', + 'description': 'Flag indicating whether to delete the folder after processing (0 or 1)', + }, + 'ocr_pdf_file': { + 'type': 'integer', + 'description': 'Flag indicating that the file needs to be sent to OCR API (0 or 1)', + } + } + } + }, + responses={200: OpenApiTypes.OBJECT}, + parameters=[ + OpenApiParameter(name='X-Bot-Token', description="Token to authenticate the chatbot", required=True, type=OpenApiTypes.STR, location=OpenApiParameter.HEADER), + ], + examples=[ + OpenApiExample( + name='Example upload', + description='An example of a PDF file upload', + request_only=True, + value={ + 'pdffiles': 'file content here', + 'delete_folder_flag': 1, + 'ocr_pdf_file': 1, + } + ), + ], +) +@api_view(['POST']) +@parser_classes((MultiPartParser, FormParser)) def upload_pdf_api(request): """ API endpoint for uploading PDF files. It expects a POST request with the following parameters: @@ -41,4 +87,5 @@ def upload_pdf_api(request): # Trigger the PdfDataSourceWasAdded event pdf_data_source_added.send(sender='create_via_pdf_flow', bot_id=bot.id, data_source_id=data_source.id, delete_folder_flag=delete_folder_flag, ocr_pdf_file=ocr_pdf_file, text_data=text_data) return JsonResponse({'message': 'PDF uploaded and chatbot created successfully', 'data_source_id': data_source.id, 'bot_id': bot.id}) - \ No newline at end of file + + diff --git a/dj_backend_server/api/urls.py b/dj_backend_server/api/urls.py index b322c998..2b020fc2 100644 --- a/dj_backend_server/api/urls.py +++ b/dj_backend_server/api/urls.py @@ -1,6 +1,10 @@ from django.urls import path from .views import views_message, views_auth, views_ingest, views_chat +from .chatbot_info import get_chatbot_info from .pdf_handler import upload_pdf_api +from django.contrib.auth.decorators import login_required +from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView + urlpatterns = [ path('send_search_request/', views_message.send_search_request, name='send_search_request'), @@ -15,4 +19,9 @@ path('reset-password/', views_auth.reset_password, name='reset-password'), # PDF upload API endpoint path('upload_pdf/', upload_pdf_api, name='upload_pdf'), -] \ No newline at end of file + path('chatbot//', get_chatbot_info, name='get_chatbot_info'), + # SCHEMA + path('schema/', login_required(SpectacularAPIView.as_view()), name='schema'), + path('schema/swagger-ui/', login_required(SpectacularSwaggerView.as_view(url_name='schema')), name='swagger-ui'), + path('schema/redoc/', login_required(SpectacularRedocView.as_view(url_name='schema')), name='redoc'), +] diff --git a/dj_backend_server/dj_backend_server/settings.py b/dj_backend_server/dj_backend_server/settings.py index 9986bc11..ed21a4d2 100644 --- a/dj_backend_server/dj_backend_server/settings.py +++ b/dj_backend_server/dj_backend_server/settings.py @@ -56,7 +56,10 @@ 'web', 'api', 'management', - 'corsheaders' + 'corsheaders', + 'rest_framework_swagger', + 'rest_framework', + 'drf_spectacular', ] MIDDLEWARE = [ @@ -188,22 +191,43 @@ ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', '0.0.0.0').split(',') APP_URL = os.environ.get('APP_URL', 'http://0.0.0.0:8000') -# CSRF_COOKIE_SECURE = True -# CSRF_COOKIE_HTTPONLY = True -# SESSION_COOKIE_SECURE = True -# SESSION_COOKIE_HTTPONLY = True -# CORS_ALLOW_CREDENTIALS = True -# CORS_ORIGIN_ALLOW_ALL = True -# CSRF_COOKIE_DOMAIN = 'APP_URL' +CSRF_COOKIE_SECURE = True +CSRF_COOKIE_HTTPONLY = True +SESSION_COOKIE_SECURE = True +SESSION_COOKIE_HTTPONLY = True +SECURE_SSL_REDIRECT = True +SECURE_HSTS_SECONDS = 3600 +SECURE_HSTS_INCLUDE_SUBDOMAINS = True +SECURE_HSTS_PRELOAD = True +CORS_ALLOW_CREDENTIALS = True +SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') CORS_ALLOWED_ORIGINS = [ APP_URL ] CSRF_TRUSTED_ORIGINS = [ - 'https://' + APP_URL.replace('http://', '').replace('https://', '') -] + APP_URL +] CORS_ORIGIN_WHITELIST = [ - APP_URL -] \ No newline at end of file + APP_URL + ] + +REST_FRAMEWORK = { + 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', +} + +SPECTACULAR_SETTINGS = { + 'TITLE': 'Opechat API Documentation', + 'DESCRIPTION': 'API documentation for Openchat', + 'VERSION': '1.0.0', + "SWAGGER_UI_SETTINGS": { + "deepLinking": True, + "persistAuthorization": True, + "displayOperationId": True, + }, + "SWAGGER_UI_FAVICON_HREF": STATIC_URL + "assets/images/favicon.ico", +} + +LOGIN_URL = APP_URL + '/login' diff --git a/dj_backend_server/requirements.txt b/dj_backend_server/requirements.txt index a006c0ab..4a6e2cef 100644 --- a/dj_backend_server/requirements.txt +++ b/dj_backend_server/requirements.txt @@ -19,7 +19,11 @@ click-repl==0.3.0 cryptography==41.0.3 dataclasses-json==0.5.14 Django==4.2.3 +django-rest-swagger +djangorestframework dnspython==2.4.1 +drf-spectacular==0.27.1 +drf_spectacular.extensions==0.0.2 exceptiongroup==1.1.2 frozenlist==1.4.0 grpcio==1.56.2 @@ -80,3 +84,4 @@ wcwidth==0.2.6 yarl==1.9.2 django-cors-headers==4.3.1 ollama==0.1.4 + From fd230761e6f9bb8098b521b4281c3b06deb63ee4 Mon Sep 17 00:00:00 2001 From: lvalics Date: Mon, 29 Jan 2024 19:29:49 +0000 Subject: [PATCH 02/15] translation language RO added. --- .../dj_backend_server/settings.py | 3 +- .../locale/en/LC_MESSAGES/django.po | 108 +++- .../locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 2488 bytes .../locale/ro/LC_MESSAGES/django.po | 151 ++++++ .../web/templates/layout/app.html | 28 +- .../web/templates/layout/header.html | 9 +- .../web/templates/layout/noapp.html | 5 +- .../templates/layout/sidebar-bot-page.html | 23 +- .../web/templates/layout/sidebar.html | 473 ------------------ dj_backend_server/web/urls.py | 4 +- 10 files changed, 284 insertions(+), 520 deletions(-) create mode 100644 dj_backend_server/locale/ro/LC_MESSAGES/django.mo create mode 100644 dj_backend_server/locale/ro/LC_MESSAGES/django.po delete mode 100644 dj_backend_server/web/templates/layout/sidebar.html diff --git a/dj_backend_server/dj_backend_server/settings.py b/dj_backend_server/dj_backend_server/settings.py index ed21a4d2..43c52a93 100644 --- a/dj_backend_server/dj_backend_server/settings.py +++ b/dj_backend_server/dj_backend_server/settings.py @@ -131,7 +131,8 @@ # Set the list of languages you want to support LANGUAGES = [ - ('en', 'English'), # Add more languages as needed. + ('en', 'English'), + ('ro', 'Romanian'), # Adding Romanian to the list of supported languages ] # Internationalization diff --git a/dj_backend_server/locale/en/LC_MESSAGES/django.po b/dj_backend_server/locale/en/LC_MESSAGES/django.po index c87292ae..b2242c17 100644 --- a/dj_backend_server/locale/en/LC_MESSAGES/django.po +++ b/dj_backend_server/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-23 04:29+0300\n" +"POT-Creation-Date: 2024-01-29 19:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,62 +26,126 @@ msgstr "" msgid "Don't forget to set INSPIRING_QUOTES in settings.py!" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:4 -#: web/templates/onboarding/step-1.html:7 -#: web/templates/onboarding/step-2.html:4 +#: web/templates/layout/app.html:7 +msgid "Dashboard | OpenChat" +msgstr "" + +#: web/templates/layout/app.html:55 +msgid "Sign Out" +msgstr "" + +#: web/templates/layout/header.html:7 +msgid "Menu Toggle Button" +msgstr "" + +#: web/templates/layout/header.html:13 +#: web/templates/layout/sidebar-bot-page.html:17 +#: web/templates/onboarding/other-data-sources-website.html:6 #: web/templates/settings-analytics.html:4 msgid "Dashboard" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:42 -msgid "Website information ✨" +#: web/templates/layout/header.html:15 +msgid "Profile Menu Offcanvas Button" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:58 -msgid "Close" +#: web/templates/layout/noapp.html:6 +msgid "Login | OpenChat" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:75 -msgid "Website url" +#: web/templates/layout/noapp.html:30 +msgid "Create an Account ?" +msgstr "" + +#: web/templates/layout/noapp.html:30 +msgid "Register" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:22 +msgid "Chatbot" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:26 +msgid "Try & Share" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:33 +msgid "General settings" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:39 +msgid "Data & Knowledge" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:45 +msgid "History" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:50 +msgid "Super Admin" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:54 +msgid "Errors check" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:59 +msgid "Create user" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:62 +msgid "User" +msgstr "" + +#: web/templates/layout/sidebar-bot-page.html:66 +msgid "ChatModify user detailsbot" +msgstr "" + +#: web/templates/onboarding/other-data-sources-website.html:44 +msgid "Website information ✨" +msgstr "" + +#: web/templates/onboarding/other-data-sources-website.html:56 +msgid "Please enter a valid website URL, it\\" msgstr "" -#: web/templates/onboarding/step-1.html:77 -msgid "Website" +#: web/templates/onboarding/other-data-sources-website.html:59 +msgid "Close" msgstr "" -#: web/templates/onboarding/step-1.html:88 -msgid "Many others to come 🔥️" +#: web/templates/onboarding/other-data-sources-website.html:76 +msgid "Website url" msgstr "" #: web/templates/settings-analytics.html:64 msgid "Try it out! ->" msgstr "" -#: web/templates/settings-analytics.html:83 -#: web/templates/settings-analytics.html:97 +#: web/templates/settings-analytics.html:80 +#: web/templates/settings-analytics.html:94 msgid "Analytics" msgstr "" -#: web/templates/settings-analytics.html:84 +#: web/templates/settings-analytics.html:81 msgid "This is your general bot settings such as name and id" msgstr "" -#: web/templates/settings-analytics.html:94 +#: web/templates/settings-analytics.html:91 msgid "Analytics is coming soon!" msgstr "" -#: web/templates/settings-analytics.html:108 +#: web/templates/settings-analytics.html:105 msgid "Unique Visitors" msgstr "" -#: web/templates/settings-analytics.html:120 +#: web/templates/settings-analytics.html:117 msgid "Total Pageviews" msgstr "" -#: web/templates/settings-analytics.html:132 +#: web/templates/settings-analytics.html:129 msgid "Bounce Rate" msgstr "" -#: web/templates/settings-analytics.html:144 +#: web/templates/settings-analytics.html:141 msgid "Visit Duration" msgstr "" diff --git a/dj_backend_server/locale/ro/LC_MESSAGES/django.mo b/dj_backend_server/locale/ro/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3e182741d0dfaf84436afe25a18850c50916b403 GIT binary patch literal 2488 zcmZXU&u<(x6vtg?fd&e+lpiex97NNEX4(Xb6gExUO?I2Ex|8!o= z*eM(Jf&wQbkPsZIazY$9RQUtAHlUo5xNtxM4!{Aa5*Lnq-(-?aRcmKIV~_p({C$4! z*F$^1Vrav7j^TM_4`Zjn@dxmS_7}Jx{2M$1{tG?|9(a(kqu>$nVekyN4?GJ#1vU@GqkraWDX10PEl*;I)ja zAnm&bz5#v?J^}uajsFZjj{a}i_+1dc)Oi};heJFI9tO$IICvGBOo4QcZy#dpB)ATe zKfiz@;6EVwdl-M@&oPj`9|uW~DUj@!LDKO(@M+M4FN2?gQ{XyC`uv&kKM+5*A4Z=8 z4}uh@SHZL3Ja_{97(4*p2FdU5GyVvc(Eka15j=)N(EigP`PBqzKLrkft04LL2}nA8 z36j0rAY@=155zHB#0n8uX+p)=Bbf$Zt|fmHut z@E{)YmF^FYl{V7)89byBu4t+)`AxBZ2@lI_5%--6lffHT2@g$I>4+!B=wUW%ybdL= z2`AayvTzmCR-HcgiL|^eoltSoGA{j;GByb&T8a5wXr2#47;yaj_82W>1(7VbjIiy& z8^6J;J*jC63_8I__+@Rb$FdzsR!~VV7X5@QDxLI{B?qs01E&f`pK!cmY$P3bh9^L2 zp}ttEl@{jTf2&z-6zf<-;|{BmQ@#E$D_UzTPP#0^t889sX+^vOyg-ED{$qtk6j; z;A@UwY?jM>Azvx-v&BljRKAce6l%qK{T!z1$m94yLyB&Wm-7qrP4eVyxqKm3r*K~e zbKpUxR4ESJo;)=%G-nV~jqUn9_~Yb#&#Qf_E5hKO-+5xONgu6t=WnR$JhZ@tcp>Y16z^Aowz(NTSTa$@4#2O)K(-fCt6-zwqL#eF{ z&xUr^vW95I#?ziHgLJ>QyF0Zg>U{I2;&Wb`&6`No&09EJM{V95?4z7;Spg86w{TfR z%oaTN7)O^Ua0hWo-|s5{B*Z;60C!Y%REUJ&64gMlx^x?BR&D2)WF;yCDr9+27h!wy zu6lqPU^E>LCDS{yBzRY9l}fe*Z>*0t*1D- zwzI0`mE8SBz;ar6V2mOPjX7#is91Awani~oP?Ru5DpuO6JJ3#Ti, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-01-29 19:05+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" +#: management/management/commands/inspire.py:8 +msgid "Displays an inspiring quote" +msgstr "Afișează un citat inspirațional" + +#: management/management/commands/inspire.py:12 +msgid "Don't forget to set INSPIRING_QUOTES in settings.py!" +msgstr "Nu uitați să setați INSPIRING_QUOTES în settings.py!" + +#: web/templates/layout/app.html:7 +msgid "Dashboard | OpenChat" +msgstr "Tablou de bord | OpenChat" + +#: web/templates/layout/app.html:55 +msgid "Sign Out" +msgstr "Deconectare" + +#: web/templates/layout/header.html:7 +msgid "Menu Toggle Button" +msgstr "Buton de comutare a meniului" + +#: web/templates/layout/header.html:13 +#: web/templates/layout/sidebar-bot-page.html:17 +#: web/templates/onboarding/other-data-sources-website.html:6 +#: web/templates/settings-analytics.html:4 +msgid "Dashboard" +msgstr "Tablou de bord" + +#: web/templates/layout/header.html:15 +msgid "Profile Menu Offcanvas Button" +msgstr "Butonul Offcanvas al Meniului de Profil" + +#: web/templates/layout/noapp.html:6 +msgid "Login | OpenChat" +msgstr "Autentificare | OpenChat" + +#: web/templates/layout/noapp.html:30 +msgid "Create an Account ?" +msgstr "Creează un cont ?" + +#: web/templates/layout/noapp.html:30 +msgid "Register" +msgstr "Înregistrare" + +#: web/templates/layout/sidebar-bot-page.html:22 +msgid "Chatbot" +msgstr "Chatbot" + +#: web/templates/layout/sidebar-bot-page.html:26 +msgid "Try & Share" +msgstr "Încearcă și Distribuie" + +#: web/templates/layout/sidebar-bot-page.html:33 +msgid "General settings" +msgstr "Setări generale" + +#: web/templates/layout/sidebar-bot-page.html:39 +msgid "Data & Knowledge" +msgstr "Date și Cunoștințe" + +#: web/templates/layout/sidebar-bot-page.html:45 +msgid "History" +msgstr "Istoric" + +#: web/templates/layout/sidebar-bot-page.html:50 +msgid "Super Admin" +msgstr "Super Admin" + +#: web/templates/layout/sidebar-bot-page.html:54 +msgid "Errors check" +msgstr "Verificare erori" + +#: web/templates/layout/sidebar-bot-page.html:59 +msgid "Create user" +msgstr "Creează utilizator" + +#: web/templates/layout/sidebar-bot-page.html:62 +msgid "User" +msgstr "Utilizator" + +#: web/templates/layout/sidebar-bot-page.html:66 +msgid "ChatModify user detailsbot" +msgstr "ChatModifică detaliile utilizatorului" + +#: web/templates/onboarding/other-data-sources-website.html:44 +msgid "Website information ✨" +msgstr "Informații website ✨" + +#: web/templates/onboarding/other-data-sources-website.html:56 +msgid "Please enter a valid website URL, it\\" +msgstr "Vă rugăm să introduceți un URL valid de website, acesta\\" + +#: web/templates/onboarding/other-data-sources-website.html:59 +msgid "Close" +msgstr "Închide" + +#: web/templates/onboarding/other-data-sources-website.html:76 +msgid "Website url" +msgstr "URL website" + +#: web/templates/settings-analytics.html:64 +msgid "Try it out! ->" +msgstr "Încearcă acum! ->" + +#: web/templates/settings-analytics.html:80 +#: web/templates/settings-analytics.html:94 +msgid "Analytics" +msgstr "Analitice" + +#: web/templates/settings-analytics.html:81 +msgid "This is your general bot settings such as name and id" +msgstr "Acestea sunt setările generale ale botului tău, precum numele și ID-ul" + +#: web/templates/settings-analytics.html:91 +msgid "Analytics is coming soon!" +msgstr "Analiticele vor fi disponibile în curând!" + +#: web/templates/settings-analytics.html:105 +msgid "Unique Visitors" +msgstr "Vizitatori Unici" + +#: web/templates/settings-analytics.html:117 +msgid "Total Pageviews" +msgstr "Vizualizări Totale de Pagină" + +#: web/templates/settings-analytics.html:129 +msgid "Bounce Rate" +msgstr "Rata de Respingere" + +#: web/templates/settings-analytics.html:141 +msgid "Visit Duration" +msgstr "Durata Vizitei" diff --git a/dj_backend_server/web/templates/layout/app.html b/dj_backend_server/web/templates/layout/app.html index f7f0c3fa..074f08a6 100644 --- a/dj_backend_server/web/templates/layout/app.html +++ b/dj_backend_server/web/templates/layout/app.html @@ -1,10 +1,10 @@ {% load static %} - +{% load i18n %} - Dashboard | OpenChat + {% trans "Dashboard | OpenChat" %} @@ -52,9 +52,25 @@ + {% trans "Sign Out" %} + + +
+
+ {% csrf_token %} + + +
+
+ @@ -92,4 +108,4 @@ {% block scripts %}{% endblock %} - \ No newline at end of file + diff --git a/dj_backend_server/web/templates/layout/header.html b/dj_backend_server/web/templates/layout/header.html index 86bfb7e0..3ff90644 100644 --- a/dj_backend_server/web/templates/layout/header.html +++ b/dj_backend_server/web/templates/layout/header.html @@ -1,20 +1,21 @@ {% load static %} +{% load i18n %}
-

Dashboard

+

{% trans "Dashboard" %}

- \ No newline at end of file + diff --git a/dj_backend_server/web/templates/layout/noapp.html b/dj_backend_server/web/templates/layout/noapp.html index 9a853fc4..6223d837 100644 --- a/dj_backend_server/web/templates/layout/noapp.html +++ b/dj_backend_server/web/templates/layout/noapp.html @@ -1,9 +1,10 @@ {% load static %} +{% load i18n %} - Login | OpenChat + {% trans "Login | OpenChat" %} @@ -27,7 +28,7 @@ {% block content %}{% endblock %} -

Create an Account ?Register

+

{% trans "Create an Account ?" %}{% trans "Register" %}

{% block scripts %}{% endblock %} diff --git a/dj_backend_server/web/templates/layout/sidebar-bot-page.html b/dj_backend_server/web/templates/layout/sidebar-bot-page.html index ce6ea48e..ffa5e07f 100644 --- a/dj_backend_server/web/templates/layout/sidebar-bot-page.html +++ b/dj_backend_server/web/templates/layout/sidebar-bot-page.html @@ -1,4 +1,5 @@ {% load static %} +{% load i18n %}
@@ -14,56 +15,56 @@ {% if request.resolver_match.kwargs.id %} - + {% endif %} {% if user.is_superuser %} - + {% endif %} - + diff --git a/dj_backend_server/web/templates/layout/sidebar.html b/dj_backend_server/web/templates/layout/sidebar.html deleted file mode 100644 index a4b003ac..00000000 --- a/dj_backend_server/web/templates/layout/sidebar.html +++ /dev/null @@ -1,473 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/dj_backend_server/web/urls.py b/dj_backend_server/web/urls.py index 02d3e875..0cd7a73e 100644 --- a/dj_backend_server/web/urls.py +++ b/dj_backend_server/web/urls.py @@ -1,8 +1,10 @@ # api/urls.py -from django.urls import path +from django.urls import path, include +from django.conf.urls.i18n import i18n_patterns from web.views import views_chatbot_settings, views_onboarding, views_chatbot, views_pdf_data_source, views_website_datasource, views_chatbot_createuser, views_errors; urlpatterns = [ + path('i18n/', include('django.conf.urls.i18n')), # Dashboard path('', views_chatbot.index, name='index'), path('login', views_chatbot.login_view, name='login'), From bff589cd714a459a18a7a605ade518e59124f382 Mon Sep 17 00:00:00 2001 From: lvalics Date: Mon, 29 Jan 2024 20:42:16 +0000 Subject: [PATCH 03/15] Language files. --- .../locale/en/LC_MESSAGES/django.po | 323 ++++++++++++++-- .../locale/ro/LC_MESSAGES/django.mo | Bin 2488 -> 8488 bytes .../locale/ro/LC_MESSAGES/django.po | 355 ++++++++++++++++-- .../onboarding/other-data-sources-pdf.html | 24 +- .../other-data-sources-website.html | 19 +- .../web/templates/onboarding/step-0.html | 24 +- .../web/templates/onboarding/step-1.html | 41 +- .../templates/onboarding/step-2-codebase.html | 202 +++++----- .../web/templates/onboarding/step-2-pdf.html | 26 +- .../web/templates/onboarding/step-2.html | 24 +- .../web/templates/onboarding/step-3.html | 26 +- .../web/templates/onboarding/step-4.html | 15 +- dj_backend_server/web/views/views_chatbot.py | 5 +- 13 files changed, 834 insertions(+), 250 deletions(-) diff --git a/dj_backend_server/locale/en/LC_MESSAGES/django.po b/dj_backend_server/locale/en/LC_MESSAGES/django.po index b2242c17..8f7116e4 100644 --- a/dj_backend_server/locale/en/LC_MESSAGES/django.po +++ b/dj_backend_server/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-29 19:04+0000\n" +"POT-Creation-Date: 2024-01-29 20:36+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,8 +39,13 @@ msgid "Menu Toggle Button" msgstr "" #: web/templates/layout/header.html:13 -#: web/templates/layout/sidebar-bot-page.html:17 -#: web/templates/onboarding/other-data-sources-website.html:6 +#: web/templates/layout/sidebar-bot-page.html:18 +#: web/templates/onboarding/other-data-sources-website.html:5 +#: web/templates/onboarding/step-0.html:5 +#: web/templates/onboarding/step-1.html:4 +#: web/templates/onboarding/step-2-pdf.html:5 +#: web/templates/onboarding/step-2.html:4 +#: web/templates/onboarding/step-4.html:4 #: web/templates/settings-analytics.html:4 msgid "Dashboard" msgstr "" @@ -49,74 +54,346 @@ msgstr "" msgid "Profile Menu Offcanvas Button" msgstr "" -#: web/templates/layout/noapp.html:6 +#: web/templates/layout/noapp.html:7 msgid "Login | OpenChat" msgstr "" -#: web/templates/layout/noapp.html:30 +#: web/templates/layout/noapp.html:31 msgid "Create an Account ?" msgstr "" -#: web/templates/layout/noapp.html:30 +#: web/templates/layout/noapp.html:31 msgid "Register" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:22 +#: web/templates/layout/sidebar-bot-page.html:23 msgid "Chatbot" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:26 +#: web/templates/layout/sidebar-bot-page.html:27 msgid "Try & Share" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:33 +#: web/templates/layout/sidebar-bot-page.html:34 msgid "General settings" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:39 +#: web/templates/layout/sidebar-bot-page.html:40 msgid "Data & Knowledge" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:45 +#: web/templates/layout/sidebar-bot-page.html:46 msgid "History" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:50 +#: web/templates/layout/sidebar-bot-page.html:51 msgid "Super Admin" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:54 +#: web/templates/layout/sidebar-bot-page.html:55 msgid "Errors check" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:59 +#: web/templates/layout/sidebar-bot-page.html:60 msgid "Create user" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:62 +#: web/templates/layout/sidebar-bot-page.html:63 msgid "User" msgstr "" -#: web/templates/layout/sidebar-bot-page.html:66 +#: web/templates/layout/sidebar-bot-page.html:67 msgid "ChatModify user detailsbot" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:44 -msgid "Website information ✨" +#: web/templates/onboarding/other-data-sources-pdf.html:41 +msgid "Upload files as sources" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:56 -msgid "Please enter a valid website URL, it\\" +#: web/templates/onboarding/other-data-sources-pdf.html:56 +#: web/templates/onboarding/other-data-sources-website.html:58 +#: web/templates/onboarding/step-1.html:55 +#: web/templates/onboarding/step-2-codebase.html:57 +#: web/templates/onboarding/step-2-pdf.html:83 +#: web/templates/onboarding/step-2.html:57 +msgid "Close" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:59 -msgid "Close" +#: web/templates/onboarding/other-data-sources-pdf.html:75 +#: web/templates/onboarding/step-2-pdf.html:105 +msgid "Click to upload or drag & drop" +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:76 +msgid "you can upload up to 5 files, and we will process the first ±100k words" +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:89 +msgid "Delete files after sending them for processing." +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:100 +#: web/templates/onboarding/step-2-pdf.html:130 +msgid "" +"Check this only if you have scanned pages in the PDF document and want them " +"to be sent to OCR services." +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:107 +#: web/templates/onboarding/step-2-pdf.html:136 +msgid "We are accepting PDF/DOCX/XLSX/TXT(CSV/JSON)." +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:108 +#: web/templates/onboarding/step-2-pdf.html:137 +msgid "PDF files can contain both text and images. We will send to OCR." +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:109 +#: web/templates/onboarding/step-2-pdf.html:138 +msgid "" +"You can upload multiple files at once and we will process them in the " +"background." +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:114 +#: web/templates/onboarding/other-data-sources-website.html:94 +#: web/templates/onboarding/step-1.html:150 +#: web/templates/onboarding/step-2-codebase.html:99 +#: web/templates/onboarding/step-2-pdf.html:145 +#: web/templates/onboarding/step-2.html:91 +#: web/templates/onboarding/step-3.html:92 +msgid "Back" +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:115 +#: web/templates/onboarding/other-data-sources-website.html:95 +#: web/templates/onboarding/step-2-codebase.html:100 +#: web/templates/onboarding/step-2-pdf.html:147 +#: web/templates/onboarding/step-2.html:92 +#: web/templates/onboarding/step-3.html:93 +msgid "Next Step" +msgstr "" + +#: web/templates/onboarding/other-data-sources-website.html:43 +#: web/templates/onboarding/step-2.html:40 +msgid "Website information" +msgstr "" + +#: web/templates/onboarding/other-data-sources-website.html:55 +msgid "Please enter a valid website URL, it\\" msgstr "" -#: web/templates/onboarding/other-data-sources-website.html:76 +#: web/templates/onboarding/other-data-sources-website.html:75 +#: web/templates/onboarding/step-2.html:73 msgid "Website url" msgstr "" +#: web/templates/onboarding/step-0.html:41 +msgid "Let's set up your first chatbot, for free" +msgstr "" + +#: web/templates/onboarding/step-0.html:42 +msgid "And here how we are going to do it:" +msgstr "" + +#: web/templates/onboarding/step-0.html:57 +msgid "You provide the system with data" +msgstr "" + +#: web/templates/onboarding/step-0.html:72 +msgid "We train our AI on this knowledge" +msgstr "" + +#: web/templates/onboarding/step-0.html:74 +msgid "It might take minutes or hours, depend on how large is your data." +msgstr "" + +#: web/templates/onboarding/step-0.html:86 +msgid "You integrate the chatbot on your website" +msgstr "" + +#: web/templates/onboarding/step-0.html:88 +msgid "" +"That is it! we will provide you with a Javascript code to put it on your " +"website." +msgstr "" + +#: web/templates/onboarding/step-0.html:95 +msgid "Let's do it!" +msgstr "" + +#: web/templates/onboarding/step-1.html:39 +msgid "Select your data source" +msgstr "" + +#: web/templates/onboarding/step-1.html:40 +msgid "Select the source of your data to train your new chatbot" +msgstr "" + +#: web/templates/onboarding/step-1.html:40 +msgid "you can always add new sources later" +msgstr "" + +#: web/templates/onboarding/step-1.html:52 +msgid "" +"Please enter a valid website URL, it's important that your website is live " +"and accessible" +msgstr "" + +#: web/templates/onboarding/step-1.html:73 +msgid "Website" +msgstr "" + +#: web/templates/onboarding/step-1.html:75 +msgid "We will crawl your website and extract the knowledge automatically." +msgstr "" + +#: web/templates/onboarding/step-1.html:83 +msgid "PDF/DOCX/TXT/JSON/XLSX files" +msgstr "" + +#: web/templates/onboarding/step-1.html:85 +msgid "We will scan your files and extract knowledge and any information" +msgstr "" + +#: web/templates/onboarding/step-1.html:93 +msgid "Codebase" +msgstr "" + +#: web/templates/onboarding/step-1.html:95 +msgid "" +"Provide a link to your codebase and we will extract the knowledge and any " +"information" +msgstr "" + +#: web/templates/onboarding/step-1.html:103 +msgid "Confluence" +msgstr "" + +#: web/templates/onboarding/step-1.html:112 +#: web/templates/onboarding/step-1.html:135 +msgid "soon" +msgstr "" + +#: web/templates/onboarding/step-1.html:116 +msgid "Automatically extract data from your Confluence from your workspace" +msgstr "" + +#: web/templates/onboarding/step-1.html:126 +msgid "Notion" +msgstr "" + +#: web/templates/onboarding/step-1.html:140 +msgid "Automatically extract data from your Notion from your workspace" +msgstr "" + +#: web/templates/onboarding/step-2-codebase.html:40 +msgid "GitHub Repo information" +msgstr "" + +#: web/templates/onboarding/step-2-codebase.html:53 +msgid "Please provide a valid GitHub repository url." +msgstr "" + +#: web/templates/onboarding/step-2-codebase.html:73 +msgid "Repository url" +msgstr "" + +#: web/templates/onboarding/step-2-codebase.html:74 +msgid "must have" +msgstr "" + +#: web/templates/onboarding/step-2-codebase.html:75 +msgid "main" +msgstr "" + +#: web/templates/onboarding/step-2-codebase.html:75 +msgid "branch" +msgstr "" + +#: web/templates/onboarding/step-2-codebase.html:92 +msgid "Your repo is private?" +msgstr "" + +#: web/templates/onboarding/step-2-pdf.html:66 +msgid "Upload PDF files as sources" +msgstr "" + +#: web/templates/onboarding/step-2-pdf.html:107 +msgid "" +"you can upload up to 5 pdf files, and we will process the first ±100k words" +msgstr "" + +#: web/templates/onboarding/step-2-pdf.html:120 +msgid "Delete PDF files after sending them for processing." +msgstr "" + +#: web/templates/onboarding/step-2-pdf.html:146 +msgid "Skip and add later" +msgstr "" + +#: web/templates/onboarding/step-2.html:81 +msgid "Just to make sure we are on the same page" +msgstr "" + +#: web/templates/onboarding/step-2.html:84 +msgid "" +"We might not be able to crawl some websites, especially websites that are " +"built using JS (SPA), we are working on adding headless browsing to support " +"all sorts of websites." +msgstr "" + +#: web/templates/onboarding/step-3.html:40 +msgid "In the meanwhile, Let's do some configurations" +msgstr "" + +#: web/templates/onboarding/step-3.html:42 +msgid "" +"While we are crawling your website, you can do some configurations on your " +"chatbot" +msgstr "" + +#: web/templates/onboarding/step-3.html:52 +msgid "What type of character that chatbot must be?" +msgstr "" + +#: web/templates/onboarding/step-3.html:54 +msgid "" +"Choose the preferred bot character, wise & strict character will force the " +"bot to only answer questions that have been seen before, while the " +"Knowledgeable makes the bot a bit more flexible and tries to be creative " +"with answers" +msgstr "" + +#: web/templates/onboarding/step-3.html:67 +msgid "Wise & Strict" +msgstr "" + +#: web/templates/onboarding/step-3.html:68 +msgid "Only answers questions within the given knowledge." +msgstr "" + +#: web/templates/onboarding/step-3.html:80 +msgid "Knowledgeable" +msgstr "" + +#: web/templates/onboarding/step-3.html:81 +msgid "Answers questions within the given knowledge and beyond." +msgstr "" + +#: web/templates/onboarding/step-4.html:45 +msgid "That is it!" +msgstr "" + +#: web/templates/onboarding/step-4.html:46 +msgid "Your chatbot name:" +msgstr "" + +#: web/templates/onboarding/step-4.html:49 +msgid "Open your bot" +msgstr "" + #: web/templates/settings-analytics.html:64 msgid "Try it out! ->" msgstr "" diff --git a/dj_backend_server/locale/ro/LC_MESSAGES/django.mo b/dj_backend_server/locale/ro/LC_MESSAGES/django.mo index 3e182741d0dfaf84436afe25a18850c50916b403..c20a3ca59efe7d35b844180e9b8db2d4ba1eb113 100644 GIT binary patch literal 8488 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 WVY#cq)KpWBb^jn?mTvc<1^zF`bwaTK delta 970 zcmZY7O=uHA6u|L`{fKFs)+T9V(p0yS`qdUa)DW;9j0GuF3Wl}^y|l?{SJRDdvWmS# z@#7*WIC|2X9xB9Kyogs(Ja`hk^dP7Q6)Y6Ih+h1^?N$_ro&C+s?#{e@Gt0SW(c1e+ z^F2iwpr)wlfKvN#coR3u7YyN7OyGBH$8eKUNlai6N3jLRFp4>p_hwMOpT`)Ma0_0+ zKBa2v4vkR;8rXrK{1?_xCJr>Oe-Oe5{Ui?J2=-$hH{*HVC6tA);sLykUHH-;e}|p) zKX~IcrPgS0dEv{07Jeg+F_ejh@hn-%qWsCDR;7lpffCRP?!;A;fMeVwpcKmUL6nSS zQRbgS$>a&_VSVM&*nu}Oiw%?%efIrraF4Z~PR3H-V5E1aPJ z7Pn!FzmNb9Vof5OrXdSj*oI3ekzPm1#9fpL>qsJ$L6xnN$)rg3>(O_g9dL|(eVOLs3ymN=)Xhbn=~{%_Z- zt-JNF;QppkxuTzh^19e|LD$>U`f^7)a8i$i_e8DJwlU>aRo*>kI>zDRqGju$&Pt|Y zI%>wMSXE=(b>^y8*;cdWJblx!>{DfD(Hk>9K3M)U?mDHXM\n" "Language-Team: LANGUAGE \n" @@ -18,6 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" "2:1));\n" + #: management/management/commands/inspire.py:8 msgid "Displays an inspiring quote" msgstr "Afișează un citat inspirațional" @@ -39,8 +40,13 @@ msgid "Menu Toggle Button" msgstr "Buton de comutare a meniului" #: web/templates/layout/header.html:13 -#: web/templates/layout/sidebar-bot-page.html:17 -#: web/templates/onboarding/other-data-sources-website.html:6 +#: web/templates/layout/sidebar-bot-page.html:18 +#: web/templates/onboarding/other-data-sources-website.html:5 +#: web/templates/onboarding/step-0.html:5 +#: web/templates/onboarding/step-1.html:4 +#: web/templates/onboarding/step-2-pdf.html:5 +#: web/templates/onboarding/step-2.html:4 +#: web/templates/onboarding/step-4.html:4 #: web/templates/settings-analytics.html:4 msgid "Dashboard" msgstr "Tablou de bord" @@ -49,74 +55,375 @@ msgstr "Tablou de bord" msgid "Profile Menu Offcanvas Button" msgstr "Butonul Offcanvas al Meniului de Profil" -#: web/templates/layout/noapp.html:6 +#: web/templates/layout/noapp.html:7 msgid "Login | OpenChat" msgstr "Autentificare | OpenChat" -#: web/templates/layout/noapp.html:30 +#: web/templates/layout/noapp.html:31 msgid "Create an Account ?" msgstr "Creează un cont ?" -#: web/templates/layout/noapp.html:30 +#: web/templates/layout/noapp.html:31 msgid "Register" msgstr "Înregistrare" -#: web/templates/layout/sidebar-bot-page.html:22 +#: web/templates/layout/sidebar-bot-page.html:23 msgid "Chatbot" msgstr "Chatbot" -#: web/templates/layout/sidebar-bot-page.html:26 +#: web/templates/layout/sidebar-bot-page.html:27 msgid "Try & Share" msgstr "Încearcă și Distribuie" -#: web/templates/layout/sidebar-bot-page.html:33 +#: web/templates/layout/sidebar-bot-page.html:34 msgid "General settings" msgstr "Setări generale" -#: web/templates/layout/sidebar-bot-page.html:39 +#: web/templates/layout/sidebar-bot-page.html:40 msgid "Data & Knowledge" msgstr "Date și Cunoștințe" -#: web/templates/layout/sidebar-bot-page.html:45 +#: web/templates/layout/sidebar-bot-page.html:46 msgid "History" msgstr "Istoric" -#: web/templates/layout/sidebar-bot-page.html:50 +#: web/templates/layout/sidebar-bot-page.html:51 msgid "Super Admin" msgstr "Super Admin" -#: web/templates/layout/sidebar-bot-page.html:54 +#: web/templates/layout/sidebar-bot-page.html:55 msgid "Errors check" msgstr "Verificare erori" -#: web/templates/layout/sidebar-bot-page.html:59 +#: web/templates/layout/sidebar-bot-page.html:60 msgid "Create user" msgstr "Creează utilizator" -#: web/templates/layout/sidebar-bot-page.html:62 +#: web/templates/layout/sidebar-bot-page.html:63 msgid "User" msgstr "Utilizator" -#: web/templates/layout/sidebar-bot-page.html:66 +#: web/templates/layout/sidebar-bot-page.html:67 msgid "ChatModify user detailsbot" msgstr "ChatModifică detaliile utilizatorului" -#: web/templates/onboarding/other-data-sources-website.html:44 -msgid "Website information ✨" +#: web/templates/onboarding/other-data-sources-pdf.html:41 +msgid "Upload files as sources" +msgstr "" + +#: web/templates/onboarding/other-data-sources-pdf.html:56 +#: web/templates/onboarding/other-data-sources-website.html:58 +#: web/templates/onboarding/step-1.html:55 +#: web/templates/onboarding/step-2-codebase.html:57 +#: web/templates/onboarding/step-2-pdf.html:83 +#: web/templates/onboarding/step-2.html:57 +msgid "Close" +msgstr "Închide" + +#: web/templates/onboarding/other-data-sources-pdf.html:75 +#: web/templates/onboarding/step-2-pdf.html:105 +msgid "Click to upload or drag & drop" +msgstr "Clic pentru a încărca sau trageți și plasați" + +#: web/templates/onboarding/other-data-sources-pdf.html:76 +msgid "you can upload up to 5 files, and we will process the first ±100k words" +msgstr "puteți încărca până la 5 fișiere, și vom procesa primele ±100k cuvinte" + +#: web/templates/onboarding/other-data-sources-pdf.html:89 +msgid "Delete files after sending them for processing." +msgstr "Șterge fișierele după trimiterea lor pentru procesare." + +#: web/templates/onboarding/other-data-sources-pdf.html:100 +#: web/templates/onboarding/step-2-pdf.html:130 +msgid "" +"Check this only if you have scanned pages in the PDF document and want them " +"to be sent to OCR services." +msgstr "" +"Bifați aceasta doar dacă aveți pagini scanate în documentul PDF și doriți să " +"le trimiteți la serviciile OCR." + +#: web/templates/onboarding/other-data-sources-pdf.html:107 +#: web/templates/onboarding/step-2-pdf.html:136 +msgid "We are accepting PDF/DOCX/XLSX/TXT(CSV/JSON)." +msgstr "Acceptăm PDF/DOCX/XLSX/TXT(CSV/JSON)." + +#: web/templates/onboarding/other-data-sources-pdf.html:108 +#: web/templates/onboarding/step-2-pdf.html:137 +msgid "PDF files can contain both text and images. We will send to OCR." +msgstr "" +"Fișierele PDF pot conține atât text cât și imagini. Le vom trimite la OCR." + +#: web/templates/onboarding/other-data-sources-pdf.html:109 +#: web/templates/onboarding/step-2-pdf.html:138 +msgid "" +"You can upload multiple files at once and we will process them in the " +"background." +msgstr "Puteți încărca mai multe fișiere odată și le vom procesa în fundal." + +#: web/templates/onboarding/other-data-sources-pdf.html:114 +#: web/templates/onboarding/other-data-sources-website.html:94 +#: web/templates/onboarding/step-1.html:150 +#: web/templates/onboarding/step-2-codebase.html:99 +#: web/templates/onboarding/step-2-pdf.html:145 +#: web/templates/onboarding/step-2.html:91 +#: web/templates/onboarding/step-3.html:92 +msgid "Back" +msgstr "Înapoi" + +#: web/templates/onboarding/other-data-sources-pdf.html:115 +#: web/templates/onboarding/other-data-sources-website.html:95 +#: web/templates/onboarding/step-2-codebase.html:100 +#: web/templates/onboarding/step-2-pdf.html:147 +#: web/templates/onboarding/step-2.html:92 +#: web/templates/onboarding/step-3.html:93 +msgid "Next Step" +msgstr "Pasul Următor" + +#: web/templates/onboarding/other-data-sources-website.html:43 +#: web/templates/onboarding/step-2.html:40 +#, fuzzy +#| msgid "Website information ✨" +msgid "Website information" msgstr "Informații website ✨" -#: web/templates/onboarding/other-data-sources-website.html:56 +#: web/templates/onboarding/other-data-sources-website.html:55 msgid "Please enter a valid website URL, it\\" msgstr "Vă rugăm să introduceți un URL valid de website, acesta\\" -#: web/templates/onboarding/other-data-sources-website.html:59 -msgid "Close" -msgstr "Închide" - -#: web/templates/onboarding/other-data-sources-website.html:76 +#: web/templates/onboarding/other-data-sources-website.html:75 +#: web/templates/onboarding/step-2.html:73 msgid "Website url" msgstr "URL website" +#: web/templates/onboarding/step-0.html:41 +msgid "Let's set up your first chatbot, for free" +msgstr "Să configurăm primul tău chatbot, gratuit" + +#: web/templates/onboarding/step-0.html:42 +msgid "And here how we are going to do it:" +msgstr "Și iată cum o să procedăm:" + +#: web/templates/onboarding/step-0.html:57 +msgid "You provide the system with data" +msgstr "Tu furnizezi sistemului datele" + +#: web/templates/onboarding/step-0.html:72 +msgid "We train our AI on this knowledge" +msgstr "Antrenăm IA cu aceste cunoștințe" + +#: web/templates/onboarding/step-0.html:74 +msgid "It might take minutes or hours, depend on how large is your data." +msgstr "" +"Ar putea dura minute sau ore, în funcție de cât de mari sunt datele tale." + +#: web/templates/onboarding/step-0.html:86 +msgid "You integrate the chatbot on your website" +msgstr "Integrezi chatbot-ul pe site-ul tău web" + +#: web/templates/onboarding/step-0.html:88 +msgid "" +"That is it! we will provide you with a Javascript code to put it on your " +"website." +msgstr "" +"Asta e tot! Îți vom furniza un cod Javascript pentru a-l pune pe site-ul tău." + +#: web/templates/onboarding/step-0.html:95 +msgid "Let's do it!" +msgstr "Hai să o facem!" + +#: web/templates/onboarding/step-1.html:39 +msgid "Select your data source" +msgstr "Selectează sursa datelor tale" + +#: web/templates/onboarding/step-1.html:40 +msgid "Select the source of your data to train your new chatbot" +msgstr "Selectează sursa datelor tale pentru a antrena noul tău chatbot" + +#: web/templates/onboarding/step-1.html:40 +msgid "you can always add new sources later" +msgstr "întotdeauna poți adăuga noi surse mai târziu" + +#: web/templates/onboarding/step-1.html:52 +msgid "" +"Please enter a valid website URL, it's important that your website is live " +"and accessible" +msgstr "Te rog să introduci un URL valid al site-ului web, este important ca site-ul tău să fie activ și accesibil" + +#: web/templates/onboarding/step-1.html:73 +#, fuzzy +#| msgid "Website url" +msgid "Website" +msgstr "URL website" + +#: web/templates/onboarding/step-1.html:75 +msgid "We will crawl your website and extract the knowledge automatically." +msgstr "Vom răsfoi site-ul tău web și vom extrage cunoștințele automat." + +#: web/templates/onboarding/step-1.html:83 +msgid "PDF/DOCX/TXT/JSON/XLSX files" +msgstr "Fișiere PDF/DOCX/TXT/JSON/XLSX" + +#: web/templates/onboarding/step-1.html:85 +#, fuzzy +#| msgid "We will crawl your website and extract the knowledge automatically." +msgid "We will scan your files and extract knowledge and any information" +msgstr "Vom răsfoi site-ul tău web și vom extrage cunoștințele automat." + +#: web/templates/onboarding/step-1.html:93 +msgid "Codebase" +msgstr "Codebase" + +#: web/templates/onboarding/step-1.html:95 +#, fuzzy +#| msgid "We will crawl your website and extract the knowledge automatically." +msgid "" +"Provide a link to your codebase and we will extract the knowledge and any " +"information" +msgstr "Vom răsfoi site-ul tău web și vom extrage cunoștințele automat." + +#: web/templates/onboarding/step-1.html:103 +msgid "Confluence" +msgstr "Confluence" + +#: web/templates/onboarding/step-1.html:112 +#: web/templates/onboarding/step-1.html:135 +msgid "soon" +msgstr "în curând" + +#: web/templates/onboarding/step-1.html:116 +msgid "Automatically extract data from your Confluence from your workspace" +msgstr "Extrage automat datele din Confluence-ul tău din spațiul tău de lucru" + +#: web/templates/onboarding/step-1.html:126 +msgid "Notion" +msgstr "Notion" + +#: web/templates/onboarding/step-1.html:140 +msgid "Automatically extract data from your Notion from your workspace" +msgstr "Extrage automat datele din Notion-ul tău din spațiul tău de lucru" + +#: web/templates/onboarding/step-2-codebase.html:40 +#, fuzzy +#| msgid "Website information ✨" +msgid "GitHub Repo information" +msgstr "Informații website ✨" + +#: web/templates/onboarding/step-2-codebase.html:53 +msgid "Please provide a valid GitHub repository url." +msgstr "Vă rugăm să furnizați un URL valid pentru un repository GitHub." + +#: web/templates/onboarding/step-2-codebase.html:73 +#, fuzzy +#| msgid "Website url" +msgid "Repository url" +msgstr "URL website" + +#: web/templates/onboarding/step-2-codebase.html:74 +msgid "must have" +msgstr "trebuie să aibă" + +#: web/templates/onboarding/step-2-codebase.html:75 +msgid "main" +msgstr "principală" + +#: web/templates/onboarding/step-2-codebase.html:75 +msgid "branch" +msgstr "ramură" + +#: web/templates/onboarding/step-2-codebase.html:92 +msgid "Your repo is private?" +msgstr "Repozitoriul tău este privat?" + +#: web/templates/onboarding/step-2-pdf.html:66 +msgid "Upload PDF files as sources" +msgstr "Încarcă fișiere PDF ca surse" + +#: web/templates/onboarding/step-2-pdf.html:107 +msgid "" +"you can upload up to 5 pdf files, and we will process the first ±100k words" +msgstr "" +"poți încărca până la 5 fișiere pdf, și vom procesa primele ±100k cuvinte" + +#: web/templates/onboarding/step-2-pdf.html:120 +msgid "Delete PDF files after sending them for processing." +msgstr "Șterge fișierele PDF după trimiterea lor pentru procesare." + +#: web/templates/onboarding/step-2-pdf.html:146 +msgid "Skip and add later" +msgstr "Omite și adaugă mai târziu" + +#: web/templates/onboarding/step-2.html:81 +msgid "Just to make sure we are on the same page" +msgstr "Doar pentru a ne asigura că suntem pe aceeași pagină" + +#: web/templates/onboarding/step-2.html:84 +msgid "" +"We might not be able to crawl some websites, especially websites that are " +"built using JS (SPA), we are working on adding headless browsing to support " +"all sorts of websites." +msgstr "" +"S-ar putea să nu putem răsfoi unele site-uri web, în special cele construite " +"folosind JS (SPA). Lucrăm la adăugarea navigării fără cap pentru a suporta " +"toate tipurile de site-uri web." + +#: web/templates/onboarding/step-3.html:40 +msgid "In the meanwhile, Let's do some configurations" +msgstr "Între timp, să facem câteva configurări" + +#: web/templates/onboarding/step-3.html:42 +msgid "" +"While we are crawling your website, you can do some configurations on your " +"chatbot" +msgstr "" +"În timp ce răsfoim site-ul tău web, poți face câteva configurări pe chatbot-ul tău" + +#: web/templates/onboarding/step-3.html:52 +msgid "What type of character that chatbot must be?" +msgstr "Ce tip de caracter trebuie să aibă chatbot-ul?" + +#: web/templates/onboarding/step-3.html:54 +msgid "" +"Choose the preferred bot character, wise & strict character will force the " +"bot to only answer questions that have been seen before, while the " +"Knowledgeable makes the bot a bit more flexible and tries to be creative " +"with answers" +msgstr "" +"Alege caracterul preferat al botului. Un caracter înțelept și strict va " +"forța botul să răspundă doar la întrebările care au fost văzute înainte, " +"în timp ce unul Informat îl face pe bot puțin mai flexibil și încearcă să " +"fie creativ cu răspunsurile" + +#: web/templates/onboarding/step-3.html:67 +msgid "Wise & Strict" +msgstr "Înțelept și Strict" + +#: web/templates/onboarding/step-3.html:68 +msgid "Only answers questions within the given knowledge." +msgstr "Răspunde doar la întrebări în cadrul cunoștințelor date." + +#: web/templates/onboarding/step-3.html:80 +#, fuzzy +#| msgid "Data & Knowledge" +msgid "Knowledgeable" +msgstr "Date și Cunoștințe" + +#: web/templates/onboarding/step-3.html:81 +msgid "Answers questions within the given knowledge and beyond." +msgstr "" +"Răspunde la întrebări în cadrul cunoștințelor date și dincolo de acestea." + +#: web/templates/onboarding/step-4.html:45 +msgid "That is it!" +msgstr "Asta este tot!" + +#: web/templates/onboarding/step-4.html:46 +msgid "Your chatbot name:" +msgstr "Numele chatbot-ului tău:" + +#: web/templates/onboarding/step-4.html:49 +msgid "Open your bot" +msgstr "Deschide-ți botul" + #: web/templates/settings-analytics.html:64 msgid "Try it out! ->" msgstr "Încearcă acum! ->" diff --git a/dj_backend_server/web/templates/onboarding/other-data-sources-pdf.html b/dj_backend_server/web/templates/onboarding/other-data-sources-pdf.html index fac78dc9..678d76cf 100644 --- a/dj_backend_server/web/templates/onboarding/other-data-sources-pdf.html +++ b/dj_backend_server/web/templates/onboarding/other-data-sources-pdf.html @@ -1,6 +1,6 @@ {% extends 'layout/app.html' %} {% load static %} - +{% load i18n %} {% block title %}Dashboard{% endblock %} {% block content %} @@ -38,7 +38,7 @@
-

Upload files as sources ✨

+

{% trans "Upload files as sources" %} ✨

{% if errors.pdffiles %}
@@ -53,7 +53,7 @@

Upload files as sources ✨

-

Click to upload or drag & drop

- you can upload up to 5 files, and we will process the first ±100k words +

{% trans "Click to upload or drag & drop" %}

+ {% trans "you can upload up to 5 files, and we will process the first ±100k words" %}
Upload files as sources ✨
@@ -97,22 +97,22 @@

Upload files as sources ✨
-
We are accepting PDF/DOCX/XLSX/TXT(CSV/JSON). 🫶
-
PDF files can contain both text and images. We will send to OCR.
-
You can upload multiple files at once and we will process them in the background.
+
{% trans "We are accepting PDF/DOCX/XLSX/TXT(CSV/JSON)." %} 🫶
+
{% trans "PDF files can contain both text and images. We will send to OCR." %}
+
{% trans "You can upload multiple files at once and we will process them in the background." %}
- <- Back - + <- {% trans "Back" %} +
diff --git a/dj_backend_server/web/templates/onboarding/other-data-sources-website.html b/dj_backend_server/web/templates/onboarding/other-data-sources-website.html index a6cfe4e6..4a6c4875 100644 --- a/dj_backend_server/web/templates/onboarding/other-data-sources-website.html +++ b/dj_backend_server/web/templates/onboarding/other-data-sources-website.html @@ -1,6 +1,5 @@ {% extends 'layout/app.html' %} {% load static %} - {% load i18n %} {% block title %}{{ _('Dashboard') }}{% endblock %} @@ -41,7 +40,7 @@
-

{% translate 'Website information ✨' %}

+

{% trans 'Website information' %} ✨

{% if form.errors.website %}
@@ -53,10 +52,10 @@

{% translate 'Website informa d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 12c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm1-3H7V4h2v5z"> -
{% translate 'Please enter a valid website URL, it\'s important that your website is live and accessible' %}
+
{% trans 'Please enter a valid website URL, it\'s important that your website is live and accessible' %}

- <- Back - + <- {% trans "Back" %} +
diff --git a/dj_backend_server/web/templates/onboarding/step-0.html b/dj_backend_server/web/templates/onboarding/step-0.html index 656bbe60..b3775875 100644 --- a/dj_backend_server/web/templates/onboarding/step-0.html +++ b/dj_backend_server/web/templates/onboarding/step-0.html @@ -1,6 +1,8 @@ {% extends 'layout/app.html' %} {% load static %} +{% load i18n %} +{% block title %}{{ _('Dashboard') }}{% endblock %} {% block content %}
@@ -36,8 +38,8 @@
-

Let's set up your first chatbot, for free 🔥

-

And here how we are going to do it:

+

{% trans "Let's set up your first chatbot, for free" %} 🔥

+

{% trans "And here how we are going to do it:" %}

@@ -52,10 +54,10 @@

Let's set up your first chatb

-

You provide the system with data

+

{% trans "You provide the system with data" %}

-
It could be a website, pdf files, and soon you will have the option to - integrate with many more
+
{% trans "It could be a website, pdf files, and soon you will have the option to + integrate with many more" %}
  • @@ -67,9 +69,9 @@

    You provide the system with da

  • -

    We train our AI on this knowledge

    +

    {% trans "We train our AI on this knowledge" %}

    -
    It might take minutes or hours, depend on how large is your data.
    +
    {% trans "It might take minutes or hours, depend on how large is your data." %}
  • @@ -81,18 +83,16 @@

    We train our AI on this knowle -

    You integrate the chatbot on your - website

    +

    {% trans "You integrate the chatbot on your website" %}

    -
    That is it! we will provide you with a Javascript code to put it on your - website.
    +
    {% trans "That is it! we will provide you with a Javascript code to put it on your website." %}
  • Let's do it! -> + href="{% url 'onboarding.data-source' %}">{% trans "Let's do it!" %} ->
    diff --git a/dj_backend_server/web/templates/onboarding/step-1.html b/dj_backend_server/web/templates/onboarding/step-1.html index 84ef9cce..8fefb4a9 100644 --- a/dj_backend_server/web/templates/onboarding/step-1.html +++ b/dj_backend_server/web/templates/onboarding/step-1.html @@ -1,6 +1,7 @@ {% extends "layout/app.html" %} {% load static %} - +{% load i18n %} +{% block title %}{{ _('Dashboard') }}{% endblock %} {% block content %}
    @@ -35,9 +36,8 @@
    -

    Select your data source ✨

    -

    Select the source of your data to train your new chatbot, you can - always add new sources later

    +

    {% trans "Select your data source" %} ✨

    +

    {% trans "Select the source of your data to train your new chatbot" %}, {% trans "you can always add new sources later" %}

    {% if website_error %}
    @@ -49,11 +49,10 @@

    Select your data source ✨ -
    Please enter a valid website URL, it's important that your website is live and - accessible
    +
    {% trans "Please enter a valid website URL, it's important that your website is live and accessible" %}

    @@ -126,7 +123,7 @@

    Select your data source ✨
    - Notion + {% trans "Notion" %}
    Select your data source ✨ - soon + {% trans "soon" %}
    - Automatically extract data from your Notion from your workspace + {% trans "Automatically extract data from your Notion from your workspace" %}
    @@ -150,7 +147,7 @@

    Select your data source ✨

    diff --git a/dj_backend_server/web/templates/onboarding/step-2-codebase.html b/dj_backend_server/web/templates/onboarding/step-2-codebase.html index 435edf04..d79241df 100644 --- a/dj_backend_server/web/templates/onboarding/step-2-codebase.html +++ b/dj_backend_server/web/templates/onboarding/step-2-codebase.html @@ -3,122 +3,128 @@ {% load i18n %} {% block content %} -
    +
    - + - -
    -
    -
    - -
      -
    • - 1 -
    • -
    • - 2 -
    • -
    • - 3 -
    • -
    • - 4 -
    • -
    -
    + +
    +
    +
    + +
      +
    • + 1 +
    • +
    • + 2 +
    • +
    • + 3 +
    • +
    • + 4 +
    • +
    +
    -
    -
    +
    +
    -

    GitHub Repo information ✨

    - - {% if form.errors.repo %} -
    -
    -
    -
    - - - -
    - Please provide a valid GitHub repository url. -
    -
    - +

    {% trans "GitHub Repo information" %} ✨

    + + {% if form.errors.repo %} +
    +
    +
    +
    + + + + +
    + {% trans "Please provide a valid GitHub repository url." %}
    + +
    +
    +
    + {% endif %} +
    + {% csrf_token %} +
    + +
    + +
    - {% endif %} - - {% csrf_token %} -
    - -
    - - -
    - + - +
    + <- + {% trans "Back" %} + +
    + -
    -
    + +
    {% endblock %} {% block scripts %} - + }); + {% endblock %} \ No newline at end of file diff --git a/dj_backend_server/web/templates/onboarding/step-2-pdf.html b/dj_backend_server/web/templates/onboarding/step-2-pdf.html index 49a36291..7a63a86f 100644 --- a/dj_backend_server/web/templates/onboarding/step-2-pdf.html +++ b/dj_backend_server/web/templates/onboarding/step-2-pdf.html @@ -1,6 +1,8 @@ {% extends 'layout/app.html' %} {% load static %} +{% load i18n %} +{% block title %}{{ _('Dashboard') }}{% endblock %} {% block content %}