From b65fd9a6dbf81097d6fda2aeef4fb54fe18ed7d4 Mon Sep 17 00:00:00 2001
From: Serge Bibauw <sbibauw@gmail.com>
Date: Fri, 21 Mar 2025 22:28:40 +0100
Subject: [PATCH] Add ES & NL locales to i18n + add translations FR/EN/ES/NL

---
 frontend/src/lang/en.json         | 109 +++++++++--
 frontend/src/lang/es.json         | 114 +++++++++---
 frontend/src/lang/fr.json         |   5 +-
 frontend/src/lang/nl.json         | 288 ++++++++++++++++++++++++++++--
 frontend/src/lib/services/i18n.ts |  10 ++
 5 files changed, 466 insertions(+), 60 deletions(-)

diff --git a/frontend/src/lang/en.json b/frontend/src/lang/en.json
index 7c0efdc7..d3f6b7a0 100644
--- a/frontend/src/lang/en.json
+++ b/frontend/src/lang/en.json
@@ -5,7 +5,8 @@
 		"metadataWarning": "Please complete the post-registration form before using the application.",
 		"admin": {
 			"sessions": "Sessions",
-			"users": "Users"
+			"users": "Users",
+			"studies": "Studies"
 		},
 		"availability": "Availability",
 		"language": "Language",
@@ -148,7 +149,13 @@
 			"toggle": "Participants",
 			"title": "Study Title",
 			"OrganisationUni": "Organization/University",
-			"Address": "Address"
+			"Address": "Address",
+			"description": "Description",
+			"email": "E-mail",
+			"groups": "groups",
+			"questions": "questions",
+			"tests": "tests",
+			"users": "Users"
 		}
 	},
 	"button": {
@@ -165,7 +172,9 @@
 		"save": "Save",
 		"update": "Update",
 		"updated": "Updated!",
-		"continue": "Continue"
+		"continue": "Continue",
+		"delete": "DELETE",
+		"remove": "Withdraw"
 	},
 	"surveys": {
 		"complete": "Thank you for participating!",
@@ -299,20 +308,20 @@
 				"studyD": "Longitudinal study of foreign language tutoring",
 				"title": "Study information",
 				"university": "University",
-				"universityD": "Catholic University of Louvain (UCLouvain)"
+				"universityD": "Université catholique de Louvain (UCLouvain)"
 			},
 			"title": "Information document and informed consent"
 		},
-		"continue": "Aut sint sint et nihil aut. \nQuia nihil eos rerum neque exercitationem molestiae. \nAut ab accusantium consequatur rerum architecto voluptas. \nRepudiandae minima nemo vitae tempore. \nMolestiae rerum aliquid ut fugit eligendi. \nTempore eum id nobis sunt deleniti et non ducimus. \nMaiores perferendis non consequuntur neque nostrum. \nOdio itaque fugiat no. \nLaboriosam sint voluptatem aut placeat et perferendis. \nSed quam voluptatem necessitatibus quia dolorum. \nEius est nihil natus modi natus quisquam ut impedit. \nTempore enim autem laboriosam sequi ipsum quo. \n<bold class=\"font-bold\">Aut voluptatum debitis et aliquam vel rerum facere.</bold>",
 		"error": {
 			"emailRules": "Please enter a valid email address",
 			"emptyFields": "Please complete all fields",
 			"humanity": "Please confirm that you are not a robot",
 			"metadata": "Please check that you have completed all fields correctly",
-			"passwordRules": "Password must contain at least 8 characters"
+			"passwordRules": "Password must contain at least 8 characters",
+			"differentPasswords": "Passwords do not match",
+			"tutor": "Error when selecting the tutor. \nPlease try again."
 		},
 		"signup": "Register",
-		"start": "Aut sint sint et nihil aut. \nQuia nihil eos rerum neque exercitationem molestiae. \nAut ab accusantium consequatur rerum architecto voluptas. \nRepudiandae minima nemo vitae tempore. \nMolestiae rerum aliquid ut fugit eligendi. \nAlias ​​dolorum quia voluptatum veniam harum aut qui et. \nVoluptatibus adipisci il velit assumenda. \nAsperiores accusemus deserunt eveniet adipisci reprehenderit. \nDucimus placeat sit reprehenderit ea eos quam. \nUt facilis quia suscipit officiis odit unde temporibus error. \nNeque sapiente ut similique. \nEius ut sapiente maxime dolor est voluptatem eum. \nVeniam aut sit quo. \nQuibusdam sed numquam et rem. \nTempore eum id nobis sunt deleniti et non ducimus. \nMaiores perferendis non consequuntur neque nostrum. \nOdio itaque fugiat no. \nLaboriosam sint voluptatem aut placeat et perferendis. \nSed quam voluptatem necessitatibus quia dolorum. \nEius est nihil natus modi natus quisquam ut impedit. \nTempore enim autem laboriosam sequi ipsum quo. \n<bold class=\"font-bold\">Aut voluptatum debitis et aliquam vel rerum facere.</bold>",
 		"startButton": "To start",
 		"startFastButton": "Start using the app directly",
 		"tab": {
@@ -325,7 +334,8 @@
 			"information": "Information",
 			"signup": "Registration",
 			"start": "To start",
-			"ScheduleWith": "Schedule a meeting with"
+			"ScheduleWith": "Schedule a meeting with",
+			"test": "Tests"
 		},
 		"welcome": "Welcome to LanguageLab! Before you begin, please fill out the following information. This will allow us to get to know you better and tailor the experience to your needs.",
 		"homeLanguage": "First language",
@@ -339,7 +349,24 @@
 			"female": "A woman",
 			"other": "Other",
 			"na": "Prefer not to say"
