Add language assistant settings and related features: Introduce new routes and controller methods for managing language assistant settings, including retrieval and saving of LLM configurations. Update navigation structure to include language assistant options. Enhance vocab course model to support additional learning attributes such as learning goals and core patterns. Update SQL scripts to reflect new database schema changes for vocab courses. Improve localization for language assistant settings in German and English.
This commit is contained in:
@@ -61,7 +61,8 @@
|
||||
"flirt": "Flirt",
|
||||
"interests": "Interessen",
|
||||
"notifications": "Notificaciones",
|
||||
"sexuality": "Sexualidad"
|
||||
"sexuality": "Sexualidad",
|
||||
"languageAssistant": "Asistente de idiomas"
|
||||
},
|
||||
"m-administration": {
|
||||
"contactrequests": "Solicitudes de contacto",
|
||||
|
||||
@@ -150,6 +150,27 @@
|
||||
"changeaction": "Actualizar datos de usuario",
|
||||
"oldpassword": "Contraseña anterior (obligatoria)"
|
||||
},
|
||||
"languageAssistant": {
|
||||
"eyebrow": "Ajustes",
|
||||
"title": "Asistente de idiomas e IA",
|
||||
"intro": "Aquí puedes guardar tu propio acceso API (p. ej. OpenAI) para funciones del curso de idiomas. La clave se guarda cifrada en el servidor; necesitas una cuenta en el proveedor.",
|
||||
"linkSignup": "Crear cuenta en OpenAI (nueva pestaña)",
|
||||
"linkApiKeys": "Gestionar claves API de OpenAI (nueva pestaña)",
|
||||
"enabled": "Permitir uso para funciones de idioma",
|
||||
"baseUrl": "URL base de la API (opcional)",
|
||||
"baseUrlPlaceholder": "Vacío = predeterminado (OpenAI). Para Ollama p. ej. http://127.0.0.1:11434/v1",
|
||||
"model": "Nombre del modelo",
|
||||
"apiKey": "Clave API",
|
||||
"apiKeyHint": "Déjalo vacío para conservar la clave guardada.",
|
||||
"apiKeyPlaceholderNew": "Pegar nueva clave",
|
||||
"apiKeyPlaceholderHasKey": "La clave guardada termina en …{last4} — vacío = conservar",
|
||||
"apiKeyPlaceholderClear": "Se borrará al guardar con «Eliminar clave» abajo",
|
||||
"clearKey": "Eliminar clave API guardada",
|
||||
"save": "Guardar",
|
||||
"saved": "Ajustes guardados.",
|
||||
"saveError": "No se pudo guardar.",
|
||||
"confirmClear": "¿Eliminar realmente la clave API?"
|
||||
},
|
||||
"interests": {
|
||||
"title": "Intereses",
|
||||
"new": "Nuevo interés",
|
||||
|
||||
@@ -367,9 +367,16 @@
|
||||
"learn": "Aprender",
|
||||
"exercises": "Prueba del capítulo",
|
||||
"learnVocabulary": "Aprender vocabulario",
|
||||
"lessonOverviewText": "Esta lección combina vocabulario, patrones, pequeñas explicaciones gramaticales y práctica activa.",
|
||||
"lessonDescription": "Descripción de la lección",
|
||||
"culturalNotes": "Notas culturales",
|
||||
"grammarExplanations": "Explicaciones gramaticales",
|
||||
"grammarImpulse": "Impulso gramatical",
|
||||
"learningGoals": "Objetivos",
|
||||
"corePatterns": "Patrones básicos",
|
||||
"speakingTasks": "Tareas orales",
|
||||
"speakingPrompt": "Tarea oral",
|
||||
"practicalTasks": "Tareas prácticas",
|
||||
"importantVocab": "Términos importantes",
|
||||
"vocabInfoText": "Estos términos se usarán en la prueba. Apréndelos aquí antes de pasar a la prueba del capítulo.",
|
||||
"noVocabInfo": "Lee la descripción de arriba y las explicaciones de la prueba para aprender los términos más importantes.",
|
||||
@@ -390,12 +397,31 @@
|
||||
"goToNextLesson": "¿Pasar a la siguiente lección?",
|
||||
"allLessonsCompleted": "¡Todas las lecciones completadas!",
|
||||
"startExercises": "Ir a la prueba del capítulo",
|
||||
"lessonTypeLabel": "Tipo de lección",
|
||||
"recommendedDuration": "Duración recomendada",
|
||||
"exerciseLoad": "Carga de ejercicios",
|
||||
"exercisesShort": "ejercicios",
|
||||
"durationFlexible": "Flexible",
|
||||
"durationMinutes": "{minutes} minutos",
|
||||
"lessonTypeVocab": "Vocabulario",
|
||||
"lessonTypeGrammar": "Gramática",
|
||||
"lessonTypeConversation": "Conversación",
|
||||
"lessonTypeCulture": "Cultura",
|
||||
"lessonTypeReview": "Repaso",
|
||||
"correctAnswer": "Respuesta correcta",
|
||||
"alternatives": "Respuestas alternativas",
|
||||
"notStarted": "No empezado",
|
||||
"continueCurrentLesson": "Continuar lección actual",
|
||||
"previousLessonRequired": "Primero completa la lección anterior",
|
||||
"lessonNumberShort": "#",
|
||||
"buildSentencePlaceholder": "Construye aquí tu frase",
|
||||
"completeDialogPlaceholder": "Completa la línea que falta en el diálogo",
|
||||
"situationalResponsePlaceholder": "Formula tu respuesta a la situación",
|
||||
"patternDrillPlaceholder": "Crea una frase adecuada con el patrón",
|
||||
"modelSentence": "Frase modelo",
|
||||
"modelDialogLine": "Línea posible del diálogo",
|
||||
"modelResponse": "Respuesta posible",
|
||||
"patternPrompt": "Patrón",
|
||||
"readingAloudInstruction": "Lee el texto en voz alta. Haz clic en 'Iniciar grabación' y comienza a hablar.",
|
||||
"speakingFromMemoryInstruction": "Habla de memoria. Usa las palabras clave mostradas.",
|
||||
"startRecording": "Iniciar grabación",
|
||||
|
||||
Reference in New Issue
Block a user