From 9db1f2dc9bac293934ff0b45102f94bc501eb49a Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Tue, 26 Nov 2024 17:11:40 -0300 Subject: [PATCH 01/20] added custom tag and dropdown button at footer --- dashboard/templates/base.html | 25 ++++++++++++++++++++----- dashboard/templatetags/language_code.py | 11 +++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 dashboard/templatetags/language_code.py diff --git a/dashboard/templates/base.html b/dashboard/templates/base.html index 40e6658..b79cca6 100644 --- a/dashboard/templates/base.html +++ b/dashboard/templates/base.html @@ -1,4 +1,4 @@ -{% load i18n static %} +{% load i18n static language_code %} @@ -7,7 +7,7 @@ {% block meta %} - + {% endblock %} @@ -207,10 +207,25 @@ - + diff --git a/dashboard/templatetags/language_code.py b/dashboard/templatetags/language_code.py new file mode 100644 index 0000000..a7c1e74 --- /dev/null +++ b/dashboard/templatetags/language_code.py @@ -0,0 +1,11 @@ +from django import template +from django.utils.translation import get_language_info + +register = template.Library() + +@register.filter +def get_language_code(language_code, languages): + for lang in languages: + if lang['code'] == language_code: + return lang['name_local'].lower() + return language_code.lower() -- 2.30.2 From 963f56e74bc1b2425b7eb370e0702a93a58a32b2 Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Tue, 26 Nov 2024 17:52:03 -0300 Subject: [PATCH 02/20] added localization dependency in case needed --- docker/devicehub-django.Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/devicehub-django.Dockerfile b/docker/devicehub-django.Dockerfile index fadc751..2153b6a 100644 --- a/docker/devicehub-django.Dockerfile +++ b/docker/devicehub-django.Dockerfile @@ -5,6 +5,7 @@ RUN apt update && \ apt-get install -y \ python3-xapian \ git \ + gettext \ sqlite3 \ jq \ && rm -rf /var/lib/apt/lists/* -- 2.30.2 From 37caeeb6bea03d4af57c3e481b27c9bdc93b8858 Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Tue, 26 Nov 2024 17:52:27 -0300 Subject: [PATCH 03/20] localization config and url --- dhub/settings.py | 14 ++++++++++++-- dhub/urls.py | 12 ++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/dhub/settings.py b/dhub/settings.py index 0dc3d84..07b0713 100644 --- a/dhub/settings.py +++ b/dhub/settings.py @@ -65,6 +65,9 @@ ENABLE_EMAIL = config("ENABLE_EMAIL", default=True, cast=bool) EVIDENCES_DIR = config("EVIDENCES_DIR", default=os.path.join(BASE_DIR, "db")) +LOCALE_PATHS = [ + os.path.join(BASE_DIR, 'locale'), +] # Application definition INSTALLED_APPS = [ @@ -116,7 +119,13 @@ TEMPLATES = [ "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", + "django.template.context_processors.i18n", ], + + 'libraries':{ + 'get_language_code': 'dashboard.templatetags.language_code', + } + }, }, ] @@ -169,8 +178,9 @@ if TIME_ZONE == "UTC": USE_L10N = True LANGUAGES = [ - ('es', 'Spanish'), - ('en', 'English'), + ('es', 'spanish'), + ('en', 'english'), + ('ca', 'català'), ] # Static files (CSS, JavaScript, Images) diff --git a/dhub/urls.py b/dhub/urls.py index fba9bd3..4012f51 100644 --- a/dhub/urls.py +++ b/dhub/urls.py @@ -16,6 +16,10 @@ Including another URLconf """ from django.urls import path, include +from django.conf.urls.i18n import i18n_patterns +from django.conf import settings +from django.conf.urls.static import static +from django.views.i18n import set_language urlpatterns = [ # path('api/', include('snapshot.urls')), @@ -28,3 +32,11 @@ urlpatterns = [ path("lot/", include("lot.urls")), path('api/', include('api.urls')), ] + +urlpatterns += i18n_patterns( + path("language/", set_language, name='set_language'), +) + +if settings.DEBUG: + urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) -- 2.30.2 From 521c082635e303e5d02c142fc5cd71d83a50d587 Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Tue, 26 Nov 2024 17:52:41 -0300 Subject: [PATCH 04/20] fixed language dropdown button --- dashboard/templates/base.html | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/dashboard/templates/base.html b/dashboard/templates/base.html index b79cca6..a0d31d9 100644 --- a/dashboard/templates/base.html +++ b/dashboard/templates/base.html @@ -212,19 +212,23 @@
{{ commit_id }} +
+ {% csrf_token %} + + +
+ +
-- 2.30.2 From c4ba8312626c6bc56f5c2c0ef6d6b95de39c15a2 Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Tue, 26 Nov 2024 17:53:05 -0300 Subject: [PATCH 05/20] initial catala ml translated added --- locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 9986 bytes locale/ca/LC_MESSAGES/django.po | 624 ++++++++++++++++++++++++++++++++ 2 files changed, 624 insertions(+) create mode 100644 locale/ca/LC_MESSAGES/django.mo create mode 100644 locale/ca/LC_MESSAGES/django.po diff --git a/locale/ca/LC_MESSAGES/django.mo b/locale/ca/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4ce6e923ca65a8368577a5ac1b780f25c43936fb GIT binary patch literal 9986 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 literal 0 HcmV?d00001 diff --git a/locale/ca/LC_MESSAGES/django.po b/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 0000000..7c0afb8 --- /dev/null +++ b/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,624 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-26 20:13+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: admin/templates/admin_panel.html:14 +msgid "Institution" +msgstr "Institució" + +#: admin/templates/admin_users.html:10 +msgid "Add new user" +msgstr "Afegeix un nou usuari" + +#: admin/templates/delete_user.html:33 admin/templates/institution.html:27 +#: admin/templates/user.html:27 api/templates/new_token.html:27 +#: device/templates/new_annotation.html:39 device/templates/new_device.html:81 +#: device/templates/physical_properties.html:117 +#: evidence/templates/ev_details.html:92 +#: evidence/templates/ev_eraseserver.html:52 evidence/templates/upload.html:25 +#: lot/templates/delete_lot.html:33 lot/templates/new_annotation.html:39 +#: lot/templates/new_lot.html:27 user/templates/settings.html:27 +msgid "Cancel" +msgstr "Cancel·la" + +#: admin/templates/delete_user.html:34 api/tables.py:29 +#: evidence/templates/ev_details.html:97 lot/templates/delete_lot.html:34 +msgid "Delete" +msgstr "Elimina" + +#: admin/templates/institution.html:28 admin/templates/user.html:28 +#: api/templates/new_token.html:28 device/templates/new_annotation.html:40 +#: device/templates/new_device.html:82 +#: device/templates/physical_properties.html:118 +#: evidence/templates/ev_details.html:93 +#: evidence/templates/ev_eraseserver.html:53 evidence/templates/upload.html:26 +#: lot/templates/new_annotation.html:40 lot/templates/new_lot.html:28 +#: user/templates/settings.html:28 +msgid "Save" +msgstr "Desa" + +#: admin/views.py:26 dashboard/templates/base.html:86 +msgid "Admin" +msgstr "Administrador" + +#: admin/views.py:27 +msgid "admin" +msgstr "administrador" + +#: admin/views.py:36 dashboard/templates/base.html:96 +msgid "Users" +msgstr "Usuaris" + +#: admin/views.py:37 +msgid "admin / Users" +msgstr "administrador / Usuaris" + +#: admin/views.py:49 user/views.py:18 +msgid "User" +msgstr "Usuari" + +#: admin/views.py:50 +msgid "admin / User" +msgstr "administrador / Usuari" + +#: admin/views.py:74 +msgid "Delete user" +msgstr "Elimina usuari" + +#: admin/views.py:91 +msgid "Edit user" +msgstr "Edita usuari" + +#: admin/views.py:110 admin/views.py:112 +msgid "Edit institution" +msgstr "Edita institució" + +#: api/tables.py:51 +msgid "Token" +msgstr "Token" + +#: api/tables.py:52 evidence/forms.py:65 evidence/templates/ev_details.html:18 +#: evidence/templates/ev_eraseserver.html:18 +msgid "Tag" +msgstr "Etiqueta" + +#: api/templates/custom_table.html:65 dashboard/templates/pagination.html:13 +msgid "Previous" +msgstr "Anterior" + +#: api/templates/custom_table.html:91 dashboard/templates/pagination.html:38 +msgid "Next" +msgstr "Següent" + +#: api/templates/token.html:13 +msgid "Generate a new token" +msgstr "Genera un nou token" + +#: api/views.py:144 api/views.py:178 api/views.py:196 +msgid "Credential management" +msgstr "Gestió de credencials" + +#: api/views.py:146 +msgid "Managament Tokens" +msgstr "Tokens de gestió" + +#: api/views.py:180 api/views.py:198 +msgid "New Tokens" +msgstr "Nous Tokens" + +#: dashboard/mixins.py:15 +msgid "Permission denied. User is not authenticated" +msgstr "Permís denegat. L'usuari no està autenticat" + +#: dashboard/templates/base.html:91 +msgid "Panel" +msgstr "Panell" + +#: dashboard/templates/base.html:105 evidence/templates/ev_details.html:15 +#: evidence/templates/ev_eraseserver.html:15 +msgid "Devices" +msgstr "Dispositius" + +#: dashboard/templates/base.html:110 +msgid "Unassigned devices" +msgstr "Dispositius no assignats" + +#: dashboard/templates/base.html:118 device/templates/details.html:24 +msgid "Lots" +msgstr "Lots" + +#: dashboard/templates/base.html:133 device/templates/details.html:30 +#: evidence/views.py:28 evidence/views.py:87 evidence/views.py:174 +msgid "Evidences" +msgstr "Evidències" + +#: dashboard/templates/base.html:138 +msgid "Upload one" +msgstr "Carrega un" + +#: dashboard/templates/base.html:143 +msgid "Old evidences" +msgstr "Evidències antigues" + +#: dashboard/templates/base.html:151 +msgid "Placeholders" +msgstr "Marcadors de posició" + +#: dashboard/templates/base.html:156 +msgid "Upload Spreadsheet" +msgstr "Carrega full de càlcul" + +#: dashboard/templates/base.html:161 +msgid "Create one" +msgstr "Crea un" + +#: dashboard/templates/unassigned_devices.html:15 +#: device/templates/details.html:21 device/templates/details.html:150 +msgid "Documents" +msgstr "Documents" + +#: dashboard/templates/unassigned_devices.html:20 +msgid "Exports" +msgstr "Exportacions" + +#: dashboard/templates/unassigned_devices.html:25 +#: device/templates/details.html:111 +msgid "Annotations" +msgstr "Annotations" + +#: dashboard/views.py:18 +msgid "Unassigned Devices" +msgstr "Dispositius no assignats" + +#: dashboard/views.py:28 +msgid "Lot Devices" +msgstr "Dispositius del lot" + +#: dashboard/views.py:52 +msgid "Search Devices" +msgstr "Cerca dispositius" + +#: device/templates/details.html:15 +msgid "General details" +msgstr "Detalls generals" + +#: device/templates/details.html:18 +msgid "User annotations" +msgstr "Annotations de l'usuari" + +#: device/templates/details.html:27 +msgid "Components" +msgstr "Components" + +#: device/templates/details.html:41 +msgid "Details" +msgstr "Detalls" + +#: device/templates/details.html:50 +msgid "Is a erase server" +msgstr "És un servidor d'esborrat" + +#: device/templates/details.html:71 +msgid "Manufacturer" +msgstr "Fabricant" + +#: device/templates/details.html:78 +msgid "Model" +msgstr "Model" + +#: device/templates/details.html:85 +msgid "Serial Number" +msgstr "Número de sèrie" + +#: device/templates/details.html:93 +msgid "Identifiers" +msgstr "Identificadors" + +#: device/templates/details.html:107 +msgid "Add new annotation" +msgstr "Afegeix una nova anotació" + +#: device/templates/details.html:116 device/templates/details.html:155 +msgid "Key" +msgstr "Clau" + +#: device/templates/details.html:119 device/templates/details.html:158 +msgid "Value" +msgstr "Valor" + +#: device/templates/details.html:122 device/templates/details.html:161 +msgid "Created on" +msgstr "Creat el" + +#: device/templates/details.html:146 +msgid "Add new document" +msgstr "Afegeix un nou document" + +#: device/templates/details.html:197 +msgid "Components last evidence" +msgstr "Última evidència dels components" + +#: device/templates/details.html:218 +msgid "List of evidences" +msgstr "Llista d'evidències" + +#: device/templates/new_device.html:60 +msgid "Component details" +msgstr "Detalls del component" + +#: device/templates/new_device.html:65 +msgid "Add component" +msgstr "Afegeix component" + +#: device/views.py:23 +msgid "New Device" +msgstr "Nou dispositiu" + +#: device/views.py:69 +msgid "Update Device" +msgstr "Actualitza dispositiu" + +#: device/views.py:88 +msgid "Device" +msgstr "Dispositiu" + +#: device/views.py:172 +msgid "New annotation" +msgstr "Nova anotació" + +#: device/views.py:205 lot/views.py:147 lot/views.py:171 +msgid "New Document" +msgstr "Nou document" + +#: evidence/forms.py:16 +msgid "File" +msgstr "Fitxer" + +#: evidence/forms.py:39 +msgid "The snapshot already exists" +msgstr "La instantània ja existeix" + +#: evidence/forms.py:46 +#, python-format +msgid "Error on '%(file_name)s': %(error)s" +msgstr "Error en '%(file_name)s': %(error)s" + +#: evidence/forms.py:120 +msgid "File to import" +msgstr "Fitxer a importar" + +#: evidence/forms.py:138 +#, python-format +msgid "Error on '%(file_name)s': Invalid File" +msgstr "Error en '%(file_name)s': Fitxer invàlid" + +#: evidence/forms.py:147 +msgid "The file you try to import is empty!" +msgstr "El fitxer que intentes importar està buit!" + +#: evidence/forms.py:183 +msgid "Is a Erase Server" +msgstr "És un servidor d'esborrat" + +#: evidence/templates/ev_details.html:21 +#: evidence/templates/ev_eraseserver.html:21 +msgid "Erase Server" +msgstr "Servidor d'esborrat" + +#: evidence/templates/ev_details.html:24 +#: evidence/templates/ev_eraseserver.html:24 +msgid "Download File" +msgstr "Descarrega fitxer" + +#: evidence/templates/ev_details.html:38 +msgid "Type" +msgstr "Tipus" + +#: evidence/templates/ev_details.html:41 +msgid "Identificator" +msgstr "Identificador" + +#: evidence/templates/ev_details.html:44 +msgid "Data" +msgstr "Dades" + +#: evidence/views.py:44 +msgid "Upload Evidence" +msgstr "Carrega evidència" + +#: evidence/views.py:51 +msgid "Evidence uploaded successfully." +msgstr "Evidència carregada amb èxit." + +#: evidence/views.py:63 +msgid "Import Evidence" +msgstr "Importa evidència" + +#: evidence/views.py:75 +msgid "Evidence imported successfully." +msgstr "Evidència importada amb èxit." + +#: login/templates/2fadmin.html:8 +msgid "Two-factor Authentication" +msgstr "Autenticació de dos factors" + +#: login/templates/2fadmin.html:15 +msgid "We have sent you an email with a link that you have to click to log in." +msgstr "T'hem enviat un correu electrònic amb un enllaç que has de fer clic per iniciar sessió." + +#: login/templates/2fadmin_email.html:3 login/templates/2fadmin_email.txt:2 +#, python-format +msgid "You're receiving this email because you tried to access %(site_name)s." +msgstr "Estàs rebent aquest correu electrònic perquè has intentat accedir a %(site_name)s." + +#: login/templates/2fadmin_email.html:7 login/templates/2fadmin_email.txt:4 +msgid "Please go to the following page" +msgstr "Si us plau, ves a la pàgina següent" + +#: login/templates/2fadmin_email.html:19 login/templates/2fadmin_email.txt:10 +#: login/templates/activate_user_email.html:24 +#: login/templates/activate_user_email.txt:15 +#: login/templates/password_reset_email.html:23 +#: login/templates/password_reset_email.txt:10 +msgid "Thanks for using our site!" +msgstr "Gràcies per utilitzar el nostre lloc!" + +#: login/templates/2fadmin_email.html:23 login/templates/2fadmin_email.txt:12 +#: login/templates/password_reset_email.html:27 +#: login/templates/password_reset_email.txt:12 +#, python-format +msgid "The %(site_name)s team" +msgstr "L'equip de %(site_name)s" + +#: login/templates/2fadmin_email.txt:8 +#: login/templates/password_reset_email.html:19 +#: login/templates/password_reset_email.txt:8 +msgid "Your username, in case you've forgotten:" +msgstr "El teu nom d'usuari, per si l'has oblidat:" + +#: login/templates/2fadmin_email_subject.txt:2 +#, python-format +msgid "Authentication in %(site_name)s" +msgstr "Autenticació a %(site_name)s" + +#: login/templates/activate_user_email.html:2 +#: login/templates/activate_user_email.txt:3 +msgid "DeviceHub" +msgstr "DeviceHub" + +#: login/templates/activate_user_email.html:4 +#: login/templates/activate_user_email.txt:5 +#, python-format +msgid "" +"You're receiving this email because your user account at %(site)s has been " +"activated." +msgstr "Estàs rebent aquest correu electrònic perquè el teu compte d'usuari a %(site)s ha estat activat." + +#: login/templates/activate_user_email.html:8 +#: login/templates/activate_user_email.txt:7 +msgid "Your username is:" +msgstr "El teu nom d'usuari és:" + +#: login/templates/activate_user_email.html:12 +#: login/templates/activate_user_email.txt:9 +msgid "Please go to the following page and choose a password:" +msgstr "Si us plau, ves a la pàgina següent i tria una contrasenya:" + +#: login/templates/activate_user_email.html:28 +#: login/templates/activate_user_email.txt:17 +#, python-format +msgid "The %(site)s team" +msgstr "L'equip de %(site)s" + +#: login/templates/activate_user_subject.txt:2 +msgid "IdHub" +msgstr "IdHub" + +#: login/templates/activate_user_subject.txt:3 +#, python-format +msgid "User activation on %(site)s" +msgstr "Activació d'usuari a %(site)s" + +#: login/templates/login.html:43 login/templates/login2.html:50 +msgid "Forgot your password? Click here to recover" +msgstr "Has oblidat la teva contrasenya? Fes clic aquí per recuperar-la" + +#: login/templates/login2.html:45 +msgid "Log in" +msgstr "Inicia sessió" + +#: login/templates/password_reset.html:8 +msgid "Password reset" +msgstr "Restabliment de contrasenya" + +#: login/templates/password_reset.html:9 +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "Has oblidat la teva contrasenya? Introdueix la teva adreça de correu electrònic a continuació i t'enviarem instruccions per establir-ne una de nova." + +#: login/templates/password_reset.html:21 +msgid "Reset my password" +msgstr "Restableix la meva contrasenya" + +#: login/templates/password_reset_complete.html:9 +msgid "Password reset complete" +msgstr "Restabliment de contrasenya complet" + +#: login/templates/password_reset_complete.html:10 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "La teva contrasenya ha estat establerta. Ara pots iniciar sessió." + +#: login/templates/password_reset_complete.html:11 login/views.py:19 +msgid "Login" +msgstr "Inicia sessió" + +#: login/templates/password_reset_confirm.html:9 +msgid "Enter new password" +msgstr "Introdueix una nova contrasenya" + +#: login/templates/password_reset_confirm.html:10 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Si us plau, introdueix la teva nova contrasenya dues vegades perquè puguem verificar que l'has escrit correctament." + +#: login/templates/password_reset_confirm.html:21 +msgid "Change my password" +msgstr "Canvia la meva contrasenya" + +#: login/templates/password_reset_confirm.html:29 +msgid "Password reset unsuccessful" +msgstr "Restabliment de contrasenya no reeixit" + +#: login/templates/password_reset_confirm.html:30 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used." +msgstr "L'enllaç de restabliment de contrasenya no és vàlid, possiblement perquè ja s'ha utilitzat." + +#: login/templates/password_reset_confirm.html:31 +msgid "Please request a new password reset." +msgstr "Si us plau, sol·licita un nou restabliment de contrasenya." + +#: login/templates/password_reset_done.html:7 +msgid "Password reset sent" +msgstr "Restabliment de contrasenya enviat" + +#: login/templates/password_reset_done.html:9 +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "T'hem enviat per correu electrònic instruccions per establir la teva contrasenya, si existeix un compte amb el correu electrònic que has introduït. Hauries de rebre-les en breu." + +#: login/templates/password_reset_done.html:11 +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "Si no reps un correu electrònic, si us plau, assegura't que has introduït l'adreça amb la qual et vas registrar i revisa la teva carpeta de correu brossa." + +#: login/templates/password_reset_email.html:3 +#: login/templates/password_reset_email.txt:2 +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "Estàs rebent aquest correu electrònic perquè has sol·licitat un restabliment de contrasenya per al teu compte d'usuari a %(site_name)s." + +#: login/templates/password_reset_email.html:7 +#: login/templates/password_reset_email.txt:4 +msgid "Please go to the following page and choose a new password:" +msgstr "Si us plau, aneu a la pàgina següent i trieu una nova contrasenya:" + +#: login/templates/password_reset_subject.txt:2 +#, python-format +msgid "Password reset on %(site_name)s" +msgstr "Restabliment de la contrasenya a %(site_name)s" + +#: lot/templates/lots.html:12 +msgid "Hide closed lots" +msgstr "Amaga lots tancats" + +#: lot/templates/lots.html:16 +msgid "Show closed lots" +msgstr "Mostra lots tancats" + +#: lot/templates/lots.html:22 +msgid "Add new lot" +msgstr "Afegeix un nou lot" + +#: lot/views.py:18 +msgid "New lot" +msgstr "Nou lot" + +#: lot/views.py:39 +msgid "Delete lot" +msgstr "Elimina lot" + +#: lot/views.py:58 +msgid "Edit lot" +msgstr "Edita lot" + +#: lot/views.py:84 +msgid "Add to lots" +msgstr "Afegeix als lots" + +#: lot/views.py:112 +msgid "Remove from lots" +msgstr "Elimina dels lots" + +#: lot/views.py:124 lot/views.py:125 +msgid "lots" +msgstr "lots" + +#: lot/views.py:194 lot/views.py:217 +msgid "New Annotation" +msgstr "Nova anotació" + +#: user/models.py:10 +msgid "Name" +msgstr "Nom" + +#: user/models.py:16 +msgid "Logo" +msgstr "Logotip" + +#: user/models.py:17 +msgid "Location" +msgstr "Ubicació" + +#: user/models.py:19 +msgid "Responsable" +msgstr "Responsable" + +#: user/models.py:25 +msgid "Supervisor" +msgstr "Supervisor" + +#: user/models.py:67 +msgid "Email address" +msgstr "Adreça electrònica" + +#: user/models.py:71 +msgid "is active" +msgstr "està actiu" + +#: user/models.py:72 +msgid "is admin" +msgstr "és administrador" + +#: user/models.py:73 +msgid "First name" +msgstr "Nom" + +#: user/models.py:74 +msgid "Last name" +msgstr "Cognom" + +#: user/templates/panel.html:17 +msgid "Admin your Tokens" +msgstr "Administra els teus tokens" + +#: user/templates/panel.html:22 +msgid "Download a settings file" +msgstr "Descarrega un fitxer de configuració" + +#: user/views.py:25 +msgid "Download Settings" +msgstr "Descarrega configuració" \ No newline at end of file -- 2.30.2 From dc46bef55fa6786872bf73efa8f382a0fb91e100 Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Tue, 26 Nov 2024 17:59:45 -0300 Subject: [PATCH 06/20] initial spanish translations --- locale/es/LC_MESSAGES/django.mo | Bin 0 -> 10104 bytes locale/es/LC_MESSAGES/django.po | 623 ++++++++++++++++++++++++++++++++ 2 files changed, 623 insertions(+) create mode 100644 locale/es/LC_MESSAGES/django.mo create mode 100644 locale/es/LC_MESSAGES/django.po diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..71a9b1e8545db7353a913d6d366fac5ca31ee328 GIT binary patch literal 10104 zcmbW53ydAtS;tQrH>PeH(u6{q#N?Pbv0ZyNFB05!TxYX;ZLhPhcz4sZgtW7FX78Qs z+?mbH++A-{XcGuc)FP2Wg;I)&g%G7Ahzg-VMM>mMp+HkrAl?*;C`2M^k*W&u2$bLd z%$a-duH(4v)t>#$oH=tI-|Kv5{^7E1A2s}*pj=G}w;A&seENI%$M2JGH0Dk4*WqRG zS$HY@6Ud+WJN{h^U-I|ggs|-ro&1uVJY9-v;?Jhxn&; zpMd+}0!-i|@O$Cc;rGG+gPPanR7$?PAw!tAL9P2Bd>D>H{><~f{!38n`+Lu?!wb1r zXIj@bsOOhJt=B@ybsy9?H$pdGsBsSY`(se=O+v}xeyH}#{`rHDDVtTO^*sjF?q~h| zFZt)6gp$j%P~$uYwXPSS`uj7ee*PN%0DK8bzTbkE!)uttRqz&g0M0;-^FBBWpMYxr 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, AÑO. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: VERSIÓN DEL PAQUETE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-26 17:35-0300\n" +"PO-Revision-Date: AÑO-MO-DA HO:MI+ZONE\n" +"Last-Translator: NOMBRE COMPLETO \n" +"Language-Team: LENGUAJE \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: admin/templates/admin_panel.html:14 +msgid "Institution" +msgstr "Institución" + +#: admin/templates/admin_users.html:10 +msgid "Add new user" +msgstr "Agregar nuevo usuario" + +#: admin/templates/delete_user.html:33 admin/templates/institution.html:27 +#: admin/templates/user.html:27 api/templates/new_token.html:27 +#: device/templates/new_annotation.html:39 device/templates/new_device.html:81 +#: device/templates/physical_properties.html:117 +#: evidence/templates/ev_details.html:92 +#: evidence/templates/ev_eraseserver.html:52 evidence/templates/upload.html:25 +#: lot/templates/delete_lot.html:33 lot/templates/new_annotation.html:39 +#: lot/templates/new_lot.html:27 user/templates/settings.html:27 +msgid "Cancel" +msgstr "Cancelar" + +#: admin/templates/delete_user.html:34 api/tables.py:29 +#: evidence/templates/ev_details.html:97 lot/templates/delete_lot.html:34 +msgid "Delete" +msgstr "Eliminar" + +#: admin/templates/institution.html:28 admin/templates/user.html:28 +#: api/templates/new_token.html:28 device/templates/new_annotation.html:40 +#: device/templates/new_device.html:82 device/templates/physical_properties.html:118 +#: evidence/templates/ev_details.html:93 +#: evidence/templates/ev_eraseserver.html:53 evidence/templates/upload.html:26 +#: lot/templates/new_annotation.html:40 lot/templates/new_lot.html:28 +#: user/templates/settings.html:28 +msgid "Save" +msgstr "Guardar" + +#: admin/views.py:26 dashboard/templates/base.html:86 +msgid "Admin" +msgstr "Administrador" + +#: admin/views.py:27 +msgid "admin" +msgstr "administrador" + +#: admin/views.py:36 dashboard/templates/base.html:96 +msgid "Users" +msgstr "Usuarios" + +#: admin/views.py:37 +msgid "admin / Users" +msgstr "administrador / Usuarios" + +#: admin/views.py:49 user/views.py:18 +msgid "User" +msgstr "Usuario" + +#: admin/views.py:50 +msgid "admin / User" +msgstr "administrador / Usuario" + +#: admin/views.py:74 +msgid "Delete user" +msgstr "Eliminar usuario" + +#: admin/views.py:91 +msgid "Edit user" +msgstr "Editar usuario" + +#: admin/views.py:110 admin/views.py:112 +msgid "Edit institution" +msgstr "Editar institución" + +#: api/tables.py:51 +msgid "Token" +msgstr "Token" + +#: api/tables.py:52 evidence/forms.py:65 evidence/templates/ev_details.html:18 +#: evidence/templates/ev_eraseserver.html:18 +msgid "Tag" +msgstr "Etiqueta" + +#: api/templates/custom_table.html:65 dashboard/templates/pagination.html:13 +msgid "Previous" +msgstr "Anterior" + +#: api/templates/custom_table.html:91 dashboard/templates/pagination.html:38 +msgid "Next" +msgstr "Siguiente" + +#: api/templates/token.html:13 +msgid "Generate a new token" +msgstr "Generar un nuevo token" + +#: api/views.py:144 api/views.py:178 api/views.py:196 +msgid "Credential management" +msgstr "Gestión de credenciales" + +#: api/views.py:146 +msgid "Managament Tokens" +msgstr "Tokens de gestión" + +#: api/views.py:180 api/views.py:198 +msgid "New Tokens" +msgstr "Nuevos Tokens" + +#: dashboard/mixins.py:15 +msgid "Permission denied. User is not authenticated" +msgstr "Permiso denegado. El usuario no está autenticado" + +#: dashboard/templates/base.html:91 +msgid "Panel" +msgstr "Panel" + +#: dashboard/templates/base.html:105 evidence/templates/ev_details.html:15 +#: evidence/templates/ev_eraseserver.html:15 +msgid "Devices" +msgstr "Dispositivos" + +#: dashboard/templates/base.html:110 +msgid "Unassigned devices" +msgstr "Dispositivos no asignados" + +#: dashboard/templates/base.html:118 device/templates/details.html:24 +msgid "Lots" +msgstr "Lotes" + +#: dashboard/templates/base.html:133 device/templates/details.html:30 +#: evidence/views.py:28 evidence/views.py:87 evidence/views.py:174 +msgid "Evidences" +msgstr "Evidencias" + +#: dashboard/templates/base.html:138 +msgid "Upload one" +msgstr "Subir uno" + +#: dashboard/templates/base.html:143 +msgid "Old evidences" +msgstr "Evidencias antiguas" + +#: dashboard/templates/base.html:151 +msgid "Placeholders" +msgstr "Marcadores de posición" + +#: dashboard/templates/base.html:156 +msgid "Upload Spreadsheet" +msgstr "Subir hoja de cálculo" + +#: dashboard/templates/base.html:161 +msgid "Create one" +msgstr "Crear uno" + +#: dashboard/templates/unassigned_devices.html:15 +#: device/templates/details.html:21 device/templates/details.html:150 +msgid "Documents" +msgstr "Documentos" + +#: dashboard/templates/unassigned_devices.html:20 +msgid "Exports" +msgstr "Exportaciones" + +#: dashboard/templates/unassigned_devices.html:25 +#: device/templates/details.html:111 +msgid "Annotations" +msgstr "Anotaciones" + +#: dashboard/views.py:18 +msgid "Unassigned Devices" +msgstr "Dispositivos no asignados" + +#: dashboard/views.py:28 +msgid "Lot Devices" +msgstr "Dispositivos del lote" + +#: dashboard/views.py:52 +msgid "Search Devices" +msgstr "Buscar dispositivos" + +#: device/templates/details.html:15 +msgid "General details" +msgstr "Detalles generales" + +#: device/templates/details.html:18 +msgid "User annotations" +msgstr "Anotaciones del usuario" + +#: device/templates/details.html:27 +msgid "Components" +msgstr "Componentes" + +#: device/templates/details.html:41 +msgid "Details" +msgstr "Detalles" + +#: device/templates/details.html:50 +msgid "Is a erase server" +msgstr "Es un servidor de borrado" + +#: device/templates/details.html:71 +msgid "Manufacturer" +msgstr "Fabricante" + +#: device/templates/details.html:78 +msgid "Model" +msgstr "Modelo" + +#: device/templates/details.html:85 +msgid "Serial Number" +msgstr "Número de serie" + +#: device/templates/details.html:93 +msgid "Identifiers" +msgstr "Identificadores" + +#: device/templates/details.html:107 +msgid "Add new annotation" +msgstr "Agregar nueva anotación" + +#: device/templates/details.html:116 device/templates/details.html:155 +msgid "Key" +msgstr "Clave" + +#: device/templates/details.html:119 device/templates/details.html:158 +msgid "Value" +msgstr "Valor" + +#: device/templates/details.html:122 device/templates/details.html:161 +msgid "Created on" +msgstr "Creado el" + +#: device/templates/details.html:146 +msgid "Add new document" +msgstr "Agregar nuevo documento" + +#: device/templates/details.html:197 +msgid "Components last evidence" +msgstr "Última evidencia de componentes" + +#: device/templates/details.html:218 +msgid "List of evidences" +msgstr "Lista de evidencias" + +#: device/templates/new_device.html:60 +msgid "Component details" +msgstr "Detalles del componente" + +#: device/templates/new_device.html:65 +msgid "Add component" +msgstr "Agregar componente" + +#: device/views.py:23 +msgid "New Device" +msgstr "Nuevo dispositivo" + +#: device/views.py:69 +msgid "Update Device" +msgstr "Actualizar dispositivo" + +#: device/views.py:88 +msgid "Device" +msgstr "Dispositivo" + +#: device/views.py:172 +msgid "New annotation" +msgstr "Nueva anotación" + +#: device/views.py:205 lot/views.py:147 lot/views.py:171 +msgid "New Document" +msgstr "Nuevo documento" + +#: evidence/forms.py:16 +msgid "File" +msgstr "Archivo" + +#: evidence/forms.py:39 +msgid "The snapshot already exists" +msgstr "La instantánea ya existe" + +#: evidence/forms.py:46 +#, python-format +msgid "Error on '%(file_name)s': %(error)s" +msgstr "Error en '%(file_name)s': %(error)s" + +#: evidence/forms.py:120 +msgid "File to import" +msgstr "Archivo a importar" + +#: evidence/forms.py:138 +#, python-format +msgid "Error on '%(file_name)s': Invalid File" +msgstr "Error en '%(file_name)s': Archivo inválido" + +#: evidence/forms.py:147 +msgid "The file you try to import is empty!" +msgstr "¡El archivo que intentas importar está vacío!" + +#: evidence/forms.py:183 +msgid "Is a Erase Server" +msgstr "Es un servidor de borrado" + +#: evidence/templates/ev_details.html:21 +#: evidence/templates/ev_eraseserver.html:21 +msgid "Erase Server" +msgstr "Servidor de borrado" + +#: evidence/templates/ev_details.html:24 +#: evidence/templates/ev_eraseserver.html:24 +msgid "Download File" +msgstr "Descargar archivo" + +#: evidence/templates/ev_details.html:38 +msgid "Type" +msgstr "Tipo" + +#: evidence/templates/ev_details.html:41 +msgid "Identificator" +msgstr "Identificador" + +#: evidence/templates/ev_details.html:44 +msgid "Data" +msgstr "Datos" + +#: evidence/views.py:44 +msgid "Upload Evidence" +msgstr "Subir evidencia" + +#: evidence/views.py:51 +msgid "Evidence uploaded successfully." +msgstr "Evidencia subida exitosamente." + +#: evidence/views.py:63 +msgid "Import Evidence" +msgstr "Importar evidencia" + +#: evidence/views.py:75 +msgid "Evidence imported successfully." +msgstr "Evidencia importada exitosamente." + +#: login/templates/2fadmin.html:8 +msgid "Two-factor Authentication" +msgstr "Autenticación de dos factores" + +#: login/templates/2fadmin.html:15 +msgid "We have sent you an email with a link that you have to click to log in." +msgstr "Te hemos enviado un correo electrónico con un enlace que debes hacer clic para iniciar sesión." + +#: login/templates/2fadmin_email.html:3 login/templates/2fadmin_email.txt:2 +#, python-format +msgid "You're receiving this email because you tried to access %(site_name)s." +msgstr "Estás recibiendo este correo electrónico porque intentaste acceder a %(site_name)s." + +#: login/templates/2fadmin_email.html:7 login/templates/2fadmin_email.txt:4 +msgid "Please go to the following page" +msgstr "Por favor, ve a la siguiente página" + +#: login/templates/2fadmin_email.html:19 login/templates/2fadmin_email.txt:10 +#: login/templates/activate_user_email.html:24 +#: login/templates/activate_user_email.txt:15 +#: login/templates/password_reset_email.html:23 +#: login/templates/password_reset_email.txt:10 +msgid "Thanks for using our site!" +msgstr "¡Gracias por usar nuestro sitio!" + +#: login/templates/2fadmin_email.html:23 login/templates/2fadmin_email.txt:12 +#: login/templates/password_reset_email.html:27 +#: login/templates/password_reset_email.txt:12 +#, python-format +msgid "The %(site_name)s team" +msgstr "El equipo de %(site_name)s" + +#: login/templates/2fadmin_email.txt:8 +#: login/templates/password_reset_email.html:19 +#: login/templates/password_reset_email.txt:8 +msgid "Your username, in case you've forgotten:" +msgstr "Tu nombre de usuario, en caso de que lo hayas olvidado:" + +#: login/templates/2fadmin_email_subject.txt:2 +#, python-format +msgid "Authentication in %(site_name)s" +msgstr "Autenticación en %(site_name)s" + +#: login/templates/activate_user_email.html:2 +#: login/templates/activate_user_email.txt:3 +msgid "DeviceHub" +msgstr "DeviceHub" + +#: login/templates/activate_user_email.html:4 +#: login/templates/activate_user_email.txt:5 +#, python-format +msgid "" +"You're receiving this email because your user account at %(site)s has been " +"activated." +msgstr "Estás recibiendo este correo electrónico porque tu cuenta de usuario en %(site)s ha sido activada." + +#: login/templates/activate_user_email.html:8 +#: login/templates/activate_user_email.txt:7 +msgid "Your username is:" +msgstr "Tu nombre de usuario es:" + +#: login/templates/activate_user_email.html:12 +#: login/templates/activate_user_email.txt:9 +msgid "Please go to the following page and choose a password:" +msgstr "Por favor, ve a la siguiente página y elige una contraseña:" + +#: login/templates/activate_user_email.html:28 +#: login/templates/activate_user_email.txt:17 +#, python-format +msgid "The %(site)s team" +msgstr "El equipo de %(site)s" + +#: login/templates/activate_user_subject.txt:2 +msgid "IdHub" +msgstr "IdHub" + +#: login/templates/activate_user_subject.txt:3 +#, python-format +msgid "User activation on %(site)s" +msgstr "Activación de usuario en %(site)s" + +#: login/templates/login.html:43 login/templates/login2.html:50 +msgid "Forgot your password? Click here to recover" +msgstr "¿Olvidaste tu contraseña? Haz clic aquí para recuperarla" + +#: login/templates/login2.html:45 +msgid "Log in" +msgstr "Iniciar sesión" + +#: login/templates/password_reset.html:8 +msgid "Password reset" +msgstr "Restablecimiento de contraseña" + +#: login/templates/password_reset.html:9 +msgid "" +"Forgotten your password? Enter your email address below, and we'll email " +"instructions for setting a new one." +msgstr "¿Olvidaste tu contraseña? Ingresa tu dirección de correo electrónico a continuación y te enviaremos instrucciones para establecer una nueva." + +#: login/templates/password_reset.html:21 +msgid "Reset my password" +msgstr "Restablecer mi contraseña" + +#: login/templates/password_reset_complete.html:9 +msgid "Password reset complete" +msgstr "Restablecimiento de contraseña completo" + +#: login/templates/password_reset_complete.html:10 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "Tu contraseña ha sido establecida. Ahora puedes iniciar sesión." + +#: login/templates/password_reset_complete.html:11 login/views.py:19 +msgid "Login" +msgstr "Iniciar sesión" + +#: login/templates/password_reset_confirm.html:9 +msgid "Enter new password" +msgstr "Ingresa nueva contraseña" + +#: login/templates/password_reset_confirm.html:10 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "Por favor, ingresa tu nueva contraseña dos veces para que podamos verificar que la escribiste correctamente." + +#: login/templates/password_reset_confirm.html:21 +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +#: login/templates/password_reset_confirm.html:29 +msgid "Password reset unsuccessful" +msgstr "Restablecimiento de contraseña fallido" + +#: login/templates/password_reset_confirm.html:30 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used." +msgstr "El enlace para restablecer la contraseña no es válido, posiblemente porque ya ha sido utilizado." + +#: login/templates/password_reset_confirm.html:31 +msgid "Please request a new password reset." +msgstr "Por favor, solicita un nuevo restablecimiento de contraseña." + +#: login/templates/password_reset_done.html:7 +msgid "Password reset sent" +msgstr "Restablecimiento de contraseña enviado" + +#: login/templates/password_reset_done.html:9 +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly." +msgstr "Te hemos enviado por correo electrónico las instrucciones para establecer tu contraseña, si existe una cuenta con el correo electrónico que ingresaste. Deberías recibirlas en breve." + +#: login/templates/password_reset_done.html:11 +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam folder." +msgstr "Si no recibes un correo electrónico, por favor asegúrate de haber ingresado la dirección con la que te registraste y revisa tu carpeta de spam." + +#: login/templates/password_reset_email.html:3 +#: login/templates/password_reset_email.txt:2 +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "Estás recibiendo este correo electrónico porque solicitaste un restablecimiento de contraseña para tu cuenta de usuario en %(site_name)s." + +#: login/templates/password_reset_email.html:7 +#: login/templates/password_reset_email.txt:4 +msgid "Please go to the following page and choose a new password:" +msgstr "Por favor, ve a la siguiente página y elige una nueva contraseña:" + +#: login/templates/password_reset_subject.txt:2 +#, python-format +msgid "Password reset on %(site_name)s" +msgstr "Restablecimiento de contraseña en %(site_name)s" + +#: lot/templates/lots.html:12 +msgid "Hide closed lots" +msgstr "Ocultar lotes cerrados" + +#: lot/templates/lots.html:16 +msgid "Show closed lots" +msgstr "Mostrar lotes cerrados" + +#: lot/templates/lots.html:22 +msgid "Add new lot" +msgstr "Agregar nuevo lote" + +#: lot/views.py:18 +msgid "New lot" +msgstr "Nuevo lote" + +#: lot/views.py:39 +msgid "Delete lot" +msgstr "Eliminar lote" + +#: lot/views.py:58 +msgid "Edit lot" +msgstr "Editar lote" + +#: lot/views.py:84 +msgid "Add to lots" +msgstr "Agregar a los lotes" + +#: lot/views.py:112 +msgid "Remove from lots" +msgstr "Eliminar de los lotes" + +#: lot/views.py:124 lot/views.py:125 +msgid "lots" +msgstr "lotes" + +#: lot/views.py:194 lot/views.py:217 +msgid "New Annotation" +msgstr "Nueva anotación" + +#: user/models.py:10 +msgid "Name" +msgstr "Nombre" + +#: user/models.py:16 +msgid "Logo" +msgstr "Logotipo" + +#: user/models.py:17 +msgid "Location" +msgstr "Ubicación" + +#: user/models.py:19 +msgid "Responsable" +msgstr "Responsable" + +#: user/models.py:25 +msgid "Supervisor" +msgstr "Supervisor" + +#: user/models.py:67 +msgid "Email address" +msgstr "Dirección de correo electrónico" + +#: user/models.py:71 +msgid "is active" +msgstr "está activo" + +#: user/models.py:72 +msgid "is admin" +msgstr "es administrador" + +#: user/models.py:73 +msgid "First name" +msgstr "Nombre" + +#: user/models.py:74 +msgid "Last name" +msgstr "Apellido" + +#: user/templates/panel.html:17 +msgid "Admin your Tokens" +msgstr "Administra tus tokens" + +#: user/templates/panel.html:22 +msgid "Download a settings file" +msgstr "Descargar un archivo de configuración" + +#: user/views.py:25 +msgid "Download Settings" +msgstr "Descargar configuración" \ No newline at end of file -- 2.30.2 From 3d362ced40bb34f14d43426f92d5fae509905682 Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Wed, 27 Nov 2024 02:04:30 -0300 Subject: [PATCH 07/20] updated translations --- locale/ca/LC_MESSAGES/django.mo | Bin 9986 -> 10503 bytes locale/ca/LC_MESSAGES/django.po | 133 +++++++++++++++++++++++----- locale/es/LC_MESSAGES/django.mo | Bin 10104 -> 10477 bytes locale/es/LC_MESSAGES/django.po | 149 +++++++++++++++++++++++++------- 4 files changed, 225 insertions(+), 57 deletions(-) diff --git a/locale/ca/LC_MESSAGES/django.mo b/locale/ca/LC_MESSAGES/django.mo index 4ce6e923ca65a8368577a5ac1b780f25c43936fb..bb06d3d8fcb7d63528bff51e2ab51969dc796f07 100644 GIT binary patch delta 3521 zcmY+_du+{T9LMp8DyoLorOLFYE>&}>`)!80)XHiuQ*)i;oKyYLo>S-I&T$!~b=jPC zvMshm!U&l}>yJ%L#Ka$nk!(RkX6!~{Y!fqKkHDr_jCyei>iPw!0r-(Ynhn?m zcVaFcLq=?_S)X7E?>Ct(6Pa~Eji4uT&h$l%U=;SmiCB)ykUw*qO&k0Zl~_|YDtRU< zp={L1d*f;xhPv;#J$@FWD)nVL@-}L&AE8F}#2!!Lq(F$8D5nOLi<-)ORD}!KB=df=kd7`a zL%paHwRqOp<29%k#!v};in{Kg-LFTD^lN1B=3DHBzuDt0`CZq2IjBnZM3#*iiczil zVmd5PQ-S)$+JHT9KkED?>+h%+x1vsPuDDBVUYraizU5gDmvoSCFcj!Pcp$xi3d0vJ^G46{r#KKs|4d^#H2U z$58`5nH^0$;4%j^g6~l`{)$TM57dbMMm^}6HPw}hAcx;=%tI}%5)5NGQWSFwHOIPX9OU9_xCCFtL#PCP zvff7x@G?%U%HdN9qrKVG(_sMePlM=T;n6Kb0GDe+!nqjKjHDzBQ7 z)&GQr#6aSCi~r8Evz2(CSWc7?ss_s--l7emzuk%9I@@1sorznBQFgx=x7og`pb>iQ zzR-8BPjn1XLChi4Sg-LatG|rUnkdx#m(ZC?@Ec(!6KZb|*@ViuiYOw66MkYYF^JIG zP}Ao$fY8*ann{G(gal@nm1&RvV~XHTf_2G1F7DV!X8}<_tS9u#rsgK92$q8h5=)4o zgx11*Vj}Up^?Kexrqyg9+7LSkHLauFM1a^%Oe53=E90@mYT{jD2r-X%-ZtCL2gv6V zZzI`GB4#Ca1o1kdrr&~Lgnk>;s);p3EupU_8e;Pv(Uf?b@DXY?L^EOq z@fOj9P)kn`-|`>TY$E#EW0lz3_PbhL)-)VXI7F&F2HnhbwvCBCL<=I1c%c<|y|II- zOOq=C5q~(A(fm-#*hnZGsBk&nx>Ls#h{e6btpIgOn~ewX8~dzwC^QEr9XA1QTv!jYgaXet6;U%3hS%6*=& z36%wcVaIF2D=U3<{W2ytXy^oE%i14GnHq8X!%o;8j%8(@>{#R_0jJdQxV-@~@C8Ew zzq{NCuX2a$u4k@q9Gjh!9h>cX6f4XriB;zeZBgWRJdWEH@`XaqnYy~uIR(js3f&8X dJi#9}#s8<^ad=YDI4``w6A6Y**r|+!%zqLvaA^Pl delta 3076 zcmY+`drZ}39LMp;JYXph;zHL>h=xy7O_^V0is_|ob(zUTG)p5O00m+$jDM>ow{ zKg0h+jOQiCRZk2emUx_N!M!)~!PV5qxk!8yW3U;c@d)zgPV*6g7w!HJ4C7vveIXq6 zUMwb}55qARY0vMbQqYUV*c+e3Sgf-9ZRT#gh5EOUF}g#jh7Q~Fqo|I)#a?*Mp10#o z+;>?06}$H^t4R8HQ4}hnf)C4jyivC?T1~^Dzzg}9i?Mv#Hfz4?LH6ny=kaS6rGX!5TYny64}no%9Kpk~&JYVZW=y;C>9s6M-qlm{bI0}nU z9j(KeSdV)DI~()}2=G zp>=f>ftuj})O$nhJ{2{yvB+3m0p5y>t-cQRy`89xHKLdP-TM@@J3mL3-CaQapj^fg zn7~5ndA_*})o~rFp>3$+x(79YCe$YU1SjG_+>X~#8QsqBy!vTEe<MW^M-6P1xe=9t0BT^bSp8m92m4TK{TXUNM^OVjizLJSoIw7SY7hBM z!{MmSG7pn+EvDig3~frR;JyvDwhNNj)mV*p;bF|io}BGLk;8$RLXutrLrBBx~td&#}dyI>j~O+Q;F_tv=ze5 zHD)HNt%r5~H&Iw-55%3s9d=)3DicY>Q+BUo*?ldfu!wkuxS_ieD~TLpvem7`N3Bfu zLqGFN=|6O7%?b&f&n2On|9?Ekt!B-nUCn\n" "Language-Team: LANGUAGE \n" @@ -26,6 +26,12 @@ msgstr "Institució" msgid "Add new user" msgstr "Afegeix un nou usuari" +#: admin/templates/admin_users.html:20 +#, fuzzy +#| msgid "admin" +msgid "admin?" +msgstr "administrador" + #: admin/templates/delete_user.html:33 admin/templates/institution.html:27 #: admin/templates/user.html:27 api/templates/new_token.html:27 #: device/templates/new_annotation.html:39 device/templates/new_device.html:81 @@ -103,6 +109,7 @@ msgid "Previous" msgstr "Anterior" #: api/templates/custom_table.html:91 dashboard/templates/pagination.html:38 +#: login/templates/login.html:39 msgid "Next" msgstr "Següent" @@ -168,6 +175,11 @@ msgstr "Carrega full de càlcul" msgid "Create one" msgstr "Crea un" +#: dashboard/templates/base.html:186 +#| msgid "Search Devices" +msgid "Search your device" +msgstr "Cerca dispositius" + #: dashboard/templates/unassigned_devices.html:15 #: device/templates/details.html:21 device/templates/details.html:150 msgid "Documents" @@ -182,6 +194,36 @@ msgstr "Exportacions" msgid "Annotations" msgstr "Annotations" +#: dashboard/templates/unassigned_devices.html:38 +msgid "select" +msgstr "seleccionar" + +#: dashboard/templates/unassigned_devices.html:41 +msgid "shortid" +msgstr "identificador curt" + +#: dashboard/templates/unassigned_devices.html:44 +msgid "type" +msgstr "tipus" + +#: dashboard/templates/unassigned_devices.html:47 +#| msgid "Manufacturer" +msgid "manufacturer" +msgstr "Fabricant" + +#: dashboard/templates/unassigned_devices.html:50 +#| msgid "Model" +msgid "model" +msgstr "Model" + +#: dashboard/templates/unassigned_devices.html:78 +msgid "Remove" +msgstr "Eliminar" + +#: dashboard/templates/unassigned_devices.html:78 +msgid "Add" +msgstr "Afegir" + #: dashboard/views.py:18 msgid "Unassigned Devices" msgstr "Dispositius no assignats" @@ -194,6 +236,27 @@ msgstr "Dispositius del lot" msgid "Search Devices" msgstr "Cerca dispositius" +#: device/forms.py:24 evidence/templates/ev_details.html:38 +msgid "Type" +msgstr "Tipus" + +#: device/forms.py:25 +msgid "Amount" +msgstr "Quantitat" + +#: device/forms.py:26 +msgid "Custom id" +msgstr "Identificador personalitzat" + +#: device/forms.py:27 user/models.py:10 +msgid "Name" +msgstr "Nom" + +#: device/forms.py:28 device/templates/details.html:119 +#: device/templates/details.html:158 +msgid "Value" +msgstr "Valor" + #: device/templates/details.html:15 msgid "General details" msgstr "Detalls generals" @@ -238,10 +301,6 @@ msgstr "Afegeix una nova anotació" msgid "Key" msgstr "Clau" -#: device/templates/details.html:119 device/templates/details.html:158 -msgid "Value" -msgstr "Valor" - #: device/templates/details.html:122 device/templates/details.html:161 msgid "Created on" msgstr "Creat el" @@ -326,10 +385,6 @@ msgstr "Servidor d'esborrat" msgid "Download File" msgstr "Descarrega fitxer" -#: evidence/templates/ev_details.html:38 -msgid "Type" -msgstr "Tipus" - #: evidence/templates/ev_details.html:41 msgid "Identificator" msgstr "Identificador" @@ -360,12 +415,16 @@ msgstr "Autenticació de dos factors" #: login/templates/2fadmin.html:15 msgid "We have sent you an email with a link that you have to click to log in." -msgstr "T'hem enviat un correu electrònic amb un enllaç que has de fer clic per iniciar sessió." +msgstr "" +"T'hem enviat un correu electrònic amb un enllaç que has de fer clic per " +"iniciar sessió." #: login/templates/2fadmin_email.html:3 login/templates/2fadmin_email.txt:2 #, python-format msgid "You're receiving this email because you tried to access %(site_name)s." -msgstr "Estàs rebent aquest correu electrònic perquè has intentat accedir a %(site_name)s." +msgstr "" +"Estàs rebent aquest correu electrònic perquè has intentat accedir a " +"%(site_name)s." #: login/templates/2fadmin_email.html:7 login/templates/2fadmin_email.txt:4 msgid "Please go to the following page" @@ -408,7 +467,9 @@ msgstr "DeviceHub" msgid "" "You're receiving this email because your user account at %(site)s has been " "activated." -msgstr "Estàs rebent aquest correu electrònic perquè el teu compte d'usuari a %(site)s ha estat activat." +msgstr "" +"Estàs rebent aquest correu electrònic perquè el teu compte d'usuari a " +"%(site)s ha estat activat." #: login/templates/activate_user_email.html:8 #: login/templates/activate_user_email.txt:7 @@ -435,7 +496,16 @@ msgstr "IdHub" msgid "User activation on %(site)s" msgstr "Activació d'usuari a %(site)s" -#: login/templates/login.html:43 login/templates/login2.html:50 +#: login/templates/login.html:12 +msgid "Please enter your email." +msgstr "" + +#: login/templates/login.html:33 +#| msgid "Reset my password" +msgid "Please enter your password!" +msgstr "Restableix la meva contrasenya" + +#: login/templates/login.html:44 login/templates/login2.html:50 msgid "Forgot your password? Click here to recover" msgstr "Has oblidat la teva contrasenya? Fes clic aquí per recuperar-la" @@ -443,6 +513,10 @@ msgstr "Has oblidat la teva contrasenya? Fes clic aquí per recuperar-la" msgid "Log in" msgstr "Inicia sessió" +#: login/templates/login_base.html:65 +msgid "Sign in" +msgstr "Inicia sessió" + #: login/templates/password_reset.html:8 msgid "Password reset" msgstr "Restabliment de contrasenya" @@ -451,7 +525,10 @@ msgstr "Restabliment de contrasenya" msgid "" "Forgotten your password? Enter your email address below, and we'll email " "instructions for setting a new one." -msgstr "Has oblidat la teva contrasenya? Introdueix la teva adreça de correu electrònic a continuació i t'enviarem instruccions per establir-ne una de nova." +msgstr "" +"Has oblidat la teva contrasenya? Introdueix la teva adreça de correu " +"electrònic a continuació i t'enviarem instruccions per establir-ne una de " +"nova." #: login/templates/password_reset.html:21 msgid "Reset my password" @@ -477,7 +554,9 @@ msgstr "Introdueix una nova contrasenya" msgid "" "Please enter your new password twice so we can verify you typed it in " "correctly." -msgstr "Si us plau, introdueix la teva nova contrasenya dues vegades perquè puguem verificar que l'has escrit correctament." +msgstr "" +"Si us plau, introdueix la teva nova contrasenya dues vegades perquè puguem " +"verificar que l'has escrit correctament." #: login/templates/password_reset_confirm.html:21 msgid "Change my password" @@ -491,7 +570,9 @@ msgstr "Restabliment de contrasenya no reeixit" msgid "" "The password reset link was invalid, possibly because it has already been " "used." -msgstr "L'enllaç de restabliment de contrasenya no és vàlid, possiblement perquè ja s'ha utilitzat." +msgstr "" +"L'enllaç de restabliment de contrasenya no és vàlid, possiblement perquè ja " +"s'ha utilitzat." #: login/templates/password_reset_confirm.html:31 msgid "Please request a new password reset." @@ -505,13 +586,19 @@ msgstr "Restabliment de contrasenya enviat" msgid "" "We've emailed you instructions for setting your password, if an account " "exists with the email you entered. You should receive them shortly." -msgstr "T'hem enviat per correu electrònic instruccions per establir la teva contrasenya, si existeix un compte amb el correu electrònic que has introduït. Hauries de rebre-les en breu." +msgstr "" +"T'hem enviat per correu electrònic instruccions per establir la teva " +"contrasenya, si existeix un compte amb el correu electrònic que has " +"introduït. Hauries de rebre-les en breu." #: login/templates/password_reset_done.html:11 msgid "" "If you don't receive an email, please make sure you've entered the address " "you registered with, and check your spam folder." -msgstr "Si no reps un correu electrònic, si us plau, assegura't que has introduït l'adreça amb la qual et vas registrar i revisa la teva carpeta de correu brossa." +msgstr "" +"Si no reps un correu electrònic, si us plau, assegura't que has introduït " +"l'adreça amb la qual et vas registrar i revisa la teva carpeta de correu " +"brossa." #: login/templates/password_reset_email.html:3 #: login/templates/password_reset_email.txt:2 @@ -519,7 +606,9 @@ msgstr "Si no reps un correu electrònic, si us plau, assegura't que has introdu msgid "" "You're receiving this email because you requested a password reset for your " "user account at %(site_name)s." -msgstr "Estàs rebent aquest correu electrònic perquè has sol·licitat un restabliment de contrasenya per al teu compte d'usuari a %(site_name)s." +msgstr "" +"Estàs rebent aquest correu electrònic perquè has sol·licitat un restabliment " +"de contrasenya per al teu compte d'usuari a %(site_name)s." #: login/templates/password_reset_email.html:7 #: login/templates/password_reset_email.txt:4 @@ -571,10 +660,6 @@ msgstr "lots" msgid "New Annotation" msgstr "Nova anotació" -#: user/models.py:10 -msgid "Name" -msgstr "Nom" - #: user/models.py:16 msgid "Logo" msgstr "Logotip" @@ -621,4 +706,4 @@ msgstr "Descarrega un fitxer de configuració" #: user/views.py:25 msgid "Download Settings" -msgstr "Descarrega configuració" \ No newline at end of file +msgstr "Descarrega configuració" diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index 71a9b1e8545db7353a913d6d366fac5ca31ee328..7543fd9db59b6d3b6dde8205b0cd31646cadf84c 100644 GIT binary patch delta 3520 zcmYk-32c*P9LMpeGB#i!P-F*Z$HutkF$9Ky91aH)8B7kj1iH3kg{>WJ2Mm;gfH+XD z;(-wp&?u-xVljdd1;L;~M2JVwso_eDU@%bw26TRZ?E~@2{_p2`ujlzc$J<>i`>j0s zlQZQxL)l7nAwEno=2M*2k^`l-wK2_bA-2IfbmA&(htFd=zJdIixII6F%{f1T?eR3G z;styE5_UHxYOdNFnY6BkyP;kv#8z00Sy*Pz=UGG8k?T*Oa*ZLmo9(EMcB0Axx_(<{EbQ={r2RD^RNZy15q6hM?F6lHGrwen2aBD zaS`U@OUQ`LVe46JN&m*tHknyEY6KmSdnOAtf?n7U`(riEM*hrk4tL-WsHONFHRTRY zlu#OKmN}gJ8Q3BLXG$z)YPW(usUjkiG)!dW!dvQ z9%kZE z)D$;j2fTruu^sDDfCZ?8rsG7cbTa>X;e9R)!S8SoI(a(}OHm^aphmtJnFO;OY1?c> zjeG|x!9A#i-bI=+hfxWCje74KYCwOW26{b8MN^*2LUzJdsD^uD1{R?bDZ>dEMvdqQ zY6gDBY`lm{pb6D+3ZI6|L?zG{wf2MU^|7b~qBE)J#Y$Ae3s9M^MRo9^^%We$`D?fy zFXMb%LY5_X9;aYm)?pZ~Kn>&|_QsQ__O79p;9n%Ms7dGB(q_v>O?56Rp#s!{g{T*Y zqn2PaY6{1po|}Xd9L7wu*LN`;8u?!2k~xC(Wg6}EKat!`8q?iD-+xysnxaC~jS;9s zrl8h#HfoQ|x7XL9mL`U3_)XMvpP&oBL?wI$HL$->i8P^RIE#bs55N}mZ-!7&0>!AQ zFV_vMKsCGo)zD(pjI2bh-3HVYZ$owP7UttoWLud_sP~&tn=+l>_Z;kmOoADP+J9y$ z75!4p$9}j0_238C4I44BTTzLnc1g%Y6+qjZT))jTXAL{*KsHGZ%N~j#wkq>#*EWqBl z9`C_@Q7XNtT(q`f-U~S&h#L7kticH8;W;eEv>wLXkK?Qjs1Y8seuWz88D!s?E2zED zigni4lYvSw+Raw_qefDKTBAo%BMqQNwj9+#1CoQ;g6d!&s)H|3Bf5wcm_fE$vU=1E z#E{iA+b{+9BMC*#!DPjJj_UXuRL7T54ctIAkkK=lc^70bCJ*)bjX@N9v7Uc?mq1s$k;KsE6zxrzQ0>kYTcL~65$+FMtWmHwc;FxFmI;;@k^d+=3YluOF)>EZC zi5Yt%DOkG15_oVOv6y&@Xhx{? zA##a@#3Vw6ZIdVk9Q8>~BSsP`TApN~f9+ls?Pisp#1q5{;%13Z(dN<4zgh00(u2^R z(61i9vWe2wDgwlKVzW*tONctcMGPj2H2zXzJrN_;6891}%fnPw5_5@B1pnU6)5H*B z9-%Kp<<2A~i0z3gd;W-3zyD5RE1^w2pIAynmvNX*q!BmE04f!Pmsm|y5@U!kp)#C! zHc{i34fWmkB3jsM6Hq@+`btzZ$Qi_FVgsRaAMvWXiVU*V!+m*hsc}=h`5Q$~B z-rcgeE*uHgxcuJu$F0vck8N|7v~!0%Rj&GAUC8D2E%JMOu|{W3s()U<s$eMM_nJt3tuJ1fIn5DUne}>$Vt0UxZf`6< z`-Rxy?7YsUULRK~{T{bB7;@G6Lg8S*UF~1WY5YR=_YOxWezf!Sl-3ig-5y_6u-eNL z@c}NMBep4LM(o?1VQotTevjWBa)o_i|B-kg-oD33N9H7dz~v5;sXJu;SC6gE?VVOy tQ%h>@*xuZ%_=()No8_0dD?%g?i1^HS4I!8ugU3%QAyeu#ll`?p^B<|KcMSjl delta 3213 zcmZ|R4@}f$9LMqJoQ3c{~)P}MdS&j2Y9C(SfqJsnmTPu zFKd=&tu@W4)ozX2GM#8ysdN3YtSns?TcmByH7m;ApW|U`Z9U_Aujlvte)s(OKELPm zQrWfHq3@ENI}K$EkwH{DjX8uZH}FB(-`ki3d=-#Nw4Yc=+P zSk!Z=n1ybP#UiA?keNY64_0C?T#l)@%3eQh-HUx`KY+~997c6?%-%nN8t6-m!yoMZ z4!n`;E4IDUUOQP;0^^%RDw;qBYT%Km6&9nCP>$-ri~N~7K9q@Oq%X4#b8r_9#)GJp zUbH$ByT0#6O>87;0pl={@l7EWt-J*Da6Z=KI=l%lU;)AG(eT16GDbxhd zp`PzRt*{f7+BjyFhP_e!48~hp!PH$HPBpS4yFRtUl8@&R&?RBsENH}J%Xt^|0k$uB|oA%>Oc*6 z6_vUkY^2&#P#tEVI?6?@d<-h}9#n=(kU5(Q)bBwPY9YH(-+vSJ4!wujjBh@n!dT`K z>cKcRPCqE=n1>$B#yT8;Pof5FK~1z3b$X7WGI$boe9vPcw&Qlp;rCtl-$rHXIEGaD zo{BQ?8>+)j)XUW?)0iEYhWg^`s1+YZP57j>9rb+&vs0$xPzy;yP1KF*Zk4(aiF~XqX_DPnYR=63p!0pKH zntiBu;0S8VPKBswW@k_<`x&(*f1*~9Jg}>yOr*&SMs+w1)nO%S;?1}i51_Utffq(nYe~pVG?Q3K>cwMX5qWI z7PsNVL0!KiA7VAvnH-79xE?trA#;?he^6SaVtN~q|4sVCxy&`ds5^m5H7lxi=bGLIM@t?}P7thDu6xSHUf3^R?`LR1lV z5Tl5@2)#?)e4a7r45pf@(BQl9l$s!sF9V-mvFq zxt97$VuWpLvUXEPrPyBR=eLxYuJJVmy=adSdgFtH%1B}&p|@NoM8{|ap%O!65Sxii zLNBhHP|@+66RjC@FD|ro9rHVFy_@kKYWc+7!~|j(Q9#^7bQiy^OvcBFWkfBZ^B-=E zUlIN#eqUry!ug)z4Jn@RnUn#M&XfXYq&#(jBi!2mg>YrsGfr2NKM=l}=8lX_KkJCC z@&)`g!AN4}LTA5O-i9h~b)cap=&G)9Ee`~JRlc@}KN8HYafB}nEDKM~$&IYZ@i_8} zd_moA^sNj8UH*W}8}u#l^VOjF-#g*Y-MOy0O^baEuBCxmuSTe9d#S#vsXk!3nweK5 IeNaoxKR+%!00000 diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 281f985..5b77c41 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VERSIÓN DEL PAQUETE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-26 17:35-0300\n" +"POT-Creation-Date: 2024-11-27 02:01-0300\n" "PO-Revision-Date: AÑO-MO-DA HO:MI+ZONE\n" "Last-Translator: NOMBRE COMPLETO \n" "Language-Team: LENGUAJE \n" @@ -26,6 +26,12 @@ msgstr "Institución" msgid "Add new user" msgstr "Agregar nuevo usuario" +#: admin/templates/admin_users.html:20 +#, fuzzy +#| msgid "admin" +msgid "admin?" +msgstr "administrador" + #: admin/templates/delete_user.html:33 admin/templates/institution.html:27 #: admin/templates/user.html:27 api/templates/new_token.html:27 #: device/templates/new_annotation.html:39 device/templates/new_device.html:81 @@ -44,7 +50,8 @@ msgstr "Eliminar" #: admin/templates/institution.html:28 admin/templates/user.html:28 #: api/templates/new_token.html:28 device/templates/new_annotation.html:40 -#: device/templates/new_device.html:82 device/templates/physical_properties.html:118 +#: device/templates/new_device.html:82 +#: device/templates/physical_properties.html:118 #: evidence/templates/ev_details.html:93 #: evidence/templates/ev_eraseserver.html:53 evidence/templates/upload.html:26 #: lot/templates/new_annotation.html:40 lot/templates/new_lot.html:28 @@ -102,6 +109,7 @@ msgid "Previous" msgstr "Anterior" #: api/templates/custom_table.html:91 dashboard/templates/pagination.html:38 +#: login/templates/login.html:39 msgid "Next" msgstr "Siguiente" @@ -136,7 +144,7 @@ msgstr "Dispositivos" #: dashboard/templates/base.html:110 msgid "Unassigned devices" -msgstr "Dispositivos no asignados" +msgstr "Sin asignar" #: dashboard/templates/base.html:118 device/templates/details.html:24 msgid "Lots" @@ -149,7 +157,7 @@ msgstr "Evidencias" #: dashboard/templates/base.html:138 msgid "Upload one" -msgstr "Subir uno" +msgstr "Subir" #: dashboard/templates/base.html:143 msgid "Old evidences" @@ -157,15 +165,20 @@ msgstr "Evidencias antiguas" #: dashboard/templates/base.html:151 msgid "Placeholders" -msgstr "Marcadores de posición" +msgstr "Placeholders" #: dashboard/templates/base.html:156 msgid "Upload Spreadsheet" -msgstr "Subir hoja de cálculo" +msgstr "Importar hoja de cálculo" #: dashboard/templates/base.html:161 msgid "Create one" -msgstr "Crear uno" +msgstr "Crear" + +#: dashboard/templates/base.html:186 +#| msgid "Search Devices" +msgid "Search your device" +msgstr "Buscar dispositivos" #: dashboard/templates/unassigned_devices.html:15 #: device/templates/details.html:21 device/templates/details.html:150 @@ -174,16 +187,44 @@ msgstr "Documentos" #: dashboard/templates/unassigned_devices.html:20 msgid "Exports" -msgstr "Exportaciones" +msgstr "Exportar" #: dashboard/templates/unassigned_devices.html:25 #: device/templates/details.html:111 msgid "Annotations" msgstr "Anotaciones" +#: dashboard/templates/unassigned_devices.html:38 +msgid "select" +msgstr "seleccionar" + +#: dashboard/templates/unassigned_devices.html:41 +msgid "shortid" +msgstr "Id" + +#: dashboard/templates/unassigned_devices.html:44 +msgid "type" +msgstr "Tipo" + +#: dashboard/templates/unassigned_devices.html:47 +msgid "manufacturer" +msgstr "Fabricante" + +#: dashboard/templates/unassigned_devices.html:50 +msgid "model" +msgstr "Modelo" + +#: dashboard/templates/unassigned_devices.html:78 +msgid "Remove" +msgstr "Eliminar" + +#: dashboard/templates/unassigned_devices.html:78 +msgid "Add" +msgstr "Agregar" + #: dashboard/views.py:18 msgid "Unassigned Devices" -msgstr "Dispositivos no asignados" +msgstr "Sin asignar" #: dashboard/views.py:28 msgid "Lot Devices" @@ -193,6 +234,27 @@ msgstr "Dispositivos del lote" msgid "Search Devices" msgstr "Buscar dispositivos" +#: device/forms.py:25 evidence/templates/ev_details.html:38 +msgid "Type" +msgstr "Tipo" + +#: device/forms.py:26 +msgid "Amount" +msgstr "Cantidad" + +#: device/forms.py:27 +msgid "Custom id" +msgstr "Identificador personalizado" + +#: device/forms.py:28 user/models.py:10 +msgid "Name" +msgstr "Nombre" + +#: device/forms.py:29 device/templates/details.html:119 +#: device/templates/details.html:158 +msgid "Value" +msgstr "Valor" + #: device/templates/details.html:15 msgid "General details" msgstr "Detalles generales" @@ -237,10 +299,6 @@ msgstr "Agregar nueva anotación" msgid "Key" msgstr "Clave" -#: device/templates/details.html:119 device/templates/details.html:158 -msgid "Value" -msgstr "Valor" - #: device/templates/details.html:122 device/templates/details.html:161 msgid "Created on" msgstr "Creado el" @@ -325,10 +383,6 @@ msgstr "Servidor de borrado" msgid "Download File" msgstr "Descargar archivo" -#: evidence/templates/ev_details.html:38 -msgid "Type" -msgstr "Tipo" - #: evidence/templates/ev_details.html:41 msgid "Identificator" msgstr "Identificador" @@ -359,12 +413,16 @@ msgstr "Autenticación de dos factores" #: login/templates/2fadmin.html:15 msgid "We have sent you an email with a link that you have to click to log in." -msgstr "Te hemos enviado un correo electrónico con un enlace que debes hacer clic para iniciar sesión." +msgstr "" +"Te hemos enviado un correo electrónico con un enlace que debes hacer clic " +"para iniciar sesión." #: login/templates/2fadmin_email.html:3 login/templates/2fadmin_email.txt:2 #, python-format msgid "You're receiving this email because you tried to access %(site_name)s." -msgstr "Estás recibiendo este correo electrónico porque intentaste acceder a %(site_name)s." +msgstr "" +"Estás recibiendo este correo electrónico porque intentaste acceder a " +"%(site_name)s." #: login/templates/2fadmin_email.html:7 login/templates/2fadmin_email.txt:4 msgid "Please go to the following page" @@ -407,7 +465,9 @@ msgstr "DeviceHub" msgid "" "You're receiving this email because your user account at %(site)s has been " "activated." -msgstr "Estás recibiendo este correo electrónico porque tu cuenta de usuario en %(site)s ha sido activada." +msgstr "" +"Estás recibiendo este correo electrónico porque tu cuenta de usuario en " +"%(site)s ha sido activada." #: login/templates/activate_user_email.html:8 #: login/templates/activate_user_email.txt:7 @@ -434,7 +494,17 @@ msgstr "IdHub" msgid "User activation on %(site)s" msgstr "Activación de usuario en %(site)s" -#: login/templates/login.html:43 login/templates/login2.html:50 +#: login/templates/login.html:12 +msgid "Please enter your email." +msgstr "" + +#: login/templates/login.html:33 +#, fuzzy +#| msgid "Reset my password" +msgid "Please enter your password!" +msgstr "Restablecer mi contraseña" + +#: login/templates/login.html:44 login/templates/login2.html:50 msgid "Forgot your password? Click here to recover" msgstr "¿Olvidaste tu contraseña? Haz clic aquí para recuperarla" @@ -442,6 +512,10 @@ msgstr "¿Olvidaste tu contraseña? Haz clic aquí para recuperarla" msgid "Log in" msgstr "Iniciar sesión" +#: login/templates/login_base.html:65 +msgid "Sign in" +msgstr "Iniciar sesión" + #: login/templates/password_reset.html:8 msgid "Password reset" msgstr "Restablecimiento de contraseña" @@ -450,7 +524,9 @@ msgstr "Restablecimiento de contraseña" msgid "" "Forgotten your password? Enter your email address below, and we'll email " "instructions for setting a new one." -msgstr "¿Olvidaste tu contraseña? Ingresa tu dirección de correo electrónico a continuación y te enviaremos instrucciones para establecer una nueva." +msgstr "" +"¿Olvidaste tu contraseña? Ingresa tu dirección de correo electrónico a " +"continuación y te enviaremos instrucciones para establecer una nueva." #: login/templates/password_reset.html:21 msgid "Reset my password" @@ -476,7 +552,9 @@ msgstr "Ingresa nueva contraseña" msgid "" "Please enter your new password twice so we can verify you typed it in " "correctly." -msgstr "Por favor, ingresa tu nueva contraseña dos veces para que podamos verificar que la escribiste correctamente." +msgstr "" +"Por favor, ingresa tu nueva contraseña dos veces para que podamos verificar " +"que la escribiste correctamente." #: login/templates/password_reset_confirm.html:21 msgid "Change my password" @@ -490,7 +568,9 @@ msgstr "Restablecimiento de contraseña fallido" msgid "" "The password reset link was invalid, possibly because it has already been " "used." -msgstr "El enlace para restablecer la contraseña no es válido, posiblemente porque ya ha sido utilizado." +msgstr "" +"El enlace para restablecer la contraseña no es válido, posiblemente porque " +"ya ha sido utilizado." #: login/templates/password_reset_confirm.html:31 msgid "Please request a new password reset." @@ -504,13 +584,18 @@ msgstr "Restablecimiento de contraseña enviado" msgid "" "We've emailed you instructions for setting your password, if an account " "exists with the email you entered. You should receive them shortly." -msgstr "Te hemos enviado por correo electrónico las instrucciones para establecer tu contraseña, si existe una cuenta con el correo electrónico que ingresaste. Deberías recibirlas en breve." +msgstr "" +"Te hemos enviado por correo electrónico las instrucciones para establecer tu " +"contraseña, si existe una cuenta con el correo electrónico que ingresaste. " +"Deberías recibirlas en breve." #: login/templates/password_reset_done.html:11 msgid "" "If you don't receive an email, please make sure you've entered the address " "you registered with, and check your spam folder." -msgstr "Si no recibes un correo electrónico, por favor asegúrate de haber ingresado la dirección con la que te registraste y revisa tu carpeta de spam." +msgstr "" +"Si no recibes un correo electrónico, por favor asegúrate de haber ingresado " +"la dirección con la que te registraste y revisa tu carpeta de spam." #: login/templates/password_reset_email.html:3 #: login/templates/password_reset_email.txt:2 @@ -518,7 +603,9 @@ msgstr "Si no recibes un correo electrónico, por favor asegúrate de haber ingr msgid "" "You're receiving this email because you requested a password reset for your " "user account at %(site_name)s." -msgstr "Estás recibiendo este correo electrónico porque solicitaste un restablecimiento de contraseña para tu cuenta de usuario en %(site_name)s." +msgstr "" +"Estás recibiendo este correo electrónico porque solicitaste un " +"restablecimiento de contraseña para tu cuenta de usuario en %(site_name)s." #: login/templates/password_reset_email.html:7 #: login/templates/password_reset_email.txt:4 @@ -553,7 +640,7 @@ msgstr "Eliminar lote" #: lot/views.py:58 msgid "Edit lot" msgstr "Editar lote" - + #: lot/views.py:84 msgid "Add to lots" msgstr "Agregar a los lotes" @@ -570,10 +657,6 @@ msgstr "lotes" msgid "New Annotation" msgstr "Nueva anotación" -#: user/models.py:10 -msgid "Name" -msgstr "Nombre" - #: user/models.py:16 msgid "Logo" msgstr "Logotipo" @@ -620,4 +703,4 @@ msgstr "Descargar un archivo de configuración" #: user/views.py:25 msgid "Download Settings" -msgstr "Descargar configuración" \ No newline at end of file +msgstr "Descargar configuración" -- 2.30.2 From 6c6e86cc73457be0b0c71a4580099b83b9137e46 Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Wed, 27 Nov 2024 02:05:29 -0300 Subject: [PATCH 08/20] localization for sign in view --- login/templates/login.html | 32 +++++++++++++++++++++++++------- login/templates/login_base.html | 2 +- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/login/templates/login.html b/login/templates/login.html index a82882e..4825f7d 100644 --- a/login/templates/login.html +++ b/login/templates/login.html @@ -1,5 +1,5 @@ {% extends "login_base.html" %} -{% load i18n static %} +{% load i18n static language_code%} {% block login_content %}
@@ -9,7 +9,7 @@ autocorrect="off" class="form-control textinput textInput" id="yourEmail" required autofocus placeholder="{{ form.username.label }}" {% if form.username.value %}value="{{ form.username.value }}" {% endif %}> -
Please enter your email.
+
{%trans 'Please enter your email.' %}
{% if form.username.errors %}

{{ form.username.errors|striptags }} @@ -30,17 +30,35 @@

-
Please enter your password!
+
{% trans 'Please enter your password!'%}
- -
+ + -