-		}
+		},
+		"email": {
+			"note": "",
+			"ph": ""
+		},
+		"humans": "I'm not a robot",
+		"study": {
+			"placeholder": "",
+			"note": ""
+		},
+		"nickname": {
+			"note": "",
+			"ph": ""
+		},
+		"password": {
+			"note": ""
+		},
+		"continueButton": "Continue"
 	},
 	"session": {
 		"downloadAllFeedbacks": "Download all feedback",
@@ -384,10 +411,12 @@
 					"submit": "Error sending questionnaire",
 					"toggle": "Error activating or deactivating session"
 				},
-				"questions[0]": "How many hours of <b>course</b> in {lang} have you taken?",
-				"questions[1]": "How many hours have you <b>watched videos</b> in {lang} (films, series, Youtube...) or <b>listened to content</b> in {lang} (podcasts, radio \n, university courses, etc.)?",
-				"questions[2]": "How many hours have you <b>read texts</b> in {lang} (book, newspaper, comics, websites, etc.)?",
-				"questions[3]": "How many hours have you <b>spoken</b> in {lang} (discussions with friends, family, colleagues, etc.)?",
+				"questions": [
+					"How many hours of <b>courses</b> in {lang} have you taken?",
+					"How many hours have you <b>watched videos</b> in {lang} (films, series, Youtube...) or <b>listened to content</b> in {lang} (podcasts, radio, university courses...)?",
+					"How many hours have you <b>read texts</b> in {lang} (books, newspapers, comics, websites...)?",
+					"How many hours have you <b>spoken</b> in {lang} (discussions with friends, family, colleagues...)?"
+				],
 				"success": "Questionnaire sent, thank you!",
 				"title": "Weekly questionnaire"
 			}
@@ -396,7 +425,9 @@
 	},
 	"tests": {
 		"sendResults": "Send",
-		"sendResultsDone": "Sent"
+		"sendResultsDone": "Sent",
+		"taskTests": "Language tests",
+		"typingTests": "Strike tests"
 	},
 	"timeslots": {
 		"availabilities": "Select your availability to filter available tutors",
@@ -438,6 +469,54 @@
 		"studyDescription": "Research Project (title and/or funding of the project this study is part of)",
 		"addressD": "Place Cardinal Mercier 14, 1348 Louvain-la-Neuve",
 		"contact": "Contact Person/Principal Investigator",
-		"email": "Email of PI/Contact Person"
+		"email": "Email of PI/Contact Person",
+		"addUserButton": "Add a participant",
+		"addUserError": "Error when adding the user",
+		"addUserSuccess": "User added to the study",
+		"andOr": "and/or",
+		"chatDuration": "Duration of sessions (in minutes)",
+		"complete": "Thank you for your participation!",
+		"consentParticipation": "If you agree to participate, you will be invited to participate in online tutorial sessions with a foreign language tutor. \nYou will also be invited to fulfill questionnaires before and after tutoring sessions. \nThe tutorial sessions will be recorded for subsequent analysis. We ask you to plan to carry out a minimum of 8 sessions of one hour of tutorial (therefore 8 hours in total), during a period of 1 to 3 months. \nYou can of course realize more if you wish. \nHowever, you can stop participating in the study at any time.",
+		"consentPrivacy": "The data collected (for example, transcriptions of conversations, test results, striking measures, information on participants such as age or gender) will be processed in a confidential and anonymous manner. \nThey will be kept after their full anonymization and can only be used for scientific or educational purposes. \nThey can possibly be shared with other researchers or teachers, but always in this strictly research or teaching framework.",
+		"consentRights": "Your participation in this study is voluntary. \nYou can decide not to participate in the study at any time without having to justify yourself. \nYou can also request that your data be deleted at any time. \nIf you have any questions or concerns about this study, you can contact the study manager.",
+		"consentStudyData": "Study information.",
+		"create": "Create a new study",
+		"createError": "Error when creating the study",
+		"createMissing": "Please fill all fields",
+		"createTitle": "Create a new study",
+		"created": "Successful study",
+		"deleteConfirm": "Are you sure you want to delete this study? \nThis action is irreversible.",
+		"editTitle": "Modification of the study",
+		"endDate": "End date",
+		"hasToLoggin": "Require that the participants be registered and connected to take the test",
+		"invalidEmail": "Invalide email address",
+		"nbSession": "Number of sessions",
+		"newUser": "New participant",
+		"noChanges": "No modification",
+		"removeUserConfirm": "Are you sure you want to withdraw this participant from the study?",
+		"removeUserError": "Error when the participant is deleted",
+		"removeUserSuccess": "Participant withdrawn from the study",
+		"score": {
+			"error": "Error when calculating the score",
+			"loading": "Calculation in progress ...",
+			"title": "Average result:"
+		},
+		"startDate": "Start date",
+		"study": "Study",
+		"tab": {
+			"code": "Code",
+			"end": "END",
+			"infos": "Information",
+			"study": "Study",
+			"tests": "Tests"
+		},
+		"typingTest": "Activate the typing test",
+		"typingTestDuration": "Duration (seconds)",
+		"typingTestInfoNote": "If no duration is provided the mode \"faster than possible\" will be activated.",
+		"typingTestRepetition": "Number of times to repeat",
+		"typingTestText": "Text",
+		"updateError": "Error when updating the study",
+		"updated": "Successful update study",
+		"userNotFound": "User not found"
 	}
 }
