import json
import os
translations = {
"Location History": "Historial de ubicaciones",
"Additional Information": "Información adicional",
"Location": "Ubicación",
"Date & Time": "Fecha y hora",
"Enter the phone number in international format. Example: +989012023212": "Ingrese el número de teléfono en formato internacional. Ejemplo: +989012023212",
"other": "otro",
"Password": "Contraseña",
"Personal info": "Información personal",
"Permissions": "Permisos",
"Important dates": "Fechas importantes",
"A professor with the email {email} already exists.": "Ya existe un profesor con el correo electrónico {email}.",
"The user with email {email} has been converted to a professor.": "El usuario con correo electrónico {email} se ha convertido en profesor.",
"Phone Number": "Número de teléfono",
"Enrolled Courses": "Cursos inscritos",
"{count} course": "{count} curso",
"{count} courses": "{count} cursos",
"A user with this email already exists.": "Ya existe un usuario con este correo electrónico.",
"Basic Information": "Información básica",
"Country & City": "País y ciudad",
"Device Information": "Información del dispositivo",
"Authentication": "Autenticación",
"Date Joined": "Fecha de registro",
"Last Login": "Último inicio de sesión",
"Authentication Token": "Token de autenticación",
"Course Participation": "Participación en el curso",
"Course Participations": "Participaciones en el curso",
"Course Status": "Estado del curso",
"Professor": "Profesor",
"password": "contraseña",
"Student": "Estudiante",
"Age": "Edad",
"Born on {date}": "Nacido el {date}",
"Courses": "Cursos",
"{total} course": "{total} curso",
"{total} courses": "{total} cursos",
"Course Categories": "Categorías del curso",
"Edit": "Editar",
"Select Existing User": "Seleccionar usuario existente",
"Choose an existing user to upgrade to Professor.": "Elija un usuario existente para actualizarlo a Profesor.",
"{count} permission": "{count} permiso",
"{count} permissions": "{count} permisos",
"You have limited access as a professor.": "Tiene acceso limitado como profesor.",
"You do not have permission to access this page.": "No tiene permiso para acceder a esta página.",
"Professor User": "Usuario Profesor",
"Professor Users": "Usuarios Profesores",
"User": "Usuario",
"Users": "Usuarios",
"Admin User": "Usuario Administrador",
"Admin Users": "Usuarios Administradores",
"Super Admin User": "Usuario Superadministrador",
"Super Admin Users": "Usuarios Superadministradores",
"Student User": "Usuario Estudiante",
"Student Users": "Usuarios Estudiantes",
"Consultant User": "Usuario Consultor",
"Consultant Users": "Usuarios Consultores",
"Imam Javad": "Imam Javad",
"Doboodi": "Doboodi",
"title": "título",
"message": "mensaje",
"user": "usuario",
"is read": "leído",
"service": "servicio",
"created at": "creado el",
"updated at": "actualizado el",
"Notification": "Notificación",
"Notifications": "Notificaciones",
"android": "android",
"apple": "apple",
"web": "web",
"Client": "Cliente",
"Admin": "Administrador",
"Super Admin": "Superadministrador",
"Consultant": "Consultor",
"Male": "Masculino",
"Female": "Femenino",
"Username": "Nombre de usuario",
"A user with that username already exists.": "Ya existe un usuario con ese nombre de usuario.",
"Email Address": "Dirección de correo electrónico",
"Enter the user's email address.": "Ingrese la dirección de correo electrónico del usuario.",
"A user with that email already exists.": "Ya existe un usuario con ese correo electrónico.",
"Full Name": "Nombre completo",
"Enter the full name of the user.": "Ingrese el nombre completo del usuario.",
"birthdate": "fecha de nacimiento",
"Avatar": "Avatar",
"e.g., +49 151 12345678": "por ejemplo, +49 151 12345678",
"Language": "Idioma",
"Gender": "Género",
"Select the user's gender.": "Seleccione el género del usuario.",
"User Type": "Tipo de usuario",
"Type of the user.": "Tipo del usuario.",
"The date and time the user registered.": "La fecha y hora en que se registró el usuario.",
"City": "Ciudad",
"country": "país",
"device id": "id de dispositivo",
"device os": "so de dispositivo",
"user agent": "agente de usuario",
"client ip": "ip de cliente",
"fcm": "fcm",
"slug": "slug",
"Experience years": "Años de experiencia",
"is staff": "es personal",
"Active": "Activo",
"Designates whether this user should be treated as active. Unselect this instead of deleting accounts.": "Indica si este usuario debe ser tratado como activo. Desmarque esto en lugar de eliminar la cuenta.",
"deleted at": "eliminado el",
"Info": "Información",
"skill": "habilidad",
"Email is required for all regular users.": "El correo electrónico es requerido para todos los usuarios regulares.",
"lat": "latitud",
"lon": "longitud",
"city": "ciudad",
"ip": "ip",
"timezone": "zona horaria",
"Device os": "SO de dispositivo",
"at time": "a la hora",
"Login History": "Historial de inicios de sesión",
"Login Histories": "Historiales de inicios de sesión",
"selected manually": "seleccionado manualmente",
"Driver before template": "Conductor antes de la plantilla",
"Active drivers": "Conductores activos",
"Inactive drivers": "Conductores inactivos",
"Total points": "Puntos totales",
"Total races": "Carreras totales",
"Total Active Users": "Total de usuarios activos",
"Total Guest Users": "Total de usuarios invitados",
"Total Students": "Total de estudiantes",
"Total Professors": "Total de profesores",
"Dimensions": "Dimensiones",
"Preview": "Vista previa",
"User Avatar": "Avatar de usuario",
"User Full Name": "Nombre completo del usuario",
"Full name of the user who made the comment": "Nombre completo del usuario que hizo el comentario",
"User Slogan": "Eslogan del usuario",
"User slogan or bio": "Eslogan o biografía del usuario",
"Comment Text": "Texto del comentario",
"The actual comment content": "El contenido real del comentario",
"Order": "Orden",
"Order for sorting comments": "Orden para clasificar comentarios",
"Created At": "Creado el",
"Comment": "Comentario",
"Comments": "Comentarios",
"Google Play": "Google Play",
"App Store": "App Store",
"Version": "Versión",
"Application version in format X.Y.Z (e.g., 1.0.0)": "Versión de la aplicación en formato X.Y.Z (por ejemplo, 1.0.0)",
"APK File": "Archivo APK",
"Application APK file": "Archivo APK de la aplicación",
"Description": "Descripción",
"Release notes and changes for this version": "Notas de la versión y cambios para esta versión",
"App Type": "Tipo de aplicación",
"App distribution platform": "Plataforma de distribución de la aplicación",
"App Store Downloads": "Descargas de App Store",
"Total number of downloads on Apple App Store": "Número total de descargas en la Apple App Store",
"Google Play Downloads": "Descargas de Google Play",
"Total number of downloads on Google Play": "Número total de descargas en Google Play",
"Is this version active?": "¿Está activa esta versión?",
"Updated At": "Actualizado el",
"App Version": "Versión de la aplicación",
"App Versions": "Versiones de la aplicación",
"Article": "Artículo",
"Articles": "Artículos",
"Text Section": "Sección de texto",
"Text Sections": "Secciones de texto",
"Content Part": "Parte de contenido",
"Content Parts": "Partes de contenido",
"Article Content": "Contenido del artículo",
"Article Contents": "Contenidos de los artículos",
"Title": "Título",
"Display Position": "Posición de visualización",
"Number of Articles": "Número de artículos",
"Search by title, slug, description or content": "Buscar por título, slug, descripción o contenido",
"Search articles": "Buscar artículos",
"File": "Archivo",
"Status": "Estado",
"Statistics": "Estadísticas",
"Contents": "Contenidos",
"Parts": "Partes",
"status": "estado",
"order": "orden",
"Article Category": "Categoría de artículo",
"Article Categories": "Categorías de artículos",
"Pinned": "Fijado",
"Middle Section": "Sección central",
"could be null": "puede ser nulo",
"pin top": "fijar al principio",
"image allowed": "imagen permitida",
"articles": "artículos",
"Article Collection": "Colección de artículos",
"Articles Collections": "Colecciones de artículos",
"Pinned Collection (Top Section)": "Colección fijada (Sección superior)",
"Pinned Collections (Top Section)": "Colecciones fijadas (Sección superior)",
"Regular Collection (Middle Section)": "Colección regular (Sección central)",
"Regular Collections (Middle Section)": "Colecciones regulares (Sección central)",
"PDF or other document files": "PDF u otros archivos de documentos",
"categories": "categorías",
"collections": "colecciones",
"view count": "número de visitas",
"collection": "colección",
"article": "artículo",
"Article in Collection": "Artículo en colección",
"Articles in Collections": "Artículos en colecciones",
"content": "contenido",
"priority": "prioridad",
"article content": "contenido del artículo",
"content part": "parte de contenido",
"Arabic text": "Texto en árabe",
"Translation": "Traducción",
"Content": "Contenido",
"Timestamps": "Marcas de tiempo",
"Thumbnail": "Miniatura",
"Blog thumbnail image": "Imagen en miniatura del blog",
"Slogan": "Eslogan",
"Summary": "Resumen",
"Views Count": "Número de visitas",
"Number of times this blog was viewed": "Número de veces que se ha visto este blog",
"Slug": "Slug",
"URL slug for the blog": "URL slug para el blog",
"Blog": "Blog",
"Blogs": "Blogs",
"Content Title": "Título del contenido",
"Title of this content section": "Título de esta sección de contenido",
"The main content text": "El texto del contenido principal",
"URL slug for this content (optional)": "URL slug para este contenido (opcional)",
"Image": "Imagen",
"Optional image for this content section": "Imagen opcional para esta sección de contenido",
"Order of this content within the blog": "Orden de este contenido dentro del blog",
"Blog Content": "Contenido del blog",
"Blog Contents": "Contenidos del blog",
"SEO Title": "Título de SEO",
"maximum length of page title is 70 characters and minimum length is 30": "la longitud máxima del título de la página es de 70 caracteres y la mínima es de 30",
"Keywords": "Palabras clave",
"keywords in the content that make it possible for people to find the site via search engines": "palabras clave en el contenido que permiten a las personas encontrar el sitio a través de motores de búsqueda",
"describes and summarizes the contents of the page for the benefit of users and search engines": "describe y resume el contenido de la página para beneficio de usuarios y motores de búsqueda",
"Blog SEO": "SEO del blog",
"Blog SEOs": "SEOs del blog",
"Service": "Servicio",
"View Content": "Ver contenido",
"Rate": "Calificar",
"pending": "pendiente",
"approved": "aprobado",
"canceled": "cancelado",
"Course": "Curso",
"certificate_file": "archivo_de_certificado",
"Created at": "Creado el",
"Recent Message": "Mensaje reciente",
"Recent Messages (Latest 50)": "Mensajes recientes (Últimos 50)",
"Read Status": "Estado de lectura",
"Read": "Leído",
"Unread": "No leído",
"Room Information": "Información de la sala",
"Relations": "Relaciones",
"Messages Count": "Número de mensajes",
"Room Type": "Tipo de sala",
"Group": "Grupo",
"Private": "Privado",
"Manage All Messages": "Gestionar todos los mensajes",
"Room not found": "Sala no encontrada",
"Read Statuses": "Estados de lectura",
"Message Information": "Información del mensaje",
"Attachments": "Archivos adjuntos",
"Additional Info": "Información adicional",
"Back to Chat Rooms": "Volver a las salas de chat",
"Content Preview": "Vista previa del contenido",
"%(type)s content": "Contenido de tipo %(type)s",
"Type": "Tipo",
"Text": "Texto",
"Audio": "Audio",
"Deleted": "Eliminado",
"Size": "Tamaño",
"{} bytes": "{} bytes",
"Attachment": "Archivo adjunto",
"📷 Image": "📷 Imagen",
"📎 File": "📎 Archivo",
"🔗 Legacy": "🔗 Heredado",
"Attachment Preview": "Vista previa del archivo adjunto",
"Open in new tab": "Abrir en una nueva pestaña",
"📥 Download File": "📥 Descargar archivo",
"Legacy URL": "URL heredada",
"Live Support Chat": "Chat de soporte en vivo",
"Room #{}": "Sala #{}",
"Chat with {}": "Chat con {}",
"Unknown": "Desconocido",
"Support": "Soporte",
"Force deletion without confirmation": "Forzar eliminación sin confirmación",
"Delete ALL rooms including course-related rooms": "Eliminar TODAS las salas, incluidas las de los cursos",
"This will delete ALL chat data including course rooms. Are you sure? (yes/no): ": "Esto eliminará TODOS los datos de chat, incluidas las salas de los cursos. ¿Está seguro? (sí/no): ",
"This will delete all messages and read statuses, and non-course rooms. Course rooms will be preserved but their messages will be deleted. Are you sure? (yes/no): ": "Esto eliminará todos los mensajes, estados de lectura y salas que no sean de cursos. Las salas de los cursos se conservarán pero sus mensajes se eliminarán. ¿Está seguro? (sí/no): ",
"Operation cancelled.": "Operación cancelada.",
"Chat data clearing completed successfully!": "¡La limpieza de datos de chat se completó con éxito!",
"Room Name": "Nombre de la sala",
"Initiator": "Iniciador",
"Recipient": "Destinatario",
"Is Locked": "Está bloqueado",
"If True, only the professor and admins can send new messages.": "Si es Verdadero, solo el profesor y los administradores pueden enviar nuevos mensajes.",
"Unread Messages Count": "Cantidad de mensajes no leídos",
"Room Message": "Mensaje de la sala",
"Room Messages": "Mensajes de la sala",
"Room": "Sala",
"Sender": "Remitente",
"Message Content": "Contenido del mensaje",
"Chat Type": "Tipo de chat",
"Content Size (bytes)": "Tamaño del contenido (bytes)",
"File Attachment": "Archivo adjunto",
"For file and audio messages": "Para mensajes de archivo y audio",
"Image Attachment": "Imagen adjunta",
"For image messages": "Para mensajes de imagen",
"Is Read": "Leído",
"Message Metadata": "Metadatos del mensaje",
"Sent At": "Enviado el",
"Deleted At": "Eliminado el",
"Is deleted": "Eliminado",
"Chat Message": "Mensaje de chat",
"Chat Messages": "Mensajes de chat",
"Message": "Mensaje",
"Read At": "Leído el",
"Message Read Status": "Estado de lectura del mensaje",
"Message Read Statuses": "Estados de lectura del mensaje",
"Course Weekly Schedule": "Horario semanal del curso",
"Course Features": "Características del curso",
"If set to inactive, the course will not be displayed.": "Si se establece como inactivo, el curso no se mostrará.",
"This field is required and cannot be cleared.": "Este campo es requerido y no se puede borrar.",
"This field is required.": "Este campo es requerido.",
"Select a value": "Seleccione un valor",
"Quiz": "Cuestionario",
"Quizzes": "Cuestionarios",
"Course Attachment": "Archivo adjunto del curso",
"Course Attachments": "Archivos adjuntos del curso",
"Chapter": "Capítulo",
"Chapters": "Capítulos",
"Recent Participant": "Participante reciente",
"Recent Participants (Latest 10)": "Participantes recientes (Últimos 10)",
"Select Student": "Seleccionar estudiante",
"Settings & Status": "Configuración y estado",
"Media": "Medios",
"Pricing": "Precios",
"Advanced Configuration": "Configuración avanzada",
"Price": "Precio",
"Free": "Gratis",
"Add Student": "Añadir estudiante",
"Course not found": "Curso no encontrado",
"Student {} is already enrolled in this course": "El estudiante {} ya está inscrito en este curso",
"Student {} has been successfully added to {}": "El estudiante {} ha sido añadido con éxito a {}",
"Add Student to {}": "Añadir estudiante a {}",
"Manage All Students": "Gestionar todos los estudiantes",
"File Size": "Tamaño del archivo",
"Enrollment Details": "Detalles de inscripción",
"Duration": "Duración",
"min": "min",
"Timing": "Horario",
"Session User": "Usuario de la sesión",
"Session Users": "Usuarios de la sesión",
"Session Recording": "Grabación de la sesión",
"Session Recordings": "Grabaciones de la sesión",
"Session Timing": "Horario de la sesión",
"Files": "Archivos",
"Clear all course-related data from the database": "Limpiar todos los datos relacionados con los cursos de la base de datos",
"Specify a single model to clear (e.g., \"Course\", \"Lesson\", etc.)": "Especifique un modelo único para limpiar (por ejemplo, \"Course\", \"Lesson\", etc.)",
"Clear only legacy models (before migration to new structure)": "Limpiar solo modelos heredados (antes de la migración a la nueva estructura)",
"This will delete ALL course-related data. Are you sure? (yes/no): ": "Esto eliminará TODOS los datos relacionados con los cursos. ¿Está seguro? (sí/no): ",
", ": ", ",
"Course data clearing completed": "Limpieza de datos de cursos completada",
"Category Name": "Nombre de la categoría",
"Beginner": "Principiante",
"Mid Level": "Nivel medio",
"Advanced": "Avanzado",
"Inactive": "Inactivo",
"Upcoming": "Próximo",
"Registering": "Inscribiéndose",
"Ongoing": "En curso",
"Finished": "Finalizado",
"Youtube Link": "Enlace de YouTube",
"Video File": "Archivo de video",
"Course Title": "Título del curso",
"Category": "Categoría",
"Preview Video Type (YouTube Link or File Upload)": "Tipo de vista previa de video (Enlace de YouTube o Subir archivo)",
"Video Link": "Enlace de video",
"Is Online Course": "Es un curso en línea",
"Online Class Link": "Enlace de la clase en línea",
"Course Level": "Nivel del curso",
"Duration (in hours)": "Duración (en horas)",
"Number of Lessons": "Número de lecciones",
"Course Description": "Descripción del curso",
"Short Description": "Descripción corta",
"Is Free": "Es gratis",
"Course Price": "Precio del curso",
"Discount Percentage": "Porcentaje de descuento",
"Course Final Price": "Precio final del curso",
"This field is automatically calculated based on the discount percentage.": "Este campo se calcula automáticamente en función del porcentaje de descuento.",
"Lock Group Chat": "Bloquear chat grupal",
"Lock Private Chats with Professor": "Bloquear chats privados con el profesor",
"Course features": "Características del curso",
"Glossary Title": "Título del glosario",
"Glossary": "Glosario",
"Glossaries": "Glosarios",
"Course Glossary": "Glosario del curso",
"Course Glossaries": "Glosarios del curso",
"Attachment Title": "Título del archivo adjunto",
"Attachment File": "Archivo adjunto",
"File Size (in bytes)": "Tamaño del archivo (en bytes)",
"Lesson Title": "Título de la lección",
"Content Type": "Tipo de contenido",
"Link": "Enlace",
"Duration (in minutes)": "Durasi (dalam menit)", # Correction for Spanish
"Lesson": "Lección",
"Lessons": "Lecciones",
"Chapter Title": "Título del capítulo",
"Priority": "Prioridad",
"Is Active": "Activo",
"Course Chapter": "Capítulo del curso",
"Course Chapters": "Capítulos del curso",
"Sub-lesson Title": "Título de la sub-lección",
"Course Lesson": "Lección del curso",
"Course Lessons": "Lecciones del curso",
"Lesson Completion": "Penyelesaian Pelajaran", # Correction for Spanish
"Lesson Completions": "Completados de lecciones",
"Course that this live session belongs to.": "Curso al que pertenece esta sesión en vivo.",
"Room ID": "ID de la sala",
"Identifier of the PlugNMeet room.": "Identificador de la sala de PlugNMeet.",
"Subject": "Tema",
"Topic of the live session.": "Tema de la sesión en vivo.",
"Started At": "Iniciado el",
"Start time of the live session.": "Hora de inicio de la sesión en vivo.",
"Ended At": "Finalizado el",
"End time of the live session.": "Hora de finalización de la sesión en vivo.",
"Recorded File": "Archivo grabado",
"Recorded file of the live session.": "Archivo grabado de la sesión en vivo.",
"Course Live Session": "Sesión en vivo del curso",
"Course Live Sessions": "Sesiones en vivo del curso",
"Participant": "Participante",
"Moderator": "Moderador",
"Observer": "Observador",
"Live Session": "Sesión en vivo",
"Live session that the user joined.": "Sesión en vivo a la que se unió el usuario.",
"User participating in the live session.": "Usuario que participa en la sesión en vivo.",
"Role": "Rol",
"Role of the user in the session": "Rol del usuario en la sesión",
"Entered At": "Entró el",
"Time the user entered the session": "Hora en que el usuario entró a la sesión",
"Exited At": "Salió el",
"Time the user exited the session": "Hora en que el usuario salió de la sesión",
"Is online": "Está en línea",
"Is the user currently online?": "¿Está el usuario actualmente en línea?",
"User Session": "Sesión de usuario",
"User Sessions": "Sesiones de usuarios",
"Voice": "Voz",
"Video": "Video",
"Live session that this recording belongs to.": "Sesión en vivo a la que pertenece esta grabación.",
"Title of the recording": "Título de la grabación",
"Recording File": "Archivo de grabación",
"File of the recorded session": "Archivo de la sesión grabada",
"File Duration": "Duración del archivo",
"Duration of the recording file": "Duración del archivo de grabación",
"Recording Type": "Tipo de grabación",
"Type of the recording (voice or video)": "Tipo de grabación (voz o video)",
"Thumbnail image for video recordings": "Imagen en miniatura para grabaciones de video",
"Time the recording was created": "Hora en que se creó la grabación",
"The datetime when the recording was last updated": "La fecha y hora en que la grabación se actualizó por última vez",
"Whether this recording is active or not": "Si esta grabación está activa o no",
"Live Session Recording": "Grabación de sesión en vivo",
"Live Session Recordings": "Grabaciones de sesiones en vivo",
"Joined Date": "Fecha de registro",
"Participants": "Participantes",
"Submit form": "Enviar formulario",
"Dates": "Fechas",
"georgian": "gregoriano",
"lunar": "lunar",
"National": "Nacional",
"International": "Internacional",
"Religious": "Religioso",
"is global": "es global",
"check this field if event is global": "marque este campo si el evento es global",
"Choose between georgian or lunar. default to georgian": "Elija entre gregoriano o lunar. Por defecto gregoriano",
"occasion type": "tipo de ocasión",
"dates": "fechas",
"is yearly": "es anual",
"check this field if event is annually": "marque este campo si el evento es anual",
"event type": "tipo de evento",
"Status & Classification": "Estado y clasificación",
"Collection": "Colección",
"Basic Info": "Información básica",
"Publication Info": "Información de publicación",
"Rating & Stats": "Calificación y estadísticas",
"Publisher": "Editorial",
"Dates (Hijri)": "Fechas (Hijri)",
"Dates (Miladi)": "Fechas (Miliadi)",
"References": "Referencias",
"Name": "Nombre",
"Value": "Valor",
"Book Reference": "Referencia del libro",
"Transmitter": "Transmisor",
"Scholar Name": "Nombre del erudito",
"Shia": "Shía",
"Sunni": "Sunní",
"Sect Name": "Nombre de la secta",
"Hadis Sect": "Secta de hadiz",
"Hadis Sects": "Sectas de hadiz",
"Quran": "Corán",
"Hadith": "Hadiz",
"History": "Historia",
"Fatwa": "Fatwa",
"Quote": "Cita",
"Sect": "Secta",
"Source Type": "Tipo de origen",
"xmind file": "archivo xmind",
"Child category must have the same sect_type as its parent. ": "La categoría hijo debe tener el mismo sect_type que su padre. ",
"Hadis Category": "Categoría de hadiz",
"Hadis Categories": "Categorías de hadices",
"hadis collection": "colección de hadices",
"hadis collections": "colecciones de hadices",
"hadis": "hadiz",
"hadis in collection": "hadiz en colección",
"hadis in collections": "hadices en colecciones",
"hadis status": "estado del hadiz",
"hadis statuses": "estados de hadices",
"category": "categoría",
"number": "número",
"Title Narrator": "Narrador del título",
"text": "texto",
"translation": "traducción",
"visibility": "visibilidad",
"Status text": "Texto de estado",
"Address": "Dirección",
"links": "enlaces",
"tags": "etiquetas",
"share link": "enlace para compartir",
"Explanation": "Explicación",
"hadises": "hadices",
"book reference": "referencia del libro",
"Hadith Number in Book": "Número de hadiz en el libro",
"Hadis Reference": "Referencia de hadiz",
"Hadis References": "Referencias de hadices",
"thumbnail": "miniatura",
"Priority of the image, lower values mean higher priority.": "Prioridad de la imagen, valores más bajos significan mayor prioridad.",
"Reference Image": "Imagen de referencia",
"Reference Images": "Imágenes de referencia",
"hadis correction": "corrección de hadiz",
"Original Text": "Texto original",
"Hadis Correction": "Corrección de hadiz",
"Hadis Corrections": "Correcciones de hadices",
"Hadis Interpretation": "Interpretación de hadiz",
"Hadis Interpretations": "Interpretaciones de hadices",
"Source URL": "URL de origen",
"ISBN": "ISBN",
"volume": "volumen",
"Total Number of Volumes": "Número total de volúmenes",
"year of publication": "año de publicación",
"number of pages": "número de páginas",
"subject area": "área del tema",
"type": "tipo",
"Researcher": "Investigador",
"City of Publication": "Ciudad de publicación",
"Country of Publication": "País de publicación",
"Edition Number": "Número de edición",
"rate": "calificación",
"Rating from 0 to 5": "Calificación de 0 a 5",
"Book References": "Referencias de libros",
"image": "imagen",
"Volume": "Volumen",
"Book Reference Image": "Imagen de referencia del libro",
"Book Reference Images": "Imágenes de referencia de libros",
"Document File": "Archivo de documento",
"e.g., Volume 1, 01.pdf": "ej., Volumen 1, 01.pdf",
"Book Reference Document": "Documento de referencia del libro",
"Book Reference Documents": "Documentos de referencia de libros",
"Birth Year (Hijri)": "Año de nacimiento (Hijri)",
"Death Year (Hijri)": "Año de fallecimiento (Hijri)",
"Birth Year (Miladi)": "Año de nacimiento (Miladi)",
"Death Year (Miladi)": "Año de fallecimiento (Miladi)",
"book references": "referencias de libros",
"Book Author": "Autor del libro",
"Book Authors": "Autores de libros",
"book attribute": "atributo del libro",
"Book Attribute": "Atributo del libro",
"Book Attributes": "Atributos de libros",
"layer number": "número de capa",
"Narrator Layer": "Capa del narrador",
"Narrator Layers": "Capas de narradores",
"Layer": "Capa",
"Transmitter Reliability": "Fiabilidad del transmisor",
"Transmitter Reliabilities": "Fiabilidad de transmisores",
"Other": "Otro",
"Kunya": "Kunya",
"Known as": "Conocido como",
"Nick Name": "Apodo",
"Raw Relatives Data": "Datos brutos de familiares",
"Father": "Padre",
"Mother": "Madre",
"Siblings": "Hermanos",
"Freed Slave Of": "Esclavo liberado de",
"Occupation": "Ocupación",
"Features": "Características",
"Tags": "Etiquetas",
"Origin": "Origen",
"Lived in": "Vivió en",
"Died in": "Murió en",
"Age at Death": "Edad al morir",
"Generation": "Generación",
"reliability": "fiabilidad",
"Madhhab/School of Thought": "Madhhab/Escuela de pensamiento",
"In Sahih Muslim": "En Sahih Muslim",
"Is this narrator present in Sahih Muslim?": "¿Está este narrador presente en Sahih Muslim?",
"In Sahih Bukhari": "En Sahih Bukhari",
"Is this narrator present in Sahih Bukhari?": "¿Está este narrador presente en Sahih Bukhari?",
"Transmitters": "Transmisores",
"transmitter": "transmisor",
"Chain Index": "Índice de la cadena",
"Which chain/branch this belongs to (0, 1, 2...)": "A qué cadena/rama pertenece (0, 1, 2...)",
"narrator layer": "capa de narrador",
"The layer/class (Tabaqah) this narrator belongs to": "La capa/clase (Tabaqah) a la que pertenece este narrador",
"reliability status": "estado de fiabilidad",
"Reliability status of the narrator": "Estado de fiabilidad del narrador",
"Order in the chain of transmission": "Orden en la cadena de transmisión",
"is gap": "hay brecha",
"Hadis Transmitter": "Transmisor de hadiz",
"Hadis Transmitters": "Transmisores de hadices",
"Opinion Status": "Estado de opinión",
"Opinion Statuses": "Estados de opiniones",
"Opinion Text": "Texto de opinión",
"opinion status": "estado de opinión",
"Transmitter Opinion": "Opinión del transmisor",
"Transmitter Opinions": "Opiniones de transmisores",
"Transmitter Original Text": "Texto original del transmisor",
"Version Name": "Nombre de la versión",
"Published Date": "Fecha de publicación",
"Release Description": "Descripción del lanzamiento",
"Category Tree Editor": "Editor del árbol de categorías",
"Make your category and sort it by drag and drop . and try to edit items by double click.": "Cree su categoría y ordénela arrastrando y soltando, e intente editar los elementos haciendo doble clic.",
"Parent: ": "Padre: ",
"Category Level:": "Nivel de categoría:",
"L1": "L1",
"L2": "L2",
"L3": "L3",
"Level 1 categories represent source types: Shia or Sunni": "Las categorías de nivel 1 representan tipos de origen: Shia o Sunni",
"Level 2 categories are children of Shia/Sunni with content type: Quran or Hadith": "Las categorías de nivel 2 son hijos de Shia/Sunni con tipo de contenido: Corán o Hadiz",
"Level 3 categories are children of Quran or Hadith categories": "Las categorías de nivel 3 son hijos de categorías de Corán o Hadiz",
"Parent Category:": "Categoría padre:",
"-- Select Parent Category --": "-- Seleccionar categoría padre --",
"Select a parent category or leave empty for top-level category": "Seleccione una categoría padre o déjela vacía para la categoría de nivel superior",
"Search for a category...": "Buscar una categoría...",
"No categories found": "No se encontraron categorías",
"Searching...": "Buscando...",
"Type to search...": "Escriba para buscar...",
"Level 1 Categories": "Categorías de nivel 1",
"Level 2 Categories": "Categorías de nivel 2",
"Level 3 Categories": "Categorías de nivel 3",
"Level 1 must have a source type": "El nivel 1 debe tener un tipo de origen",
"Level 2 must have a category type": "El nivel 2 debe tener un tipo de categoría",
"Add Child Category": "Añadir categoría hijo",
"No Items Found": "No se encontraron elementos",
"No Quran categories": "No hay categorías de Corán",
"No Hadith categories": "No hay categorías de Hadiz",
"Add Category": "Añadir categoría",
"Save And Edit Next Hadis": "Guardar y editar siguiente hadiz",
"Save And Edit Previus Hadis": "Guardar y editar hadiz anterior",
"Save And Edit Random": "Guardar y editar aleatorio",
"Categories": "Categorías",
"Collections": "Colecciones",
"File Information": "Información del archivo",
"Books": "Libros",
"Number of Books": "Número de libros",
"Mark selected categories as active": "Marcar las categorías seleccionadas como activas",
"%(count)d categories were successfully marked as active.": "%(count)d categorías se marcaron con éxito como activas.",
"Mark selected categories as inactive": "Marcar las categorías seleccionadas como inactivas",
"%(count)d categories were successfully marked as inactive.": "%(count)d categorías se marcaron con éxito como inactivas.",
"Toggle status": "Alternar estado",
"active": "activo",
"inactive": "inactivo",
"Category '%(title)s' is now %(status)s.": "La categoría '%(title)s' ahora está %(status)s.",
"Library": "Biblioteca",
"Book Collection": "Colección de libros",
"Book Collections": "Colecciones de libros",
"Pinned Book Collection": "Colección de libros fijada",
"Pinned Book Collections": "Colecciones de libros fijadas",
"Middle Section Book Collection": "Colección de libros de la sección central",
"Middle Section Book Collections": "Colecciones de libros de la sección central",
"Summary Title": "Título del resumen",
"Main Themes": "Temas principales",
"List of main themes": "Lista de temas principales",
"Notable Works": "Obras destacadas",
"List of notable works": "Lista de obras destacadas",
"Number of Pages": "Número de páginas",
"eg. 34": "ej. 34",
"Pin to top": "Fijar al principio",
"File Type": "Tipo de archivo",
"Book": "Libro",
"book": "libro",
"Book Download": "Descarga de libro",
"Book Downloads": "Descargas de libros",
"Playlist": "Lista de reproducción",
"Playlists": "Listas de reproducción",
"Number of Playlists": "Número de listas de reproducción",
"Search by title or slug": "Buscar por título o slug",
"Search categories": "Buscar categorías",
"Search by title, slug, or description": "Buscar por título, slug o descripción",
"Search podcasts": "Buscar podcasts",
"Audio Information": "Información de audio",
"This podcast is already used in playlist \"{}\". Each podcast can only be in one playlist.": "Este podcast ya se utiliza en la lista de reproducción \"{}\". Cada podcast solo puede estar en una lista de reproducción.",
"Playlist Item": "Elemento de la lista de reproducción",
"Playlist Items": "Elementos de las listas de reproducción",
"Display Settings": "Configuración de pantalla",
"Will be auto-calculated from podcasts": "Se calculará automáticamente a partir de los podcasts",
"Number of Podcasts": "Número de podcasts",
"A podcast cannot be used multiple times in the same playlist.": "Un podcast no se puede usar varias veces en la misma lista de reproducción.",
"Podcast \"{}\" is already used in playlist \"{}\". Each podcast can only be in one playlist.": "El podcast \"{}\" ya se utiliza en la lista de reproducción \"{}\". Cada podcast solo puede estar en una lista de reproducción.",
"Podcast Category": "Categoría de podcast",
"Podcast Categories": "Categorías de podcasts",
"Podcast Collection": "Colección de podcasts",
"Podcasts Collections": "Colecciones de podcasts",
"download_count view count": "recuento de descargas recuento de visitas",
"Podcast": "Podcast",
"Podcasts": "Podcasts",
"slogan": "eslogan",
"description": "descripción",
"total time": "tiempo total",
"Podcast Playlist": "Lista de reproducción de podcast",
"Podcast Playlists": "Listas de reproducción de podcasts",
"playlist": "lista de reproducción",
"Podcast Playlist in Collection": "Lista de reproducción de podcast en colección",
"Podcast Playlists in Collections": "Listas de reproducción de podcasts en colecciones",
"podcast": "podcast",
"User Playlist": "Lista de reproducción de usuario",
"User Playlists": "Listas de reproducción de usuarios",
"Correct Answer": "Respuesta correcta",
"User Email": "Correo electrónico del usuario",
"Questions": "Preguntas",
"Manage All Participants": "Gestionar todos los participantes",
"Quiz not found": "Cuestionario no encontrado",
"View Course": "Ver curso",
"Course not found for this quiz.": "Curso no encontrado para este cuestionario.",
"Total Timing": "Tiempo total",
"Seconds take to finish the quiz": "Segundos que toma finalizar el cuestionario",
"Question Score": "Puntuación de la pregunta",
"Timing Score": "Puntuación de tiempo",
"Total Score": "Puntuación total",
"Option 1": "Opción 1",
"Option 2": "Opción 2",
"Option 3": "Opción 3",
"Option 4": "Opción 4",
"Question": "Pregunta",
"Selected Option": "Opción seleccionada",
"At Time": "A la hora",
"Seconds Take to Answer": "Segundos que toma responder",
"User Quiz Answer": "Respuesta del cuestionario del usuario",
"User Quiz Answers": "Respuestas de cuestionarios de usuarios",
"Quiz Title": "Título del cuestionario",
"Each Question Timing": "Tiempo de cada pregunta",
"Rank Quiz": "Clasificar cuestionario",
"Rank Quizzes": "Clasificar cuestionarios",
"Payment Receipt": "Recibo de pago",
"Payment Receipts": "Recibos de pagos",
"Payment Status": "Estado del pago",
"Paid": "Pagado",
"Failed": "Fallido",
"Waiting Approval": "Esperando aprobación",
"Pending": "Pendiente",
"Receipts Count": "Cantidad de recibos",
"receipts": "recibos",
"No receipts": "Sin recibos",
"Course Participant Status": "Estado del participante del curso",
"Enrolled": "Inscrito",
"Not Enrolled": "No inscrito",
"Not Applicable": "No aplicable",
"Transaction status updated to SUCCESS. User {user_email} is now enrolled in course '{course_title}'.": "Estado de la transacción actualizado a ÉXITO. El usuario {user_email} ahora está inscrito en el curso '{course_title}'.",
"Transaction status updated to SUCCESS, but there was an issue enrolling user {user_email} in course '{course_title}'. Please check the logs.": "Estado de la transacción actualizado a ÉXITO, pero hubo un problema al inscribir al usuario {user_email} en el curso '{course_title}'. Por favor revise los registros.",
"Waiting for Approval": "Esperando aprobación",
"Success": "Éxito",
"Receipt": "Recibo",
"Payment Gateway": "Pasarela de pago",
"Transaction Payment Method": "Método de pago de la transacción",
"Transaction Price": "Precio de la transacción",
"Transaction Status": "Estado de la transacción",
"Updated at": "Actualizado el",
"Is Deleted": "Eliminado",
"Transaction Participant": "Participante de la transacción",
"Transaction Participants": "Participantes de las transacciones",
"phone": "teléfono",
"Participant Info": "Información del participante",
"Participant Infos": "Información de participantes",
"Transaction": "Transacción",
"Receipt File": "Archivo de recibo",
"Upload payment receipt image or document": "Subir imagen o documento del recibo de pago",
"Uploaded At": "Subido el",
"Optional description or notes about the receipt": "Descripción o notas opcionales sobre el recibo",
"Transaction Receipt": "Recibo de transacción",
"Transaction Receipts": "Recibos de transacciones",
"Number of Videos": "Número de videos",
"Search videos": "Buscar videos",
"Video Information": "Información de video",
"This video is already used in playlist \"{}\". Each video can only be in one playlist.": "Este video ya se utiliza en la lista de reproducción \"{}\". Cada video solo puede estar en una lista de reproducción.",
"Will be auto-calculated from videos": "Se calculará automáticamente a partir de los videos",
"A video cannot be used multiple times in the same playlist.": "Un video no se puede usar varias veces en la misma lista de reproducción.",
"Video \"{}\" is already used in playlist \"{}\". Each video can only be in one playlist.": "El video \"{}\" ya se utiliza en la lista de reproducción \"{}\". Cada video solo puede estar en una lista de reproducción.",
"Video Category": "Categoría de video",
"Video Categories": "Categorías de videos",
"Video Collection": "Colección de videos",
"Video Collections": "Colecciones de videos",
"Pinned Video Collection": "Colección de videos fijada",
"Pinned Video Collections": "Colecciones de videos fijadas",
"Middle Section Video Collection": "Colección de videos de la sección central",
"Middle Section Video Collections": "Colecciones de videos de la sección central",
"This field is required when video type is Link.": "Este campo es requerido cuando el tipo de video es Enlace.",
"This field is required when video type is File.": "Este campo es requerido cuando el tipo de video es Archivo.",
"Video Playlist": "Lista de reproducción de video",
"Video Playlists": "Listas de reproducción de videos",
"Video Playlist in Collection": "Lista de reproducción de video en colección",
"Video Playlists in Collections": "Listas de reproducción de videos en colecciones",
"video": "video",
"Arabic": "Árabe",
"Turkish": "Turco",
"Persian": "Persa",
"Urdu": "Urdu",
"Bengali": "Bengalí",
"Indonesian": "Indonesio",
"French": "Francés",
"Russian": "Ruso",
"Uzbek": "Uzbeko",
"Kyrgyz": "Kirguís",
"Tajik": "Tayiko",
"Azerbaijani": "Azerbaiyano",
"English": "Inglés",
"German": "Alemán",
"Mandarin Chinese": "Chino mandarín",
"Hausa": "Hausa",
"Swahili": "Suajili",
"Spanish": "Español",
"Middle Collections": "Colecciones centrales",
"Pinned Collections": "Colecciones fijadas",
"Regular Collections": "Colecciones regulares",
"Guest Users": "Usuarios invitados",
"Groups": "Grupos",
"Live Sessions": "Sesiones en vivo",
"Dashboard": "Panel de control",
"Calender": "Calendario",
"All Users": "Todos los usuarios",
"Students": "Estudiantes",
"Professors": "Profesores",
"Certificates": "Certificados",
"Transactions": "Transacciones",
"Chat Rooms": "Salas de chat",
"Live Chat": "Chat en vivo",
"Libraries": "Bibliotecas",
"Videos": "Videos",
"Hadis": "Hadiz",
"Hadis Tags": "Etiquetas de hadiz",
"Hadis Status": "Estado de hadiz",
"System Settings": "Configuración del sistema",
"Global Preferences": "Preferencias globales",
"Home": "Inicio",
"Change password": "Cambiar contraseña",
"Please correct the error below.": "Por favor corrija el error de abajo.",
"Please correct the errors below.": "Por favor corrija los errores de abajo.",
"Enter a new password for the user %(username)s.": "Ingrese una nueva contraseña para el usuario %(username)s.",
"Django site admin": "Administración del sitio de Django",
"New Chat": "Nuevo chat",
"Select Contact": "Seleccionar contacto",
"Search users...": "Buscar usuarios...",
"No Chat Selected": "Ningún chat seleccionado",
"Select a chat from the sidebar to start messaging": "Seleccione un chat de la barra lateral para comenzar a enviar mensajes",
"Type your message...": "Escriba su mensaje...",
"Failed to load users.": "Error al cargar los usuarios.",
"No users found.": "No se encontraron usuarios.",
"No active chats found.": "No se encontraron chats activos.",
"Group Chat": "Chat grupal",
"Private Chat": "Chat privado",
"No messages yet. Start the conversation!": "¡Aún no hay mensajes. Comience la conversación!",
"Unsorted Uploads": "Cargas no ordenadas",
"Owner": "Propietario",
"Action": "Acción",
"Change '%(item_label)s' folder details": "Cambiar detalles de la carpeta '%(item_label)s'",
"Folder Icon": "Ikon Folder", # Correction for Spanish: "Icono de carpeta"
"%(counter)s folder": "%(counter)s carpeta",
"%(counter)s folders": "%(counter)s carpetas",
"%(counter)s file": "%(counter)s archivo",
"%(counter)s files": "%(counter)s archivos",
"Change folder details": "Cambiar detalles de la carpeta",
"Remove folder": "Eliminar carpeta",
"Select this file": "Seleccionar este archivo",
"Change '%(item_label)s' details": "Cambiar detalles de '%(item_label)s'",
"disabled": "desactivado",
"enabled": "activado",
"Canonical url '%(item_label)s'": "URL canónica '%(item_label)s'",
"Download '%(item_label)s'": "Descargar '%(item_label)s'",
"Remove file": "Eliminar archivo",
"Drop files here or use the \"Upload Files\" button": "Suelte los archivos aquí o use el botón \"Subir archivos\"",
"Drop your file to upload into:": "Suelte su archivo para subirlo a:",
"Upload": "Subir",
"cancel": "cancelar",
"Upload success!": "¡Carga exitosa!",
"Upload canceled!": "¡Carga cancelada!",
"previous": "anterior",
"Page %(number)s of %(num_pages)s.": "Página %(number)s de %(num_pages)s.",
"next": "siguiente",
"Click here to select the objects across all pages": "Haga clic aquí para seleccionar los objetos en todas las páginas",
"Select all %(total_count)s": "Seleccionar todos los %(total_count)s",
"Clear selection": "Limpiar selección",
"System Overview": "Información general del sistema",
"No statistics available for this panel.": "No hay estadísticas disponibles para este panel.",
"Top 5 Popular Courses": "Los 5 cursos más populares",
"No courses found.": "No se encontraron cursos.",
"Waiting": "Esperando",
"No transactions recorded yet.": "Aún no se registran transacciones.",
"Course Analytics Dashboard": "Panel de analíticas del curso",
"Comprehensive analytics and insights for your course": "Analíticas y estadísticas completas de su curso",
"Export": "Exportar",
"Refresh Data": "Actualizar datos",
"Total Lessons": "Total de lecciones",
"Total Quizzes": "Total de cuestionarios",
"Active Participants": "Participantes activos",
"Lesson Completion Distribution": "Distribución de finalización de lecciones",
"Percentage of course completion by participants": "Porcentaje de finalización del curso por participantes",
"Quiz Scores Distribution": "Distribución de puntuaciones de cuestionarios",
"Distribution of scores across all quizzes": "Distribución de puntuaciones en todos los cuestionarios",
"Course Engagement Metrics": "Metricas de participación en el curso",
"Lesson Completion Rate": "Tasa de finalización de lecciones",
"Average percentage of lessons completed by participants": "Porcentaje promedio de lecciones completadas por participantes",
"Quiz Participation Rate": "Tasa de participación en cuestionarios",
"Percentage of participants who attempted at least one quiz": "Porcentaje de participantes que intentaron al menos un cuestionario",
"Average Quiz Score": "Puntuación promedio de cuestionarios",
"Average score across all quizzes": "Puntuación promedio en todos los cuestionarios",
"Top Performing Students": "Estudiantes con mejor rendimiento",
"Completion": "Finalización",
"Avg. Score": "Punt. promedio",
"Recent Activity": "Actividad reciente",
"Course Overview": "Información general del curso",
"Key metrics and statistics for this course": "Métricas clave y estadísticas para este curso",
"View Detailed Analytics": "Ver analíticas detalladas",
"Course Summary": "Resumen del curso",
"hours": "horas",
"Level": "Nivel",
"Django site adminssss": "Django site adminssss",
"Click a language code to add or edit its title.": "Haga clic en un código de idioma para agregar o editar su título.",
"Development": "Desarrollo",
"Production": "Producción",
"Imam Javad Admin": "Admin de Imam Javad",
"System Administration": "Administración del sistema",
"Imam Javad School": "Escuela de Imam Javad",
"Imam Javad Site": "Sitio de Imam Javad",
"Dovoodi Site": "Sitio de Dovoodi",
"Dovoodi Admin": "Admin de Dovoodi",
"Dovodbi Application": "Aplicación de Dovoodi",
"Active Students": "Estudiantes activos",
"Active Courses": "Cursos activos",
"Total Blogs": "Total de blogs",
"30-Day Revenue": "Ingresos de 30 días",
"Updated Today": "Actualizado hoy",
"Pending Certificates": "Certificados pendientes",
"Requires Action": "Requiere acción",
"Hadith Database": "Base de datos de hadices",
"Books & Articles": "Libros y artículos",
"Multimedia": "Multimedia",
"Detail": "Detalle",
"Language Code": "Código de idioma",
"Tour Features": "Características del recorrido",
"Red": "Rojo",
"Green": "Verde",
"Blue": "Azul",
"Yellow": "Amarillo",
"Orange": "Naranja",
"Purple": "Púrpura",
"Gray": "Gris",
"color": "color",
"Weekly Timing": "Horario semanal",
"Monday": "Lunes",
"Tuesday": "Martes",
"Wednesday": "Miércoles",
"Thursday": "Jueves",
"Friday": "Viernes",
"Saturday": "Sábado",
"Sunday": "Domingo",
"Day": "Día",
"Time": "Hora",
"year": "año",
"month": "mes",
"day": "día",
"Search": "Buscar",
"Search apps and models": "Buscar aplicaciones y modelos",
"View site": "Ver sitio",
"Log out": "Cerrar sesión",
"general": "general",
"manage all Participants": "gestionar todos los Participantes",
"questions": "preguntas",
"question": "pregunta",
"option": "opción",
"correct answer": "respuesta correcta",
"Total score": "Puntuación total",
"Timing score": "Puntuación de tiempo",
"Question score": "Puntuación de la pregunta",
"Total timing": "Tiempo total",
"Ended at": "Finalizado el",
"Started at": "Iniciado el",
"Participant Answer": "Respuesta del participante",
"Selected option": "Opción seleccionada",
"Seconds take to answer": "Segundos que toma responder",
"Recent Messages Latest": "Últimos mensajes recientes",
"Room name": "Nombre de la sala",
"Active Course": "Curso activo",
"Popular Courses": "Cursos populares",
"Success:": "Éxito:",
"Pending:": "Pendiente:",
"Waiting:": "Esperando:",
"Failed:": "Fallido:",
"Choose file to upload": "Elegir archivo para subir",
"Date from": "Fecha desde",
"Date to": "Fecha hasta",
"By Date Joined": "Por fecha de registro",
"Type to search": "Escriba para buscar",
"Apply filters": "Aplicar filtros",
"From": "Desde",
"To": "Hasta",
"video link": "enlace de video",
"Delete": "Eliminar",
"Add Weekly Timing": "Agregar horario semanal",
"Delete All": "Eliminar todo",
"Add Course Features": "Agregar características del curso",
"Is Staff": "Es personal",
"Deleted at": "Eliminado el",
"Type of the user": "Tipo del usuario",
"Raw passwords are not stored, so there is no way to see this user’s password, but you can change the password using this form.": "Las contraseñas en bruto no se almacenan, por lo que no hay forma de ver la contraseña de este usuario, pero puede cambiar la contraseña usando este formulario.",
"Users:": "Usuarios:",
"users :": "usuarios :",
"By": "Por",
"( both fields are showing )": "( se muestran ambos campos )",
"(both fields are showing)": "(se muestran ambos campos)",
"Member": "Miembro",
"Staff": "Personal"
}
path = 'locale/es/LC_MESSAGES/django_es.json'
with open(path, 'r', encoding='utf-8') as f:
data = json.load(f)
for k in data:
if k in translations:
data[k] = translations[k]
with open(path, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False)
print("Updated django_es.json with Spanish translations.")