Files
yourpart3/frontend/src/i18n/locales/es/socialnetwork.json
Torsten Schulz (local) e17f0cdce0
All checks were successful
Deploy to production / deploy (push) Successful in 2m51s
feat(vocab): enhance vocabulary exercises and localization support
- Updated core patterns in BISAYA_PHASE5_DIDACTICS to include gloss translations for better understanding.
- Refactored vocabulary exercise generation in update-food-care-exercises.js to improve randomization and user engagement.
- Added new exercise types and improved question structures for vocabulary lessons, enhancing the learning experience.
- Enhanced localization files for German, English, and Spanish to support new exercise features and improve user guidance.
- Updated VocabLessonView to incorporate sequential navigation for exercises, providing a more structured learning flow.
2026-04-07 09:09:43 +02:00

776 lines
45 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"socialnetwork": {
"usersearch": {
"kicker": "Búsqueda en la comunidad",
"intro": "Encuentra contactos adecuados en la comunidad por nombre, edad y género.",
"ageSeparator": "hasta",
"resultsCount": "{count} resultados",
"openProfile": "Abrir perfil",
"title": "Búsqueda de usuarios",
"username": "Nombre de usuario",
"age_from": "Edad desde",
"age_to": "bis",
"gender": "Género",
"search_button": "Buscar",
"no_results": "No se han encontrado resultados",
"results_title": "Resultados de la búsqueda:",
"result": {
"nick": "Apodo",
"gender": "Género",
"age": "Edad"
}
},
"profile": {
"pretitle": "Cargando datos. Por favor espera...",
"error_title": "Usuario no encontrado",
"title": "Profil von <username>",
"tab": {
"general": "General",
"sexuality": "Sexualidad",
"images": "Galería",
"guestbook": "Libro de visitas"
},
"values": {
"bool": {
"true": "Sí",
"false": "No"
},
"smokes": {
"never": "Nunca",
"socially": "Socialmente",
"often": "A menudo",
"daily": "A diario"
},
"drinks": {
"never": "Nunca",
"socially": "Socialmente",
"often": "A menudo",
"daily": "A diario"
},
"interestedInGender": {
"male": "hombres",
"female": "mujeres"
},
"sexualpreference": {
"straight": "Heterosexual",
"gay": "Homosexual",
"bi": "Bisexual",
"pan": "Pansexual",
"asexual": "Asexual"
},
"pubichair": {
"none": "Ninguno",
"short": "Corto",
"medium": "Medio",
"long": "Largo",
"hairy": "Natural",
"waxed": "Depilado",
"landingstrip": "Franja",
"other": "Otro",
"bikinizone": "Zona bikini"
},
"gender": {
"male": "Masculino",
"female": "Femenino",
"transmale": "Hombre trans",
"transfemale": "Mujer trans",
"nonbinary": "No binario"
},
"language": {
"de": "Alemán",
"en": "Inglés"
},
"eyecolor": {
"blue": "Azul",
"green": "Verde",
"brown": "Marrón",
"black": "Negro",
"grey": "Gris",
"hazel": "Avellana",
"amber": "Ámbar",
"red": "Rojo",
"other": "Otro"
},
"haircolor": {
"black": "Negro",
"brown": "Castaño",
"blonde": "Rubio",
"red": "Rojo",
"grey": "Gris",
"white": "Blanco",
"other": "Otro"
},
"hairlength": {
"short": "Corto",
"medium": "Medio",
"long": "Largo",
"bald": "Calvo",
"other": "Otro"
},
"skincolor": {
"light": "Clara",
"medium": "Media",
"dark": "Oscura",
"other": "Otra"
},
"freckles": {
"much": "Muchas",
"medium": "Medias",
"less": "Pocas",
"none": "Ninguna"
}
},
"guestbook": {
"showInput": "Mostrar nueva entrada",
"hideInput": "Ocultar nueva entrada",
"imageUpload": "Imagen",
"submit": "Enviar entrada",
"noEntries": "No se han encontrado entradas",
"entryImageAlt": "Imagen de la entrada del libro de visitas"
},
"interestedInGender": "Interesado/a en",
"hasChildren": "Tiene hijos",
"smokes": "Fuma",
"drinks": "Alcohol",
"willChildren": "Quiere hijos",
"sexualpreference": "Orientación sexual",
"pubichair": "Vello púbico",
"penislength": "Longitud del pene",
"brasize": "Talla de sujetador",
"piercings": "Piercings",
"tattoos": "Tatuajes",
"language": "Idioma",
"gender": "Género",
"eyecolor": "Color de ojos",
"haircolor": "Color de pelo",
"hairlength": "Longitud del pelo",
"freckles": "Pecas",
"skincolor": "Color de piel",
"birthdate": "Fecha de nacimiento",
"age": "Edad",
"town": "Ciudad",
"bodyheight": "Altura",
"weight": "Peso"
},
"gallery": {
"kicker": "Imágenes y carpetas",
"intro": "Organiza tu propio contenido, controla su visibilidad y ordénalo en carpetas.",
"title": "Galería",
"folders": "Carpetas",
"create_folder": "Crear carpeta",
"upload": {
"title": "Subir imagen",
"image_title": "Título",
"image_file": "Archivo",
"visibility": "Visible para",
"upload_button": "Subir",
"selectvisibility": "Selecciona"
},
"images": "Imágenes",
"visibility": {
"everyone": "Todos",
"friends": "Amigos",
"adults": "Adultos",
"friends-and-adults": "Amigos y adultos",
"selected-users": "Usuarios seleccionados",
"none": "Nadie"
},
"create_folder_dialog": {
"title": "Crear carpeta",
"parent_folder": "Se crea en",
"folder_title": "Nombre de la carpeta",
"visibility": "Visible para",
"select_visibility": "Selecciona"
},
"noimages": "Actualmente no hay imágenes en esta carpeta",
"imagedialog": {
"image_title": "Título",
"edit_visibility": "Visible para",
"save_changes": "Guardar cambios",
"close": "Cerrar",
"edit_visibility_placeholder": "Selecciona"
},
"delete_folder_confirmation_title": "Eliminar carpeta",
"delete_folder_confirmation_message": "¿De verdad quieres eliminar la carpeta '%%folderName%%'?",
"edit_image_dialog": {
"title": "Editar datos de la imagen"
},
"show_image_dialog": {
"title": "Imagen"
},
"imagePreviewAlt": "Vista previa de la imagen",
"imageLoadingAlt": "Cargando imagen"
},
"guestbook": {
"kicker": "Libro de visitas",
"intro": "Mensajes, comentarios y pequeños vistazos desde tu red.",
"title": "Libro de visitas",
"prevPage": "Atrás",
"nextPage": "Siguiente",
"page": "Página"
},
"diary": {
"kicker": "Entradas personales",
"intro": "Pensamientos, notas y pequeñas actualizaciones en una vista tranquila y personal.",
"placeholder": "Escribe tu entrada del diario...",
"title": "Diario",
"noEntries": "Aún no has escrito ninguna entrada en el diario.",
"newEntry": "Nueva entrada",
"editEntry": "Editar entrada",
"save": "Guardar",
"update": "Actualizar",
"cancel": "Cancelar",
"edit": "Editar",
"delete": "Eliminar",
"confirmDelete": "¿Seguro que quieres eliminar la entrada?",
"prevPage": "Atrás",
"nextPage": "Siguiente",
"page": "Página"
},
"forum": {
"kicker": "Foro de la comunidad",
"intro": "Temas, debates y nuevas publicaciones en un lugar estructurado.",
"createTitle": "Redactar un nuevo tema",
"createIntro": "Primero pon el título, luego escribe la publicación y después publícala directamente.",
"cancelCreation": "Cancelar",
"creationHint": "El título y el contenido deben estar completos.",
"communityFallback": "Comunidad",
"topicIntro": "Debates, respuestas y nuevas publicaciones en una vista de lectura enfocada.",
"topicCreated": "Tema creado correctamente.",
"topicCreateError": "Error al crear el tema",
"title": "Forum",
"showNewTopic": "Crear nuevo tema",
"hideNewTopic": "Cancelar creación",
"noTitles": "No hay temas",
"topic": "Tema",
"createNewTopic": "Crear tema",
"createdBy": "Creado por",
"createdAt": "Creado el",
"reactions": "Respuestas",
"lastReaction": "Última respuesta de",
"pagination": {
"first": "Primera página",
"previous": "Página anterior",
"next": "Página siguiente",
"last": "Última página",
"page": "Seite <<page>> von <<of>>"
},
"createNewMesssage": "Enviar respuesta"
},
"friendship": {
"error": {
"alreadyexists": "La solicitud de amistad ya existe"
},
"state": {
"none": "No sois amigos",
"waiting": "Solicitud enviada, aún sin respuesta",
"open": "Solicitud recibida",
"denied": "Solicitud rechazada",
"withdrawn": "Solicitud retirada",
"accepted": "Amigos"
},
"added": "Has enviado una solicitud de amistad.",
"withdrawn": "Has retirado tu solicitud de amistad.",
"denied": "Has rechazado la solicitud de amistad.",
"accepted": "Se ha aceptado la amistad."
},
"erotic": {
"eyebrow": "Erótico",
"accessTitle": "Desbloqueo del área erótica",
"accessIntro": "Las imágenes, los vídeos y más adelante los chats se muestran a partir de los 18 años, pero solo se pueden usar tras la aprobación de moderación.",
"lockedShort": "Esta área solo estará disponible tras la aprobación de moderación.",
"requestVerification": "Solicitar acceso",
"requestSent": "La solicitud de acceso se ha enviado.",
"requestError": "No se pudo enviar la solicitud de acceso.",
"requestInfoTitle": "Prueba enviada",
"documentLabel": "Documento de verificación",
"noteLabel": "Breve nota para moderación",
"settingsLink": "Abrir ajustes de la cuenta",
"verificationHintTitle": "Nota sobre la verificación",
"verificationHintBody": "Puedes enviar una foto. Si tu edad no se reconoce con claridad, la solicitud será rechazada y tendrás que enviar un documento de identidad.",
"notifications": {
"approved": "La moderación ha aprobado tu acceso al área erótica.",
"rejected": "Tu solicitud para el área erótica fue rechazada. Si tu edad no se reconoce claramente en las fotos, envía un documento de identidad."
},
"picturesTitle": "Imágenes eróticas",
"picturesIntro": "Tus contenidos permanecen estrictamente separados de la galería normal. Aquí gestionas solo imágenes del área erótica desbloqueada.",
"uploadTitle": "Subir imagen erótica",
"noimages": "Actualmente no hay imágenes en esta carpeta erótica.",
"videosTitle": "Vídeos eróticos",
"videosIntro": "Tus propios vídeos se gestionan por separado del área social normal. Aquí organizas subidas, visibilidad y estado de moderación en un solo lugar.",
"videoUploadTitle": "Subir vídeo erótico",
"videoUploadHint": "Sube aquí vídeos para tu área erótica desbloqueada y completa título y descripción directamente durante la subida.",
"videoDescription": "Descripción",
"videoFile": "Archivo de vídeo",
"videoFormats": "MP4, WEBM, OGG, MOV",
"myVideos": "Mis vídeos",
"sharedVideos": "Vídeos compartidos",
"foreignVideosIntro": "Vídeos compartidos del área para adultos.",
"foreignVideosOnlyHint": "Aquí solo ves vídeos que han sido compartidos contigo para el área para adultos.",
"sharedVideosIntro": "Vídeos visibles de áreas para adultos compartidas.",
"noSharedVideos": "Ahora mismo no hay vídeos compartidos disponibles para ti.",
"libraryTitle": "Biblioteca",
"libraryIntro": "Tus subidas, permisos y reportes en un solo lugar.",
"libraryEmptyHint": "Crea a la izquierda tu primer vídeo y luego administraciónalo aquí en la biblioteca.",
"latestUpload": "Última subida",
"visibleVideos": "Vídeos visibles",
"moderationCases": "Casos de moderación",
"notesTitle": "Notas",
"friendsVisibilityHint": "Los amigos solo ven el contenido si son mayores de edad y están autorizados para el área para adultos.",
"selectedUsersVisibilityHint": "Las personas autorizadas de forma específica también deben ser mayores de edad y estar autorizadas.",
"selectedUsersPlaceholder": "anna, bert, clara",
"imagePreviewAlt": "Vista previa de la imagen",
"imageLoadingAlt": "Cargando imagen",
"untitled": "Sin título",
"noUploadYet": "Aún no hay subida",
"closeEditing": "Cerrar edición",
"editVisibility": "Editar permisos",
"noVideos": "Todavía no has subido vídeos eróticos.",
"reportAction": "Denunciar",
"reportHint": "Usa {action} directamente en el elemento correspondiente si el contenido debe revisarse.",
"reportNote": "Nota breve para moderación",
"submitReport": "Enviar denuncia",
"reportSubmitted": "La denuncia fue enviada.",
"reportError": "No se pudo guardar la denuncia.",
"moderationHidden": "Oculto por moderación",
"hiddenByModeration": "Este contenido fue ocultado temporalmente por la moderación.",
"reportReasons": {
"suspected_minor": "Sospecha de minoría de edad",
"non_consensual": "Contenido no consentido",
"violence": "Violencia o abuso",
"harassment": "Acoso o presión",
"spam": "Spam o estafa",
"other": "Otro"
},
"intro": "El área está desbloqueada. Los módulos reales de imágenes y vídeos llegarán en el siguiente paso.",
"enabledTitle": "Acceso desbloqueado",
"enabledBody": "Tu cuenta está habilitada para el área erótica. Las vistas separadas de imágenes y vídeos se construirán a continuación.",
"roadmapTitle": "Próximamente",
"roadmapModeration": "moderación y vías de reporte separadas",
"roadmapUpload": "vistas propias para subir y gestionar contenido",
"roadmapSeparation": "separación clara de la galería normal",
"status": {
"none": {
"title": "Aún no desbloqueado",
"body": "El área es visible, pero seguirá bloqueada hasta la aprobación de moderación."
},
"pending": {
"title": "Revisión pendiente",
"body": "Tu solicitud está pendiente de revisión por moderación."
},
"approved": {
"title": "Desbloqueado",
"body": "El área erótica ya está desbloqueada para tu cuenta."
},
"rejected": {
"title": "Solicitud rechazada",
"body": "La última solicitud fue rechazada. Puedes enviar una nueva."
}
}
},
"vocab": {
"title": "Entrenador de vocabulario",
"description": "Crea idiomas (o suscríbete) y compártelos con tus amigos.",
"heroEyebrow": "Aprendizaje de idiomas",
"summaryTotalLabel": "Idiomas en total",
"summaryTotalIntro": "Todas las áreas de idioma activas donde usas o administras contenido.",
"summaryOwnedLabel": "Áreas propias",
"summaryOwnedIntro": "Aquí creas por tu cuenta contenido, capítulos y material de aprendizaje.",
"summarySubscribedLabel": "Suscrito",
"summarySubscribedIntro": "Estas áreas están pensadas más para aprender y avanzar que para administrar.",
"taskCreateEyebrow": "Inicio rápido",
"taskCreateTitle": "Crear nuevo idioma",
"taskCreateIntro": "La mejor entrada si quieres estructurar y mantener el contenido tú mismo.",
"taskContinueEyebrow": "Seguir aprendiendo",
"taskContinueTitle": "Abrir cursos y capítulos",
"taskContinueIntro": "Entra directamente en rutas de aprendizaje ya existentes y sigue con los cursos disponibles.",
"ownedSectionTitle": "Idiomas propios",
"ownedSectionIntro": "Acceso directo a edición, capítulos y gestión de cursos.",
"ownedHint": "Administrar y mantener contenido",
"ownedEmpty": "Todavía no hay áreas de idioma propias.",
"subscribedSectionTitle": "Idiomas suscritos",
"subscribedSectionIntro": "Ideal para volver rápido al aprendizaje sin carga administrativa.",
"subscribedHint": "Aprender, practicar y ver el progreso",
"subscribedEmpty": "No hay idiomas suscritos disponibles.",
"languageHeroEyebrow": "Idioma",
"languageHeroIntro": "Capítulos, búsqueda y compartición de este idioma en un solo lugar.",
"newLanguageHeroEyebrow": "Entrenador de vocabulario",
"newLanguageHeroIntro": "Crea un nuevo idioma, genera un código para compartir y pasa directamente a la edición.",
"newLanguageNameHint": "Basta con un nombre corto y claro para empezar.",
"newLanguageNameValidation": "El nombre debe tener al menos 2 caracteres.",
"subscribeHeroEyebrow": "Entrenador de vocabulario",
"chapterHeroEyebrow": "Entrenador de vocabulario",
"chapterHeroIntro": "Explora el contenido del capítulo, mantén el vocabulario y pasa directamente a la práctica.",
"newLanguage": "Nuevo idioma",
"newLanguageTitle": "Crear nuevo idioma",
"languageName": "Nombre del idioma",
"create": "Crear",
"saving": "Guardando...",
"created": "El idioma se ha creado.",
"createdTitle": "Entrenador de vocabulario",
"createdMessage": "El idioma se ha creado. El menú se actualizará.",
"createError": "No se pudo crear el idioma.",
"openLanguage": "Abrir",
"none": "Aún no has creado ni te has suscrito a ningún idioma.",
"owner": "Propio",
"subscribed": "Suscrito",
"languageTitle": "Entrenador de vocabulario: {name}",
"notFound": "Idioma no encontrado o sin acceso.",
"shareCode": "Código para compartir",
"shareHint": "Puedes compartir este código con tus amigos para que se suscriban al idioma.",
"subscribeByCode": "Suscribirse con código",
"subscribeTitle": "Suscribirse a un idioma",
"subscribeHint": "Introduce el código para compartir que te ha dado un amigo.",
"subscribe": "Suscribirse",
"subscribeSuccess": "Suscripción correcta. El menú se actualizará.",
"subscribeError": "Fallo en la suscripción. Código inválido o sin acceso.",
"trainerPlaceholder": "Las funciones del entrenador (vocabulario/pruebas) serán el siguiente paso.",
"chapters": "Capítulos",
"newChapter": "Nuevo capítulo",
"createChapter": "Crear capítulo",
"createChapterError": "No se pudo crear el capítulo.",
"noChapters": "Aún no hay capítulos.",
"chapterTitle": "Capítulo: {title}",
"addVocab": "Añadir vocabulario",
"learningWord": "Idioma de aprendizaje",
"referenceWord": "Referencia",
"add": "Añadir",
"addVocabError": "No se pudo añadir el vocabulario.",
"noVocabs": "Aún no hay vocabulario en este capítulo.",
"practice": {
"open": "Practicar",
"title": "Practicar vocabulario",
"allVocabs": "Todo el vocabulario",
"simple": "Práctica simple",
"noPool": "No hay vocabulario para practicar.",
"dirLearningToRef": "Aprendizaje → Referencia",
"dirRefToLearning": "Referencia → Aprendizaje",
"check": "Comprobar",
"next": "Siguiente",
"skip": "Saltar",
"correct": "¡Correcto!",
"wrong": "Incorrecto.",
"acceptable": "Traducciones correctas posibles:",
"stats": "Estadísticas",
"success": "Éxito",
"fail": "Fallo"
},
"search": {
"open": "Buscar",
"title": "Buscar vocabulario",
"term": "Término de búsqueda",
"motherTongue": "Lengua materna",
"learningLanguage": "Idioma de aprendizaje",
"lesson": "Lección",
"search": "Buscar",
"noResults": "Sin resultados.",
"error": "La búsqueda ha fallado."
},
"courses": {
"title": "Cursos de idiomas",
"create": "Crear curso",
"myCourses": "Mis cursos",
"allCourses": "Todos los cursos",
"none": "No se han encontrado cursos.",
"owner": "Propietario",
"enrolled": "Inscrito",
"public": "Público",
"difficulty": "Dificultad",
"lessons": "Lecciones",
"enroll": "Inscribirse",
"continue": "Continuar",
"edit": "Editar",
"addLesson": "Añadir lección",
"completed": "Completado",
"score": "Puntuación",
"review": "Repasar",
"start": "Empezar",
"resetLessonProgress": "Restablecer lección",
"resetLessonProgressConfirm": "¿Restablecer el progreso de esta lección? Se borrarán el estado guardado, los resultados de ejercicios y el progreso del entrenador. Las demás lecciones no cambian.",
"resetLessonProgressSuccess": "Se restableció el progreso de la lección.",
"resetLessonProgressError": "No se pudo restablecer la lección.",
"noLessons": "Este curso aún no tiene lecciones.",
"lessonNumber": "Número de lección",
"chapter": "Capítulo",
"selectChapter": "Seleccionar capítulo",
"selectLanguage": "Seleccionar idioma",
"confirmDelete": "¿Eliminar la lección?",
"titleLabel": "Título",
"descriptionLabel": "Descripción",
"languageLabel": "Idioma",
"findByCode": "Buscar curso por código",
"shareCode": "Share-Code",
"searchPlaceholder": "Buscar curso...",
"allLanguages": "Todos los idiomas",
"targetLanguage": "Idioma objetivo",
"nativeLanguage": "Lengua materna",
"allNativeLanguages": "Todas las lenguas maternas",
"myNativeLanguage": "Mi lengua materna",
"forAllLanguages": "Para todos los idiomas",
"optional": "Opcional",
"invalidCode": "Código inválido",
"courseNotFound": "Curso no encontrado",
"grammarExercises": "Prueba de gramática",
"exerciseFlowIntro": "Resuelve las tareas en orden. Cada respuesta correcta te acerca al cierre de la lección.",
"exerciseProgressLabel": "Progreso",
"exerciseTargetLabel": "Necesario",
"exerciseCardLabel": "Tarea {number}",
"exerciseSequentialProgress": "Pregunta {current} de {total}",
"exerciseSequentialBack": "Atrás",
"exerciseSequentialNext": "Siguiente",
"exerciseWrongTitle": "Aún no es correcto",
"exerciseReinforcementGoPractice": "Ir a practicar",
"exerciseReinforcementStay": "Seguir en la prueba",
"exerciseStatusOpen": "Pendiente",
"exerciseStatusCorrect": "Hecha",
"exerciseStatusRetry": "Revisar otra vez",
"exerciseAnswerAllHint": "Responde primero las {total} tareas. Completadas hasta ahora: {answered}. Necesitas al menos {target}% para aprobar.",
"exerciseNeedMoreCorrectHint": "Ahora mismo tienes {score}%. Necesitas al menos {target}% para completar esta lección.",
"exercisePassedHint": "Objetivo alcanzado: {score}% de los {target}% necesarios. En cuanto todas las tareas estén respondidas, la prueba queda aprobada.",
"exerciseReinforcementHint": "Después de un error, el flujo vuelve brevemente al modo de aprendizaje. Practica {count} preguntas más en el entrenador y la prueba del capítulo se desbloqueará otra vez.",
"exercisePrepReinforcementHint": "Después de un error, vuelve a repasar los términos preparados una vez más. Luego la prueba del capítulo se desbloqueará otra vez.",
"exerciseGrammarLead": "Gramática clave para esta prueba",
"noExercises": "No hay prueba disponible",
"enterAnswer": "Introduce la respuesta",
"checkAnswer": "Comprobar respuesta",
"correct": "¡Correcto!",
"wrong": "Incorrecto",
"explanation": "Explicación",
"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",
"corePatternsHint": "Primero la lengua meta; debajo, el significado en tu idioma.",
"learningGrammarTitle": "Ubicar brevemente la gramática",
"learningGrammarIntro": "Lee estas 1-2 pistas después de los términos clave. Así entras al entrenador con mejor orientación.",
"vocabPrepTitle": "Preparación antes del entrenador de vocabulario",
"vocabPrepStep1": "Lee una vez los patrones clave y la lista de palabras (idioma nativo ↔ lengua meta).",
"vocabPrepProgress": "Pasada {pass}: término {current} de {total}",
"vocabPrepTargetLabel": "Lengua meta",
"vocabPrepGlossLabel": "Significado",
"vocabPrepNextItem": "Siguiente término",
"vocabPrepConfirm1": "Primera lectura hecha",
"vocabPrepStep2": "Repasa los mismos elementos otra vez (repaso activo, aún sin practicar).",
"vocabPrepConfirm2": "Segunda lectura hecha",
"vocabPrepReady": "Ya puedes iniciar el entrenador de vocabulario.",
"learningPathLabel": "Ruta principal",
"learningPathTitle": "Tu recorrido de aprendizaje para esta lección",
"learningPathIntro": "Sigue estos pasos en orden: preparar, repasar brevemente, entrenar y luego pasar a la prueba del capítulo.",
"lessonDetailsToggle": "Mostrar más detalles de la lección",
"deepenSectionTitle": "Profundizar y repasar",
"assistantSectionTitle": "Profundizar con el asistente de idiomas",
"vocabOverviewToggle": "Mostrar vista general completa de los términos",
"vocabTrainerLockedHint": "Confirma primero los dos pasos de preparación arriba.",
"exerciseUnlockHintAfterPrep": "Primero recorre los términos preparados. Después se desbloqueará la prueba del capítulo.",
"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.",
"vocabTrainer": "Entrenador de vocabulario",
"vocabTrainerDescription": "Practica los términos clave de esta lección de forma interactiva.",
"startVocabTrainer": "Iniciar entrenador",
"stopTrainer": "Detener entrenador",
"translateTo": "Traduce al bisaya",
"translateFrom": "Traduce al alemán",
"next": "Siguiente",
"totalAttempts": "Intentos",
"successRate": "Tasa de acierto",
"modeMultipleChoice": "Multiple Choice",
"modeTyping": "Texteingabe",
"currentLesson": "Lección actual",
"mixedReview": "Repaso",
"lessonCompleted": "¡Lección completada!",
"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",
"modelPattern": "Ejemplo posible del patrón",
"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",
"stopRecording": "Detener grabación",
"startSpeaking": "Empezar a hablar",
"recording": "Grabando",
"listening": "Escuchando...",
"recordingStopped": "Grabación finalizada",
"recordingError": "Error de grabación",
"recognizedText": "Texto reconocido",
"speechRecognitionNotSupported": "El reconocimiento de voz no es compatible con este navegador. Usa Chrome o Edge.",
"speakingFallbackInstruction": "Tu navegador no admite entrada de voz aquí. Escribe en su lugar lo que dirías y compruébalo normalmente.",
"speakingFallbackPlaceholder": "Escribe aquí lo que dirías ...",
"keywords": "Palabras clave",
"switchBackToMultipleChoice": "Volver a opción múltiple",
"languageAssistantEyebrow": "Asistente de idiomas",
"languageAssistantCourseTitle": "Apoyo de IA para este curso",
"languageAssistantCourseReady": "El asistente está configurado y disponible dentro de las lecciones para explicaciones, correcciones y pequeños diálogos.",
"languageAssistantCourseSetup": "Configura el asistente para poder hacer preguntas sobre la lección y practicar pequeños diálogos.",
"languageAssistantOpenLesson": "Abrir en la lección actual",
"languageAssistantTitle": "Practicar con el asistente",
"languageAssistantIntro": "Usa la IA directamente en la lección actual: pedir explicaciones gramaticales, practicar diálogos cortos o corregir tus propias frases.",
"languageAssistantSettings": "Configurar asistente",
"languageAssistantSetupHint": "El asistente aún no está configurado o está desactivado. Guarda primero el modelo y el acceso API en la configuración.",
"languageAssistantModePractice": "Práctica",
"languageAssistantModeExplain": "Explicar",
"languageAssistantModeCorrect": "Corregir",
"languageAssistantPromptExplain": "Explicar gramática",
"languageAssistantPromptPractice": "Practicar mini diálogo",
"languageAssistantPromptCorrect": "Mejorar mi frase",
"languageAssistantSpeakerAi": "Asistente",
"languageAssistantSpeakerYou": "Tú",
"languageAssistantInputLabel": "Tu mensaje",
"languageAssistantInputPlaceholder": "Haz una pregunta sobre la lección o escribe tu propia frase para corregirla.",
"languageAssistantSend": "Enviar al asistente",
"languageAssistantSending": "Obteniendo respuesta ...",
"languageAssistantError": "El asistente no pudo responder ahora mismo.",
"languageAssistantPresetExplainStart": "Explícame por favor los patrones y la gramática principales de la lección",
"languageAssistantPatternHint": "Concéntrate especialmente en este patrón",
"languageAssistantPresetPracticeStart": "Practiquemos un diálogo cotidiano corto para la lección \"{lesson}\". Hazme preguntas y espera mis respuestas.",
"languageAssistantPresetCorrectStart": "Quiero escribir mis propias frases para la lección \"{lesson}\". Corrige mis respuestas de forma breve y clara.",
"thisLesson": "esta lección",
"courseKicker": "Curso de aprendizaje",
"courseListKicker": "Cursos",
"courseListIntro": "Filtra cursos públicos y propios, encuentra el adecuado y continúa directamente.",
"courseShareCodePlaceholder": "p. ej. abc123def456",
"courseFlowEyebrow": "Flujo del día",
"courseFlowTitle": "La mejor continuación para hoy",
"courseFlowIntro": "Primero la sugerencia del día con orden concreto. Debajo, las cuatro zonas: repaso breve pendiente, bloque actual, fase intensiva, práctica libre.",
"courseTodayPlanTitle": "Sugerencia para hoy",
"courseTodayPlanIntro": "Orden práctico: primero todo lo marcado como repaso breve pendiente, luego las lecciones abiertas de tu bloque, después la fase intensiva si aparece. Los repasos breves son tres citas cortas tras terminar una lección (típicamente aprox. 1, 3 y 7 días) para fijar vocabulario.",
"courseTodayPlanStepReviewDue": "Repaso breve ahora",
"courseTodayPlanStepBlock": "Seguir en el bloque actual",
"courseTodayPlanStepIntensive": "Repaso intensivo",
"courseTodayPlanStepContinue": "Siguiente en tu ruta",
"courseTodayPlanStepPractice": "Práctica libre (opcional)",
"courseTodayPlanOpen": "Abrir lección",
"courseTodayPlanTrainer": "Abrir entrenador",
"courseTodayPlanEmpty": "Ahora no hay repaso escalonado pendiente ni un siguiente paso claro en el bloque. Elige una lección abajo o usa la práctica libre con el entrenador.",
"courseFlowReviewStat": "Repaso pendiente: {count}",
"courseFlowBlockStat": "Bloque activo: {block}",
"courseFlowReviewTitle": "Repaso pendiente",
"courseFlowReviewDescription": "Lecciones ya completadas que deberían volver hoy.",
"courseFlowReviewEmpty": "Hoy no hay ninguna lección antigua marcada como repaso pendiente.",
"courseFlowBlockTitle": "Bloque actual",
"courseFlowBlockDescription": "Aquí está el siguiente progreso regular dentro del curso.",
"courseFlowBlockEmpty": "El bloque actual ya está terminado o ahora mismo no hay ninguna lección abierta del bloque.",
"courseFlowIntensiveTitle": "Fase intensiva pendiente",
"courseFlowIntensiveDescription": "Repaso concentrado cuando el bloque anterior ya está bastante asentado.",
"courseFlowIntensiveEmpty": "Ahora mismo no hay ninguna nueva fase intensiva desbloqueada.",
"courseFlowPracticeTitle": "Práctica libre",
"courseFlowPracticeDescription": "Lecciones completadas para repasar con calma fuera del camino obligatorio.",
"courseFlowPracticeEmpty": "En cuanto completes tus primeras lecciones, aparecerán aquí para práctica libre.",
"practiceInTrainer": "Practicar en el entrenador",
"lessonsCount": "{count} lecciones",
"lessonBlockLabel": "Bloque {number}",
"lessonIntensiveBadge": "Repaso intensivo",
"addLessonValidation": "Indica por completo el número, el título y el capítulo.",
"addLessonSuccess": "Lección creada correctamente.",
"addLessonError": "No se pudo añadir la lección.",
"createCourseError": "No se pudo crear el curso.",
"deleteLessonTitle": "Eliminar lección",
"deleteLessonSuccess": "Lección eliminada correctamente.",
"deleteLessonError": "No se pudo eliminar la lección.",
"enrollCourseError": "No se pudo inscribirse en el curso.",
"editLessonPending": "La edición individual de lecciones llegará después.",
"timeToday": "hoy",
"timeSinceOneDay": "desde hace 1 día",
"timeSinceDays": "desde hace {count} días",
"reviewDueNow": "vence ahora",
"reviewDueTomorrow": "vence mañana",
"reviewDueInDays": "vence en {count} días",
"reviewDueToday": "vence hoy",
"reviewDueSinceOneDay": "vence desde hace 1 día",
"reviewDueSinceDays": "vence desde hace {count} días",
"reviewBadgeScheduleTomorrow": "siguiente ola mañana",
"reviewBadgeScheduleInDays": "siguiente ola en {count} días",
"reviewBadgeScheduleToday": "ola prevista hoy",
"reviewBadgeScheduleOverdue": "ola atrasada ({count} días)",
"reviewBadgeLineAllDone": "Todos los repasos breves hechos (3×)",
"reviewBadgeLineDue": "Repaso breve: paso {step} de 3 · toca ahora",
"reviewBadgeLineScheduled": "Repaso breve: paso {step} de 3 · siguiente el {when}",
"reviewWhenFriendlyTomorrow": "mañana",
"reviewWhenFriendlyInDays": "en {count} días",
"reviewWhenFriendlyToday": "hoy",
"reviewWhenFriendlyOverdue": "atrasado (hace {count} día(s))",
"reviewWhenFriendlySoon": "pronto",
"reviewBadgeTooltipDone": "Completaste los tres repasos breves sugeridos tras esta lección. Puedes seguir practicando en el entrenador.",
"reviewBadgeTooltipActive": "Tras completar la lección, el curso propone tres repasos breves separados unos 1, 3 y 7 días para que el vocabulario quede fijo. La etiqueta indica qué paso (13) toca o cuándo es la siguiente cita.",
"reviewStageDay1": "Paso 1 de 3 (~1 día)",
"reviewStageDay3": "Paso 2 de 3 (~3 días)",
"reviewStageDay7": "Paso 3 de 3 (~7 días)",
"reviewStageCompleted": "Todos los repasos breves hechos",
"phaseQuickstart": "Inicio rápido",
"phaseDailyLife": "Vida diaria",
"phaseStabilization": "Estabilización",
"phaseDefault": "Fase de aprendizaje",
"didacticModeCoreInput": "Contenido nuevo",
"didacticModeGuidedDialogue": "Diálogo guiado",
"didacticModeContrastTraining": "Entrenamiento por contraste",
"didacticModePatternDrill": "Entrenamiento de patrones",
"didacticModeRealLifeScenario": "Escenario cotidiano",
"didacticModeIntensiveReview": "Fase de repaso",
"didacticModeCheckpoint": "Checkpoint",
"didacticModeDefault": "Unidad de aprendizaje",
"didacticModeFocusDefault": "Foco de aprendizaje",
"lessonMetaFocus": "Enfoque",
"lessonMetaPhase": "Fase",
"lessonMetaNewUnits": "Nuevas unidades",
"lessonMetaReview": "Repaso",
"intensiveReviewTitle": "Fase de repaso intensivo",
"intensiveReviewIntro": "Esta lección da prioridad al repaso y la consolidación. El material nuevo se reduce de forma consciente para estabilizar los patrones ya conocidos.",
"reviewPriorityTitle": "El repaso se mezcla paso a paso",
"reviewPriorityIntro": "Primero el foco está en los términos nuevos de esta lección. Con tu progreso se van mezclando cada vez más vocablos anteriores.",
"exerciseLockTitle": "La prueba del capítulo sigue bloqueada",
"exerciseUnlockHintTrainerCore": "La prueba del capítulo se desbloquea cuando se cumplen las tres condiciones: al menos {newTarget} preguntas sobre el contenido nuevo (línea «Contenido nuevo»), unas {attempts} preguntas del entrenador en total y una tasa de aciertos de al menos {rate}%.",
"exerciseUnlockHintTrainerMixSuffix": "El vocabulario anterior se mezcla poco a poco.",
"trainerStartWithReview": "Empieza con el vocabulario nuevo de esta lección. A medida que avances, el entrenador mezclará automáticamente repasos adecuados.",
"startLesson": "Empezar lección",
"trainerProgressNewContent": "Contenido nuevo: {current}/{target}",
"trainerProgressReview": "Repaso: {count}",
"trainerProgressMixShare": "Parte mezclada: {percent}%",
"unknownExerciseTypeNotice": "Este tipo de ejercicio todavía no se muestra de forma interactiva en la vista actual.",
"unknownExerciseTypeLabel": "Tipo: {type}",
"lessonReviewHeadlineDone": "Esta lección ya ha llegado a la fase de práctica libre.",
"lessonReviewHeadlineDue": "Esta ola de repaso está pendiente ahora mismo.",
"lessonReviewHeadlineScheduled": "Esta lección está prevista para la siguiente ola de repaso.",
"lessonReviewHintDone": "El ciclo de repaso de 1/3/7 días está completado. Ahora puedes seguir practicando esta lección libremente.",
"lessonReviewHintNextDue": "Próximo vencimiento: {due}.",
"reviewTimeNow": "ahora",
"reviewTimeTomorrow": "mañana",
"reviewTimeInDays": "en {count} días"
}
}
}
}