diff --git a/frontend/src/lang/es.json b/frontend/src/lang/es.json
index 69402c8b..916c0db1 100644
--- a/frontend/src/lang/es.json
+++ b/frontend/src/lang/es.json
@@ -24,7 +24,7 @@
 	"chatbox": {
 		"deleteFeedback": "¿Estás seguro de que quieres eliminar estos comentarios? \nEsta acción es irreversible.",
 		"disabled": "Esta sesión sólo es visible para la memoria.",
-		"edited": "enmendado",
+		"edited": "modificado",
 		"history": "Histórico",
 		"placeholder": "Escribe tu mensaje aquí...",
 		"replyingTo": "En respuesta a:",
@@ -85,7 +85,10 @@
 	"login": {
 		"email": "Correo electrónico",
 		"login": "Acceso",
-		"noAccountLink": "Regístrate aquí"
+		"noAccountLink": "Regístrate aquí",
+		"noAccountText": "¿No hay cuenta todavía?",
+		"password": "Contraseña",
+		"title": "Conectar"
 	},
 	"register": {
 		"confirmPassword": "Confirmar Contraseña",
@@ -151,7 +154,9 @@
 			"emailRules": "Por favor, introduce una dirección de correo electrónico válida",
 			"emptyFields": "Por favor llene todos los campos",
 			"humanity": "Por favor confirma que no eres un robot.",
-			"metadata": "Verifique que haya llenado correctamente todos los campos"
+			"metadata": "Verifique que haya llenado correctamente todos los campos",
+			"passwordRules": "La contraseña debe contener al menos 8 caracteres",
+			"tutor": "Error al seleccionar el tutor. \nPor favor intente de nuevo."
 		},
 		"genders": {
 			"female": "una mujer",
@@ -165,16 +170,43 @@
 			"continue": "Continuar",
 			"information": "Información",
 			"signup": "Registro",
-			"start": "Para empezar"
+			"start": "Para empezar",
+			"availabilities": "Disponibilidad",
+			"availableSlots": "Ranuras disponibles:",
+			"study": "Estudiar",
+			"test": "Pruebas",
+			"timeslots": "Tutor"
 		},
 		"welcome": "¡Bienvenido a Languagelab! \nAntes de comenzar, complete la siguiente información. \nEsto nos permitirá conocerlo mejor y adaptar la experiencia a sus necesidades.",
-		"continue": "AUTS SINT y NIHIL AUT. \nQuia Nihil Eos Rerum Neque Exerciseem molestiae. \nAUT AB Accidentium consecuente Rerum Architecto Voluptas. \nRepudiandae Minima Nemo Vitae Tempore. \nMoletiae Rerum Aliquid Ut Fugit Eligendi. \nTempore Eum id nobis Sunt Deleniti y no Ducimus. \nMaiores Perferendis no acordado NOSTRUM. \nOdio Itaque Fugiat no. \nLabriosam Sint Voluptatem Aut Placeat y Perferendis. \nSed Quam Voluptatem Requiritatibus quia dolorum. \nEius es nihil natus modi natus quisquam ut impedit. \nTempore Enim Autem Laboriosam Sequi Ipsum quo. \n<Bold class = \"Font-Bold\"> Aut Voluptatum Debitis y Facera de Vel Rerum.",
 		"continueButton": "continuar con las pruebas",
 		"signup": "Registro",
-		"start": "AUTS SINT y NIHIL AUT. \nQuia Nihil Eos Rerum Neque Exerciseem molestiae. \nAUT AB Accidentium consecuente Rerum Architecto Voluptas. \nRepudiandae Minima Nemo Vitae Tempore. \nMoletiae Rerum Aliquid Ut Fugit Eligendi. \nAlias ​​dolorum quia voluptatum veniam harum auth y. \nVoluptatibus adipisci Ilo Velt Asumenda. \nAsperiores acumus deserunt desarrollo adipisci reprehenderit. \nDucimus Placat Sit Reverseit Ea Eos Quam. \nUT Facilis Quia Dégitiis Odit Unde temporibus Error. \nNeque Sapiente Ut similar. \nEius Ut Sapiente Maxime Dolor es Voluptatem Eum. \nVeniam Aut Quo. \nQuibusdam sed numquam y rem. \nTempore Eum id nobis Sunt Deleniti y no Ducimus. \nMaiores Perferendis no acordado NOSTRUM. \nOdio Itaque Fugiat no. \nLabriosam Sint Voluptatem Aut Placeat y Perferendis. \nSed Quam Voluptatem Requiritatibus quia dolorum. \nEius es nihil natus modi natus quisquam ut impedit. \nTempore Enim Autem Laboriosam Sequi Ipsum quo. \n<Bold class = \"Font-Bold\"> Aut Voluptatum Debitis y Facera de Vel Rerum.",
 		"startButton": "Para empezar",
 		"startFastButton": "Comience a usar la aplicación directamente",
-		"study": "Estudiar"
+		"study": "Estudiar",
+		"ScheduleWith": "Planificar una reunión con",
+		"addAvailability": "Agregar disponibilidad",
+		"confirm": "Confirmar",
+		"endTime": "Tiempo de finalización",
+
+		"noAvailabilities": "Sin disponibilidad proporcionada",
+		"noTutorsAvailable": "No hay tutor disponible actualmente",
+		"notAvailable": "No disponible",
+		"remove": "Borrar",
+		"role": "Role",
+		"roles": {
+			"learner": "Aprendiz",
+			"note": "Seleccione el papel que desea desempeñar en la aplicación",
+			"tutor": "Tutor"
+		},
+		"yourAvailabilities": "Tu disponibilidad",
+		"firstLanguage": "Idioma principal:",
+		"gender": "Eres...",
+		"scheduleMeeting": "Planificar una reunión",
+		"bio": "Biografía corta",
+		"selectWeekday": "Seleccione un día de la semana",
+		"startTime": "Hora de inicio",
+		"weekday": "Día de la semana",
+		"availabilities": "Disponibilidad"
 	},
 	"session": {
 		"downloadAllFeedbacks": "Descargar todos los comentarios",
@@ -219,23 +251,18 @@
 					"submit": "Error al enviar el cuestionario",
 					"toggle": "Error al activar o desactivar sesión"
 				},
