- Replace the three Attendees-tab modals (Manual Ticket / Add at Door / Invite Guest) with a single Add Ticket modal: Paid/Unpaid/Guest segmented control, shared fields, "Check in now" for all types, and a live "what happens" preview, backed by one POST /api/tickets/admin/add. - Add tickets.payment_status (paid | unpaid | comp) with a backfill migration; keep it in sync on every payment-settlement path (mark-paid, admin approval, Lightning, free bookings, hold recovery). - Show Paid/Unpaid/Comp badges in the attendee list, count only paid tickets toward revenue, let unpaid tickets be resolved via Mark Paid, and flag unpaid tickets with their balance due in the door scanner. - Replace the per-page useStatsPrivacy hook with an admin-wide PrivacyContext + SensitiveValue mask, toggled from the admin layout. - Add server-side pagination with page-size options to the users page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
369 lines
12 KiB
JSON
369 lines
12 KiB
JSON
{
|
|
"common": {
|
|
"loading": "Cargando...",
|
|
"error": "Ocurrió un error",
|
|
"save": "Guardar",
|
|
"cancel": "Cancelar",
|
|
"delete": "Eliminar",
|
|
"edit": "Editar",
|
|
"create": "Crear",
|
|
"search": "Buscar",
|
|
"filter": "Filtrar",
|
|
"submit": "Enviar",
|
|
"back": "Volver",
|
|
"next": "Siguiente",
|
|
"viewAll": "Ver Todo",
|
|
"learnMore": "Saber Más",
|
|
"moreInfo": "Más Info"
|
|
},
|
|
"nav": {
|
|
"home": "Inicio",
|
|
"events": "Eventos",
|
|
"community": "Comunidad",
|
|
"contact": "Contacto",
|
|
"faq": "Preguntas Frecuentes",
|
|
"joinEvent": "Unirse al Evento",
|
|
"login": "Iniciar Sesión",
|
|
"register": "Registrarse",
|
|
"logout": "Cerrar Sesión",
|
|
"admin": "Admin",
|
|
"dashboard": "Mi Cuenta"
|
|
},
|
|
"home": {
|
|
"hero": {
|
|
"title": "Practica Inglés y Español en Asunción",
|
|
"subtitle": "Conoce gente. Aprende idiomas. Diviértete.",
|
|
"cta": "Unirse al Próximo Evento"
|
|
},
|
|
"about": {
|
|
"title": "¿Qué es Spanglish?",
|
|
"description": "Spanglish es una comunidad de intercambio de idiomas donde hablantes de español e inglés se reúnen para practicar, aprender y conectar. Nuestros eventos mensuales crean un ambiente amigable para el aprendizaje de idiomas a través de conversaciones reales.",
|
|
"feature1": "Eventos Mensuales",
|
|
"feature1Desc": "Encuentros regulares en lugares acogedores",
|
|
"feature2": "Hablantes Nativos",
|
|
"feature2Desc": "Practica con hablantes nativos de inglés y español",
|
|
"feature3": "Todos los Niveles",
|
|
"feature3Desc": "Desde principiantes hasta avanzados"
|
|
},
|
|
"nextEvent": {
|
|
"title": "Próximo Evento",
|
|
"noEvents": "No hay eventos programados",
|
|
"stayTuned": "¡Mantente atento a los anuncios!"
|
|
},
|
|
"gallery": {
|
|
"title": "Nuestra Comunidad"
|
|
},
|
|
"carousel": {
|
|
"title": "Momentos de eventos pasados",
|
|
"subtitle": "Un vistazo a nuestros encuentros de intercambio de idiomas",
|
|
"cta": "Ver próximos eventos",
|
|
"previous": "Imagen anterior",
|
|
"next": "Imagen siguiente"
|
|
},
|
|
"newsletter": {
|
|
"title": "Mantente Informado",
|
|
"description": "Suscríbete para recibir notificaciones sobre próximos eventos",
|
|
"placeholder": "Ingresa tu email",
|
|
"button": "Suscribirse",
|
|
"success": "¡Gracias por suscribirte!",
|
|
"error": "Error al suscribirse. Por favor intenta de nuevo."
|
|
},
|
|
"faq": {
|
|
"title": "Preguntas Frecuentes",
|
|
"seeFull": "Ver FAQ completo"
|
|
}
|
|
},
|
|
"events": {
|
|
"title": "Eventos",
|
|
"upcoming": "Próximos Eventos",
|
|
"past": "Eventos Pasados",
|
|
"noEvents": "No se encontraron eventos",
|
|
"details": {
|
|
"date": "Fecha",
|
|
"time": "Hora",
|
|
"location": "Ubicación",
|
|
"price": "Precio",
|
|
"free": "Gratis",
|
|
"capacity": "Capacidad",
|
|
"spotsLeft": "lugares disponibles",
|
|
"soldOut": "Agotado",
|
|
"cancelled": "Cancelado",
|
|
"eventEnded": "Evento Finalizado"
|
|
},
|
|
"booking": {
|
|
"join": "Unirse al Evento",
|
|
"book": "Reservar Ahora",
|
|
"register": "Registrarse"
|
|
}
|
|
},
|
|
"booking": {
|
|
"title": "Reserva tu Lugar",
|
|
"form": {
|
|
"personalInfo": "Tu Información",
|
|
"fullName": "Nombre Completo",
|
|
"fullNamePlaceholder": "Ingresa tu nombre completo",
|
|
"firstName": "Nombre",
|
|
"firstNamePlaceholder": "Ingresa tu nombre",
|
|
"lastName": "Apellido",
|
|
"lastNamePlaceholder": "Ingresa tu apellido",
|
|
"email": "Correo Electrónico",
|
|
"emailPlaceholder": "tu@email.com",
|
|
"phone": "Teléfono / WhatsApp",
|
|
"phonePlaceholder": "+595 XXX XXX XXX",
|
|
"preferredLanguage": "Idioma Preferido",
|
|
"paymentMethod": "Método de Pago",
|
|
"ruc": "RUC",
|
|
"rucPlaceholder": "Ej: 12345678-9",
|
|
"rucOptional": "Opcional - para facturación",
|
|
"reserveSpot": "Reservar Mi Lugar",
|
|
"proceedPayment": "Proceder al Pago",
|
|
"termsAgreePart1": "Acepto los ",
|
|
"termsOfService": "Términos de Servicio",
|
|
"termsAgreePart2": " y la ",
|
|
"privacyPolicy": "Política de Privacidad",
|
|
"termsAgreePart3": ".",
|
|
"soldOutMessage": "Este evento está lleno. Vuelve más tarde o explora otros eventos.",
|
|
"errors": {
|
|
"nameRequired": "Por favor ingresa tu nombre completo",
|
|
"firstNameRequired": "Por favor ingresa tu nombre",
|
|
"lastNameRequired": "Por favor ingresa tu apellido",
|
|
"lastNameTooShort": "El apellido debe tener al menos 2 caracteres",
|
|
"phoneTooShort": "El teléfono debe tener al menos 6 dígitos",
|
|
"emailInvalid": "Por favor ingresa un correo electrónico válido",
|
|
"phoneRequired": "El número de teléfono es requerido",
|
|
"bookingFailed": "La reserva falló. Por favor intenta de nuevo.",
|
|
"rucInvalidFormat": "Formato inválido. Ej: 12345678-9",
|
|
"rucInvalidCheckDigit": "RUC inválido. Verifique el número.",
|
|
"paymentMethodRequired": "Por favor selecciona un método de pago.",
|
|
"termsRequired": "Debes aceptar los Términos de Servicio y la Política de Privacidad para continuar."
|
|
}
|
|
},
|
|
"summary": {
|
|
"title": "Resumen de Reserva",
|
|
"event": "Evento",
|
|
"date": "Fecha",
|
|
"price": "Precio",
|
|
"total": "Total"
|
|
},
|
|
"confirm": "Confirmar Reserva",
|
|
"success": {
|
|
"title": "¡Reserva Confirmada!",
|
|
"message": "¡Tu lugar ha sido reservado exitosamente!",
|
|
"description": "Hemos enviado una confirmación a tu correo.",
|
|
"event": "Evento",
|
|
"date": "Fecha",
|
|
"time": "Hora",
|
|
"location": "Ubicación",
|
|
"ticketId": "ID del Ticket",
|
|
"instructions": "Por favor guarda este ID de ticket. Lo necesitarás en el check-in.",
|
|
"cashNote": "Pago Requerido",
|
|
"cashDescription": "Por favor trae el monto exacto en efectivo para pagar en la entrada del evento.",
|
|
"cardNote": "Serás redirigido para completar tu pago con tarjeta en breve.",
|
|
"lightningNote": "Se generará una factura Lightning para el pago.",
|
|
"emailSent": "Un correo de confirmación ha sido enviado a tu bandeja de entrada.",
|
|
"browseEvents": "Ver Más Eventos",
|
|
"backHome": "Volver al Inicio"
|
|
}
|
|
},
|
|
"dashboard": {
|
|
"payment": {
|
|
"received": "Pago recibido",
|
|
"receivedConfirmShortly": "Pago recibido. Lo confirmaremos en breve.",
|
|
"receivedConfirmSoon": "Pago recibido. Lo confirmaremos pronto.",
|
|
"confirmForEvent": "Confirmaremos tu pago de {amount} para {event} en breve. No necesitas hacer nada más."
|
|
}
|
|
},
|
|
"community": {
|
|
"title": "Únete a Nuestra Comunidad",
|
|
"subtitle": "Conéctate con nosotros en redes sociales",
|
|
"whatsapp": {
|
|
"title": "Grupo de WhatsApp",
|
|
"description": "Sumate a nuestro grupo de WhatsApp para recibir novedades y conversar con la comunidad.",
|
|
"button": "Unirse a WhatsApp"
|
|
},
|
|
"instagram": {
|
|
"title": "Instagram",
|
|
"description": "Seguinos en Instagram para ver fotos, historias y momentos del Spanglish.",
|
|
"button": "Seguir en Instagram"
|
|
},
|
|
"telegram": {
|
|
"title": "Canal de Telegram",
|
|
"description": "Seguinos en nuestro canal de Telegram para recibir noticias y anuncios de próximos eventos.",
|
|
"button": "Unirse a Telegram"
|
|
},
|
|
"tiktok": {
|
|
"title": "TikTok",
|
|
"description": "Mirá nuestros videos y viví la experiencia Spanglish.",
|
|
"button": "Seguir en TikTok"
|
|
},
|
|
"guidelines": {
|
|
"title": "Normas de la comunidad",
|
|
"items": [
|
|
"Respeto ante todo. Tratemos a los demás como nos gustaría que nos traten.",
|
|
"Todos estamos aprendiendo, ayudemos a otros a practicar.",
|
|
"Aprovechemos este espacio para usar los idiomas del evento, sin miedo al éxito.",
|
|
"Mantengamos una actitud abierta para conocer personas y pasarla bien.",
|
|
"Este es un espacio para conectar, evitemos el spam y las promociones no solicitadas."
|
|
]
|
|
},
|
|
"volunteer": {
|
|
"title": "Sumate como voluntario/a",
|
|
"description": "Ayudanos a organizar los encuentros y a hacer crecer la comunidad Spanglish.",
|
|
"button": "Contactanos"
|
|
}
|
|
},
|
|
"contact": {
|
|
"title": "Contáctanos",
|
|
"subtitle": "¿Tienes preguntas? Nos encantaría saber de ti.",
|
|
"form": {
|
|
"name": "Tu Nombre",
|
|
"email": "Tu Email",
|
|
"message": "Tu Mensaje",
|
|
"submit": "Enviar Mensaje"
|
|
},
|
|
"success": "¡Mensaje enviado exitosamente!",
|
|
"error": "Error al enviar el mensaje. Por favor intenta de nuevo.",
|
|
"info": {
|
|
"email": "Email",
|
|
"social": "Redes Sociales"
|
|
}
|
|
},
|
|
"auth": {
|
|
"login": {
|
|
"title": "Bienvenido de Nuevo",
|
|
"subtitle": "Inicia sesión en tu cuenta",
|
|
"email": "Email",
|
|
"password": "Contraseña",
|
|
"submit": "Iniciar Sesión",
|
|
"noAccount": "¿No tienes cuenta?",
|
|
"register": "Registrarse"
|
|
},
|
|
"register": {
|
|
"title": "Crear Cuenta",
|
|
"subtitle": "Únete a la comunidad Spanglish",
|
|
"name": "Nombre Completo",
|
|
"email": "Email",
|
|
"password": "Contraseña (mín. 8 caracteres)",
|
|
"phone": "Teléfono (opcional)",
|
|
"submit": "Crear Cuenta",
|
|
"hasAccount": "¿Ya tienes cuenta?",
|
|
"login": "Iniciar Sesión"
|
|
},
|
|
"errors": {
|
|
"invalidCredentials": "Email o contraseña inválidos",
|
|
"emailExists": "El email ya está registrado"
|
|
}
|
|
},
|
|
"admin": {
|
|
"privacy": {
|
|
"hide": "Ocultar Datos",
|
|
"show": "Mostrar Datos"
|
|
},
|
|
"dashboard": {
|
|
"title": "Panel de Control",
|
|
"welcome": "Bienvenido de nuevo",
|
|
"stats": {
|
|
"users": "Usuarios Totales",
|
|
"events": "Eventos Totales",
|
|
"tickets": "Tickets Totales",
|
|
"revenue": "Ingresos Totales"
|
|
}
|
|
},
|
|
"nav": {
|
|
"dashboard": "Panel",
|
|
"events": "Eventos",
|
|
"bookings": "Reservas",
|
|
"tickets": "Tickets",
|
|
"users": "Usuarios",
|
|
"payments": "Pagos",
|
|
"contacts": "Mensajes",
|
|
"emails": "Emails",
|
|
"gallery": "Galería",
|
|
"photos": "Fotos",
|
|
"settings": "Configuración"
|
|
},
|
|
"events": {
|
|
"title": "Gestionar Eventos",
|
|
"create": "Crear Evento",
|
|
"edit": "Editar Evento",
|
|
"delete": "Eliminar Evento",
|
|
"publish": "Publicar",
|
|
"unpublish": "Despublicar"
|
|
},
|
|
"tickets": {
|
|
"title": "Gestionar Tickets",
|
|
"checkin": "Check In",
|
|
"cancel": "Cancelar Ticket",
|
|
"status": {
|
|
"pending": "Pendiente",
|
|
"confirmed": "Confirmado",
|
|
"cancelled": "Cancelado",
|
|
"checkedIn": "Check In Realizado"
|
|
}
|
|
},
|
|
"users": {
|
|
"title": "Gestionar Usuarios",
|
|
"role": "Rol",
|
|
"roles": {
|
|
"admin": "Administrador",
|
|
"organizer": "Organizador",
|
|
"staff": "Staff",
|
|
"marketing": "Marketing",
|
|
"user": "Usuario"
|
|
}
|
|
},
|
|
"payments": {
|
|
"title": "Pagos",
|
|
"confirm": "Confirmar Pago",
|
|
"refund": "Reembolsar",
|
|
"status": {
|
|
"pending": "Pendiente",
|
|
"paid": "Pagado",
|
|
"refunded": "Reembolsado",
|
|
"failed": "Fallido"
|
|
}
|
|
}
|
|
},
|
|
"footer": {
|
|
"tagline": "Comunidad de intercambio de idiomas en Asunción",
|
|
"links": "Enlaces Rápidos",
|
|
"social": "Síguenos",
|
|
"copyright": "© {year} Spanglish. Todos los derechos reservados.",
|
|
"legal": {
|
|
"title": "Legal",
|
|
"terms": "Términos y Condiciones",
|
|
"privacy": "Política de Privacidad",
|
|
"refund": "Política de Reembolso"
|
|
}
|
|
},
|
|
"legalPage": {
|
|
"backToHome": "Volver al inicio",
|
|
"lastUpdated": "Última actualización: {date}",
|
|
"backToTop": "Volver arriba"
|
|
},
|
|
"linktree": {
|
|
"tagline": "Comunidad de Intercambio de Idiomas",
|
|
"nextEvent": "Próximo Evento",
|
|
"noEvents": "No hay eventos próximos",
|
|
"moreInfo": "Más información",
|
|
"joinCommunity": "Únete a Nuestra Comunidad",
|
|
"visitWebsite": "Visitar Nuestro Sitio",
|
|
"whatsapp": {
|
|
"title": "Comunidad WhatsApp",
|
|
"subtitle": "Chat y novedades"
|
|
},
|
|
"telegram": {
|
|
"title": "Canal de Telegram",
|
|
"subtitle": "Noticias y anuncios"
|
|
},
|
|
"instagram": {
|
|
"title": "Instagram",
|
|
"subtitle": "Fotos e historias"
|
|
},
|
|
"tiktok": {
|
|
"title": "TikTok",
|
|
"subtitle": "Videos y contenido divertido"
|
|
}
|
|
}
|
|
}
|