-				"questions[0]": "¿Cuántas horas de <b> curso </b> {lang} has seguido?",
-				"questions[1]": "¿Cuántas horas ha visto videos </b> en {lang} (películas, series, youtube ...) o <b> escuchado contenido </b> en {lang} (podcasts, radio radio, cursos universitarios ... .)?",
-				"questions[2]": "¿Cuántas horas has <b>leído textos</b> en {lang} (libros, periódicos, cómics, sitios web, etc.)?",
-				"questions[3]": "¿Cuántas horas has <b>hablado</b> en {lang} (discusiones con amigos, familiares, colegas, etc.)?",
+				"questions": [
+					"¿Cuántas horas de <b>cursos</b> en {lang} has seguido?",
+					"¿Cuántas horas has <b>visto vídeos</b> en {lang} (películas, series, Youtube...) o <b>escuchado contenidos</b> en {lang} (podcasts, radio, cursos universitarios...)?",
+					"¿Cuántas horas has <b>leído textos</b> en {lang} (libros, periódicos, cómics, páginas web...)?",
+					"¿Cuántas horas has <b>hablado</b> en {lang} (conversaciones con amigos, familiares, compañeros...)?"
+				],
 				"success": "Cuestionario enviado, ¡gracias!",
 				"title": "Cuestionario semanal"
 			}
 		},
 		"noTopic": "No hay temas disponibles"
 	},
-	"signup": {
-		"signup": "",
-		"title": "",
-		"confirmPassword": "",
-		"email": "",
-		"language": ""
-	},
 	"studies": {
 		"addUserButton": "Agregar un participante",
 		"addUserError": "Error al agregar usuario",
@@ -258,7 +285,37 @@
 		"study": "Estudiar",
 		"updateError": "Error al actualizar el estudio",
 		"updated": "Estudio de actualización exitoso",
-		"userNotFound": "Usuario no encontrado"
+		"userNotFound": "Usuario no encontrado",
+		"addressD": "Place Cardinal Mercier 14, 1348 Louvain-La-Neuve",
+		"andOr": "y/o",
+		"complete": "¡Gracias por su participación!",
+		"consentParticipation": "Si acepta participar, se le invitará a participar en sesiones de tutoriales en línea con un tutor de idiomas extranjeros. \nTambién se le invitará a cumplir cuestionarios antes y después de las sesiones de tutoría. \nLas sesiones tutoriales se registrarán para el análisis posterior. \nPor supuesto, puede darse cuenta más si lo desea. \nSin embargo, puede dejar de participar en el estudio en cualquier momento.",
+		"consentPrivacy": "Los datos recopilados (por ejemplo, transcripciones de conversaciones, resultados de pruebas, medidas sorprendentes, información sobre participantes como la edad o el género) se procesarán de manera confidencial y anónima. \nSe mantendrán después de su anonimización completa y solo se pueden usar con fines científicos o educativos. \nPosiblemente puedan compartirse con otros investigadores o maestros, pero siempre en este marco estrictamente de investigación o enseñanza.",
+		"consentRights": "Su participación en este estudio es voluntaria. \nPuede decidir no participar en el estudio en ningún momento sin tener que justificarse. \nTambién puede solicitar que sus datos se eliminen en cualquier momento. \nSi tiene alguna pregunta o inquietud sobre este estudio, puede comunicarse con el gerente de estudio.",
+		"consentStudyData": "Información de estudio.",
+		"contact": "Persona de contacto/investigador principal",
+		"editTitle": "Modificación del estudio",
+		"email": "Pi Correo electrónico/persona de contacto",
+		"hasToLoggin": "Requiere que los participantes estén registrados y conectados para tomar la prueba",
+		"nbSession": "Número de sesiones",
+		"score": {
+			"error": "Error al calcular la puntuación",
+			"loading": "Cálculo en progreso ...",
+			"title": "Resultado promedio:"
+		},
+		"studyDescription": "Proyecto de investigación (título y/o financiamiento del proyecto en el que este estudio es parte)",
+		"tab": {
+			"code": "Código",
+			"end": "Fin",
+			"infos": "Información",
+			"study": "Estudiar",
+			"tests": "Pruebas"
+		},
+		"typingTest": "Activar la prueba de tipeo",
+		"typingTestDuration": "Duración (segundos)",
+		"typingTestInfoNote": "Si no se proporciona duración, se activará el modo \"más rápido de lo posible\".",
+		"typingTestRepetition": "Número de veces para repetir",
+		"typingTestText": "Texto"
 	},
 	"surveys": {
 		"birthYear": "¿Cuál es tu año de nacimiento?",
@@ -306,16 +363,19 @@
 	},
 	"tests": {
 		"sendResults": "Enviar",
-		"sendResultsDone": "Enviado"
+		"sendResultsDone": "Enviado",
+		"taskTests": "Pruebas de idiomas",
+		"typingTests": "Pruebas de huelga"
 	},
 	"timeslots": {
 		"availabilities": "Selecciona tu disponibilidad para filtrar los profesores disponibles",
 		"availableTutors": "Tutores disponibles",
 		"calcom": "Enlace a la reserva de calendario",
-		"calcomWarning": "CAL.com Enlace Invalidio",
-		"cesttime": "CE Hour (Bruselas)",
+		"calcomWarning": "Cal.com Enlace Invalidio",
+		"cesttime": "Hora CET (Bruselas)",
 		"noTutors": "No hay tutor disponible. \nPor favor seleccione otras disponibilidades.",
-		"setAvailabilities": "Selecciona tu disponibilidad"
+		"setAvailabilities": "Selecciona tu disponibilidad",
+		"availableSlots": "Ranuras disponibles"
 	},
 	"users": {
 		"actions": "Comportamiento",
@@ -420,7 +480,13 @@
 			"status": "Estado",
 			"title": "Título",
 			"topics": "Temas",
-			"users": "Usuarios"
+			"users": "Usuarios",
+			"Address": "Dirección",
+			"OrganisationUni": "Organización/universidad",
+			"groups": "grupos",
+			"questions": "preguntas",
+			"tests": "pruebas",
+			"toggle": "Participantes"
 		}
 	}
 }
diff --git a/frontend/src/lang/fr.json b/frontend/src/lang/fr.json
index 2f1cd665..1cade0cc 100644
--- a/frontend/src/lang/fr.json
+++ b/frontend/src/lang/fr.json
@@ -246,11 +246,10 @@
 		"birthyear": "Année de naissance",
 		"birthyear.note": "En quelle année êtes-vous né·e ?",
 		"confirmTutor": "Confirmez-vous sélectionner \"{NAME}\" comme tuteur ?",
-		"continue": "Aut sint sint et nihil aut. Quia nihil eos rerum neque exercitationem molestiae. Aut ab accusantium consequatur rerum architecto voluptas. Repudiandae minima nemo vitae tempore. Molestiae rerum aliquid ut fugit eligendi. Tempore eum id nobis sunt deleniti et non ducimus. Maiores perferendis non consequuntur neque nostrum. Odio itaque fugiat non. Laboriosam sint voluptatem aut placeat et perferendis. Sed quam voluptatem necessitatibus quia dolorum. Eius est nihil natus modi natus quisquam ut impedit. Tempore enim autem laboriosam sequi ipsum quo. <bold class=\"font-bold\">Aut voluptatum debitis et aliquam vel rerum facere.</bold>",
+		"continue": "Continuer <!-- TODO: Remove this key -->",
 		"continueButton": "Continuer vers les tests",
 		"startFastButton": "Commencer directement à utiliser l'application",
-		"start": "Aut sint sint et nihil aut. Quia nihil eos rerum neque exercitationem molestiae. Aut ab accusantium consequatur rerum architecto voluptas. Repudiandae minima nemo vitae tempore. Molestiae rerum aliquid ut fugit eligendi. Alias dolorum quia voluptatum veniam harum aut qui et. Voluptatibus adipisci illo velit assumenda. Asperiores accusamus deserunt eveniet adipisci reprehenderit. Ducimus placeat sit reprehenderit ea eos quam. Ut facilis quia suscipit officiis odit unde temporibus error. Neque sapiente ut similique. Eius ut sapiente maxime dolor est voluptatem eum. Veniam aut sit quo. Quibusdam sed numquam et rem. Tempore eum id nobis sunt deleniti et non ducimus. Maiores perferendis non consequuntur neque nostrum. Odio itaque fugiat non. Laboriosam sint voluptatem aut placeat et perferendis. Sed quam voluptatem necessitatibus quia dolorum. Eius est nihil natus modi natus quisquam ut impedit. Tempore enim autem laboriosam sequi ipsum quo. <bold class=\"font-bold\">Aut voluptatum debitis et aliquam vel rerum facere.</bold>",
-		"startButton": "Commencer",
+		"start": "Continue",
 		"study": "Étude",
 		"study.note": "Nom de l'étude à laquelle vous participez",
 		"study.placeholder": "Nom de l'étude"
diff --git a/frontend/src/lang/nl.json b/frontend/src/lang/nl.json
index 29c931f4..32c76106 100644
--- a/frontend/src/lang/nl.json
+++ b/frontend/src/lang/nl.json
@@ -8,7 +8,7 @@
 		"close": "Dichtbij",
 		"continue": "Doorgaan",
 		"create": "Creëren",
-		"delete": "VERWIJDEREN",
+		"delete": "Verwijderen",
 		"login": "Inloggen",
 		"next": "Volgende",
 		"remove": "Terugtrekken",
@@ -16,7 +16,7 @@
 		"sent": "Verstuurd !",
 		"start": "Om te beginnen",
 		"submit": "Versturen",
-		"thank-you": "BEDANKT !",
+		"thank-you": "Bedankt !",
 		"tryit": "Om te proberen",
 		"update": "Om bij te werken",
 		"updated": "Bijgewerkt!"
@@ -85,7 +85,10 @@
 	"login": {
 		"email": "E-mail",
 		"login": "Inloggen",
-		"noAccountLink": "Registreer hier"
+		"noAccountLink": "Registreer hier",
+		"noAccountText": "Nog geen account?",
+		"password": "Wachtwoord",
+		"title": "Verbinden"
 	},
 	"register": {
 		"confirm": "Bevestigen",
@@ -149,24 +152,17 @@
 			},
 			"title": "Informatiedocument en geïnformeerde toestemming"
 		},
-		"continue": "Auts Sint en Nihil Aut. \nQuia nihil eos rerum neque oefeningem molestiae. \nAut Ab Accidentium consequatur Rerum Architecto Voluptas. \nRefudiandae minima nemo vitae tempore. \nMoletiae Rerum aliquid UT Fugit eligendi. \nTempore Eum Id Nobis Sunt Deleniti en niet Ducimus. \nMaiRes Perferendis was niet overeengekomen Nostrum. \nOdio itaque Fugiat nr. \nLabriosam Sint Voluptatem Aut Placeat en Perferendis. \nSed quam voluptatem nodigatiBus quia dolorum. \nEius is Nihil Natus Modi Natus Quisquam Ut Impedit. \nTempore Enim Autem Laboriosam Sequi Ipsum quo. \n<Bold Class = \"Font-Bold\"> Aut Voluptatum Debitis en Aliquam Vel Rerum Facere.",
 		"continueButton": "Ga verder naar testen",
-		"email": {
-			"note": "",
-			"ph": ""
-		},
 		"error": {
 			"differentPasswords": "Wachtwoorden komen niet overeen",
 			"emailRules": "Voer een geldig e-mailadres in",
 			"emptyFields": "Vul alle velden in",
 			"humanity": "Bevestig dat u geen robot bent",
-			"metadata": "Controleer of u alle velden correct hebt gevuld"
-		},
-		"password": {
-			"note": ""
+			"metadata": "Controleer of u alle velden correct hebt gevuld",
+			"passwordRules": "Het wachtwoord moet minimaal 8 tekens bevatten",
+			"tutor": "Fout bij het selecteren van de tutor. \nProbeer het opnieuw."
 		},
 		"signup": "Register",
-		"start": "Auts Sint en Nihil Aut. \nQuia nihil eos rerum neque oefeningem molestiae. \nAut Ab Accidentium consequatur Rerum Architecto Voluptas. \nRefudiandae minima nemo vitae tempore. \nMoletiae Rerum aliquid UT Fugit eligendi. \nAlias ​​Dolorum Quia Voluptatum Veniam Harum Aut welke en. \nVoluptatibus adipisci illo velt Apportenda. \nAsperiores accumus deserunt ontwikkeling adipisci expreesit. \nDucimus placeat zit Reversereit ea eos quam. \nUt facilis quia dégitiis odit unde temporibus error. \nNeque Sapiente UT vergelijkbaar. \nEius ut sapiente maxime dolor is Voluptatem Eum. \nVeniam Aut Quo. \nQuibusdam sed Numquam en Rem. \nTempore Eum Id Nobis Sunt Deleniti en niet Ducimus. \nMaiRes Perferendis was niet overeengekomen Nostrum. \nOdio itaque Fugiat nr. \nLabriosam Sint Voluptatem Aut Placeat en Perferendis. \nSed quam voluptatem nodigatiBus quia dolorum. \nEius is Nihil Natus Modi Natus Quisquam Ut Impedit. \nTempore Enim Autem Laboriosam Sequi Ipsum quo. \n<Bold Class = \"Font-Bold\"> Aut Voluptatum Debitis en Aliquam Vel Rerum Facere.",
 		"startButton": "Om te beginnen",
 		"startFastButton": "Begin direct met het gebruiken van de app",
 		"tab": {
@@ -174,8 +170,28 @@
 			"information": "Informatie",
 			"signup": "Registratie",
 			"start": "Om te beginnen",
-			"study": "Studie"
-		}
+			"study": "Studie",
+			"ScheduleWith": "Plan een ontmoeting met",
+			"availabilities": "Beschikbaarheid",
+			"availableSlots": "Beschikbare slots:",
+			"consent": "Toestemming",
+			"test": "Tests"
+		},
+		"ScheduleWith": "Plan een ontmoeting met",
+		"addAvailability": "Voeg beschikbaarheid toe",
+		"endTime": "Eindtijd",
+		"linkNotAvailable": "Link niet beschikbaar",
+		"loadingTutors": "Tutors laden ...",
+		"nickname": {
+			"note": "",
+			"ph": ""
+		},
+		"noAvailabilities": "Geen beschikbaarheid verstrekt",
+		"noTutorsAvailable": "Er is momenteel geen tutor beschikbaar",
+		"notAvailable": "Niet beschikbaar",
+		"remove": "VERWIJDEREN",
+		"scheduleMeeting": "Plan een vergadering",
+		"yourAvailabilities": "Uw beschikbaarheid"
 	},
 	"session": {
 		"downloadAllFeedbacks": "Download alle feedbacks",
@@ -220,10 +236,246 @@
 					"submit": "Fout bij verzenden vragenlijst",
 					"toggle": "Fout bij het activeren of deactiveren van de sessie"
 				},
-				"questions[0]": "Hoeveel uur <b>cursus</b> in het {lang} heeft u gevolgd?",
-				"questions[1]": "Hoeveel uur heb je video's bekeken </b> in {lang} (films, serie, youtube ...) of <b> luisterde naar inhoud </b> in {lang} (podcasts, radio -radio, universitaire cursussen .. .)?",
-				"questions[2]": "Hoeveel uur heeft u <b>teksten gelezen</b> in het {lang} (boek, krant, strips, websites, enz.)?"
+				"questions": [
+					"Hoeveel uur <b>cursussen</b> in {lang} heb je gevolgd?",
+					"Hoeveel uur heb je <b>video's</b> gekeken in {lang} (films, series, Youtube...) of <b>geluisterd naar inhoud</b> in {lang} (podcasts, radio, universitaire cursussen...)?",
+					"Hoeveel uur heb je <b>teksten</b> gelezen in {lang} (boeken, kranten, strips, websites...)?",
+					"Hoeveel uur heb je <b>gesproken</b> in {lang} (discussies met vrienden, familie, collega's...)?"
+				],
+				"success": "Vragenlijst verzonden, bedankt!",
+				"title": "Wekelijkse vragenlijst"
 			}
+		},
+		"noTopic": "Geen onderwerp beschikbaar"
+	},
+	"signup": {
+		"confirmPassword": "",
+		"email": ""
+	},
+	"studies": {
+		"addUserButton": "Voeg een deelnemer toe",
+		"addUserError": "Fout bij het toevoegen van de gebruiker",
+		"addUserSuccess": "Gebruiker toegevoegd aan de studie",
+		"addressD": "Plaats kardinaal Mercier 14, 1348 Louvain-la-neuve",
+		"andOr": "en/of",
+		"chatDuration": "Duur van sessies (in minuten)",
+		"complete": "Bedankt voor je deelname!",
+		"consentParticipation": "Als u ermee instemt om deel te nemen, wordt u uitgenodigd om deel te nemen aan online zelfstudiesessies met een tutor in vreemde talen. \nU wordt ook uitgenodigd om vragenlijsten voor en na tutoring -sessies uit te voeren. \nDe tutorialsessies worden opgenomen voor de latere analyse. \nJe kunt je natuurlijk meer realiseren als je dat wilt. \nU kunt echter op elk gewenst moment stoppen met deelname aan het onderzoek.",
+		"consentPrivacy": "De verzamelde gegevens (bijvoorbeeld transcripties van gesprekken, testresultaten, opvallende maatregelen, informatie over deelnemers zoals leeftijd of geslacht) zullen op een vertrouwelijke en anonieme manier worden verwerkt. \nZe zullen worden bewaard na hun volledige anonimisering en kunnen alleen worden gebruikt voor wetenschappelijke of educatieve doeleinden. \nZe kunnen mogelijk worden gedeeld met andere onderzoekers of leraren, maar altijd in dit strikt onderzoeks- of onderwijskader.",
+		"consentRights": "Uw deelname aan dit onderzoek is vrijwillig. U kunt besluiten om niet op elk gewenst moment deel te nemen aan het onderzoek zonder uzelf te rechtvaardigen. U kunt ook vragen om uw gegevens op elk gewenst moment te verwijderen. Als u vragen of zorgen over deze studie hebt, kunt u contact opnemen met de studiemanager.",
+		"consentStudyData": "Studie -informatie.",
+		"contact": "Contactpersoon/hoofdonderzoeker",
+		"create": "Creëer een nieuwe studie",
+		"createError": "Fout bij het maken van de studie",
+		"createMissing": "Vul alle velden in",
+		"createTitle": "Creëer een nieuwe studie",
+		"created": "Succesvolle studie",
+		"deleteConfirm": "Weet je zeker dat je deze studie wilt verwijderen? Deze actie is onomkeerbaar.",
+		"editTitle": "Aanpassing van de studie",
+		"email": "PI -e -mail/contactpersoon",
+		"endDate": "Einddatum",
+		"hasToLoggin": "Eisen dat de deelnemers worden geregistreerd en verbonden om de test af te leggen",
+		"invalidEmail": "Invalide e -mailadres",
+		"nbSession": "Aantal sessies",
+		"newUser": "Nieuwe deelnemer",
+		"noChanges": "Geen aanpassing",
+		"removeUserConfirm": "Weet u zeker dat u deze deelnemer uit de studie wilt opnemen?",
+		"removeUserError": "Fout wanneer de deelnemer wordt verwijderd",
+		"removeUserSuccess": "Deelnemer teruggetrokken uit het onderzoek",
+		"score": {
+			"error": "Fout bij het berekenen van de score",
+			"loading": "Rekening in uitvoering ...",
+			"title": "Gemiddeld resultaat:"
+		},
+		"startDate": "Startdatum",
+		"study": "Studie",
+		"studyDescription": "Onderzoeksproject (titel en/of financiering van het project waarin deze studie deel uitmaakt)",
+		"tab": {
+			"code": "Code",
+			"end": "Einde",
+			"infos": "Informatie",
+			"study": "Studie",
+			"tests": "Tests"
+		},
+		"typingTest": "Activeer de typetest",
+		"typingTestDuration": "Duur (seconden)",
+		"typingTestInfoNote": "Als er geen duur wordt verstrekt, wordt de modus \"sneller dan mogelijk\" geactiveerd.",
+		"typingTestRepetition": "Aantal keren om te herhalen",
+		"typingTestText": "Tekst",
+		"updateError": "Fout bij het bijwerken van de studie",
+		"updated": "Succesvolle updatestudie",
+		"userNotFound": "Gebruiker niet gevonden"
+	},
+	"surveys": {
+		"birthYear": "Wat is uw geboortejaar?",
+		"code": "Uw code:",
+		"codeIndication": "De instructeur moet u een persoonlijke code hebben gegeven.",
+		"complete": "Bedankt voor je deelname!",
+		"consent": {
+			"intro": "U wordt uitgenodigd om deel te nemen aan een wetenschappelijk onderzoek om vocabulaire tests te ontwerpen, valideren en toepassen.",
+			"ok": "Ik ga ermee akkoord om deel te nemen aan het onderzoek zoals hierboven beschreven.",
+			"participation": "Wat betreft uw deelname?",
+			"participationD": "Als u ermee instemt deel te nemen, hoeft u deze vragenlijst alleen maar te beantwoorden en mogelijk een andere test, indien aangegeven door de persoon die de test beheert.",
+			"privacy": "Hoe worden uw gegevens verwerkt en bewaard?",
+			"privacyD": "De verzamelde gegevens (uw antwoorden op de verschillende vragen) worden op een vertrouwelijke en anonieme manier verwerkt. \nZe zullen worden bewaard na hun volledige anonimisering en kunnen alleen worden gebruikt voor wetenschappelijke of educatieve doeleinden. \nZe kunnen mogelijk worden gedeeld met andere onderzoekers of leraren, maar altijd in dit strikt onderzoeks- of onderwijskader.",
+			"rights": "Wat zijn uw rechten? Vrijwillige deelname en mogelijke terugtrekking",
+			"rightsD": "Uw deelname aan dit onderzoek is vrijwillig. \nU kunt besluiten om niet op elk gewenst moment deel te nemen aan het onderzoek zonder uzelf te rechtvaardigen. \nU kunt ook vragen om uw gegevens op elk gewenst moment te verwijderen. \nAls u vragen of zorgen over deze studie hebt, kunt u contact opnemen met de studiemanager, Serge Bibauw, op het volgende adres:",
+			"title": "Informatie over geïnformeerde studie- en toestemming"
+		},
+		"education": {
+			"Bachelor": "Vrijgezel",
+			"Master": "Meester of hoger diploma",
+			"NoEducation": "Geen",
+			"NonUni": "Superieure niet -academisch",
+			"PrimarySchool": "Basisschool",
+			"SecondarySchool": "Middelbare school",
+			"title": "Wat is het hoogste kwaliteit, diploma of studieniveau dat je hebt?"
+		},
+		"example": "Voorbeeld",
+		"gender": "Wat voor soort identificeer je?",
+		"genders": {
+			"female": "Een vrouw",
+			"male": "Een man",
+			"na": "Ik geef er de voorkeur aan om niet te antwoorden",
+			"other": "Ander"
+		},
+		"homeLanguage": "Eerste taal",
+		"introduction": "Dit is een vragenlijst.",
+		"invalidCode": "Ongeldige code",
+		"invalidEmail": "Invalide e -mailadres",
+		"loginEmail": "Gebruik een e-mailadres",
+		"loginUser": "Maak verbinding via een gebruikersaccount",
+		"loginWarning": "Om uw voortgang te onthouden, moet u worden geverifieerd om toegang te krijgen tot deze vragenlijst. \nAls u een gebruikersaccount heeft, maakt u verbinding. \nAnders kunt u <a class = \"link\" href = \"/register\"> register </a> of doorgaan met een e -mailadres.",
+		"otherLanguage": "Is er een andere taal waarin u relatief vloeiend bent?",
+		"otherLanguageNote": "(Als u vloeiend bent in meerdere andere talen, buiten uw doeltaal en uw eerste taal, selecteer dan degene die het dichtst bij uw doeltaal staat of dat lijkt u het meest te helpen bij het leren van uw doeltaal.)",
+		"score": "Score:"
+	},
+	"tests": {
+		"sendResults": "",
+		"sendResultsDone": "",
+		"taskTests": "Taaltests",
+		"typingTests": "Strike -tests"
+	},
+	"timeslots": {
+		"availabilities": "Selecteer uw beschikbaarheid om de beschikbare docenten te filteren",
+		"availableSlots": "Beschikbare slots",
+		"availableTutors": "Beschikbare docenten",
+		"calcom": "Link naar agenda -boeking",
+		"calcomWarning": "Cal.com Link Invalide",
+		"cesttime": "CET Tijd (Brussel)",
+		"noTutors": "Geen tutor beschikbaar. \nSelecteer andere beschikbaarheid.",
+		"setAvailabilities": "Selecteer uw beschikbaarheid"
+	},
+	"users": {
+		"actions": "Acties",
+		"availability": "Beschikbaarheid",
+		"category": "Categorie",
+		"email": "E-mail",
+		"gender": "Geslacht",
+		"genders": {
+			"female": "Vrouwen",
+			"male": "Man",
+			"na": "Ik geef er de voorkeur aan om niet te antwoorden",
+			"other": "Ander"
+		},
+		"isActive": "Actief",
+		"nickname": "Naam",
+		"type": {
+			"0": "Admin",
+			"1": "Tutor",
+			"2": "Leerling",
+			"admin": "Admin",
+			"admins": "Admin(s)",
+			"student": "Leerling",
+			"students": "Leerling(en)",
+			"tutor": "Tutor",
+			"tutors": "Tutor(en)"
+		}
+	},
+	"utils": {
+		"bool": {
+			"false": "Nee",
+			"true": "Ja"
+		},
+		"days": {
+			"0": "Maandag",
+			"1": "Dinsdag",
+			"2": "Woensdag",
+			"3": "Donderdag",
+			"4": "Vrijdag",
+			"5": "Zaterdag",
+			"6": "Zondag",
+			"friday": "Vrijdag",
+			"monday": "Maandag",
+			"saturday": "Zaterdag",
+			"sunday": "Zondag",
+			"thursday": "Donderdag",
+			"tuesday": "Dinsdag",
+			"wednesday": "Woensdag"
+		},
+		"language": {
+			"en": "Engels",
+			"eng": "Engels",
+			"fr": "Frans",
+			"fra": "Frans"
+		},
+		"month": {
+			"april": "april",
+			"august": "augustus",
+			"december": "december",
+			"february": "februari",
+			"january": "januari",
+			"july": "juli",
+			"june": "juni",
+			"march": "maart",
+			"may": "mei",
+			"november": "november",
+			"october": "oktober",
+			"september": "september"
+		},
+		"past": {
+			"day": "Er is {n, meervoud, één {",
+			"hour": "Er is {n, meervoud, één {",
+			"justNow": "Minder dan een uur geleden",
+			"month": "Er is {n, meervoud, één {",
+			"today": "Vandaag",
+			"year": "Er is {n, meervoud, één {",
+			"yesterday": "Gisteren"
+		},
+		"shortMonth": {
+			"april": "apr.",
+			"august": "aug.",
+			"december": "dec.",
+			"february": "feb.",
+			"january": "jan.",
+			"july": "jul.",
+			"june": "jun.",
+			"march": "maa.",
+			"may": "mei",
+			"november": "nov.",
+			"october": "okt.",
+			"september": "sep."
+		},
+		"words": {
+			"Address": "Adres",
+			"OrganisationUni": "Organisatie/universiteit",
+			"actions": "Acties",
+			"date": "Datum",
+			"description": "Beschrijving",
+			"email": "E-mail",
+			"finished": "Afgerond",
+			"groups": "groepen",
+			"inProgress": "In uitvoering",
+			"messages": "Berichten",
+			"participants": "Deelnemers",
+			"programed": "Geprogrammeerd",
+			"questions": "vragen",
+			"status": "Status",
+			"tests": "tests",
+			"title": "Studietitel",
+			"toggle": "Deelnemers",
+			"topics": "Onderwerpen",
+			"users": "Gebruikers"
 		}
 	}
 }
diff --git a/frontend/src/lib/services/i18n.ts b/frontend/src/lib/services/i18n.ts
index f5e350b0..d2b9e850 100644
--- a/frontend/src/lib/services/i18n.ts
+++ b/frontend/src/lib/services/i18n.ts
@@ -13,10 +13,20 @@ const config: Config = {
 			key: '',
 			loader: async () => (await import('../../lang/en.json')).default
 		},
+		{
+			locale: 'es',
+			key: '',
+			loader: async () => (await import('../../lang/es.json')).default
+		},
 		{
 			locale: 'fr',
 			key: '',
 			loader: async () => (await import('../../lang/fr.json')).default
+		},
+		{
+			locale: 'nl',
+			key: '',
+			loader: async () => (await import('../../lang/nl.json')).default
 		}
 	],
 	fallbackLocale: 'fr'
-- 
GitLab