- Add pricing API functions to admin.ts - Create admin pricing page with form and validation - Add MANAGE_PRICING permission to auth context - Add pricing to admin navigation - Add translations for pricing page (en, ca, es) - Update PageLayout and Header types for new page
139 lines
4.8 KiB
JSON
139 lines
4.8 KiB
JSON
{
|
|
"invites": {
|
|
"title": "Invitaciones",
|
|
"createInvite": "Crear invitación",
|
|
"godfatherLabel": "Padrino (usuario que puede compartir esta invitación)",
|
|
"selectUser": "Seleccionar un usuario...",
|
|
"noUsersHint": "Aún no hay usuarios cargados. Crea al menos una invitación para poblar la lista.",
|
|
"creating": "Creando...",
|
|
"allInvites": "Todas las invitaciones",
|
|
"allStatuses": "Todos los estados",
|
|
"statusReady": "Lista",
|
|
"statusSpent": "Usada",
|
|
"statusRevoked": "Revocada",
|
|
"invitesCount": "{count} invitaciones",
|
|
"tableHeaders": {
|
|
"code": "Código",
|
|
"godfather": "Padrino",
|
|
"status": "Estado",
|
|
"usedBy": "Usada Por",
|
|
"created": "Creada",
|
|
"actions": "Acciones"
|
|
},
|
|
"noInvites": "Aún no hay invitaciones",
|
|
"revoke": "Revocar",
|
|
"errors": {
|
|
"loadFailed": "Error al cargar invitaciones",
|
|
"revokeFailed": "Error al revocar invitación"
|
|
}
|
|
},
|
|
"trades": {
|
|
"title": "Intercambios",
|
|
"subtitle": "Gestionar intercambios de Bitcoin",
|
|
"tabs": {
|
|
"upcoming": "Próximos ({count})",
|
|
"history": "Historial ({count})"
|
|
},
|
|
"filters": {
|
|
"allStatuses": "Todos los estados",
|
|
"completed": "Completado",
|
|
"noShow": "No presentado",
|
|
"userCancelled": "Cancelado por usuario",
|
|
"adminCancelled": "Cancelado por admin"
|
|
},
|
|
"searchPlaceholder": "Buscar por email...",
|
|
"loading": "Cargando intercambios...",
|
|
"emptyStates": {
|
|
"upcoming": "No hay intercambios próximos.",
|
|
"past": "No se encontraron intercambios."
|
|
},
|
|
"tradeDetails": {
|
|
"rate": "Tasa:",
|
|
"market": "Mercado:",
|
|
"sellBtc": "VENDER BTC",
|
|
"buyBtc": "COMPRAR BTC",
|
|
"sendVia": "Enviar vía {method}",
|
|
"receiveVia": "Recibir vía {method}",
|
|
"onchain": "Onchain",
|
|
"lightning": "Lightning",
|
|
"signal": "Signal: {value}"
|
|
},
|
|
"actions": {
|
|
"complete": "Completar",
|
|
"noShow": "No presentado",
|
|
"cancel": "Cancelar"
|
|
},
|
|
"errors": {
|
|
"loadUpcomingFailed": "Error al cargar intercambios próximos",
|
|
"loadPastFailed": "Error al cargar historial de intercambios",
|
|
"actionFailed": "Error al {action} intercambio"
|
|
}
|
|
},
|
|
"priceHistory": {
|
|
"title": "Historial de precios de Bitcoin",
|
|
"recordsCount": "{count} registros",
|
|
"refresh": "Actualizar",
|
|
"fetching": "Obteniendo...",
|
|
"fetchNow": "Obtener ahora",
|
|
"tableHeaders": {
|
|
"source": "Fuente",
|
|
"pair": "Par",
|
|
"price": "Precio",
|
|
"timestamp": "Fecha y hora"
|
|
},
|
|
"loading": "Cargando...",
|
|
"emptyState": "Aún no hay registros de precios. Haz clic en \"Obtener Ahora\" para obtener el precio actual."
|
|
},
|
|
"availability": {
|
|
"title": "Disponibilidad",
|
|
"subtitle": "Configurar tus franjas horarias disponibles para los próximos {days} días",
|
|
"copyMode": {
|
|
"hint": "Selecciona los días a los que copiar, luego haz clic en Copiar",
|
|
"copyTo": "Copiar a {count} día(s)",
|
|
"copying": "Copiando...",
|
|
"cancel": "Cancelar"
|
|
},
|
|
"modal": {
|
|
"title": "Editar franjas horarias",
|
|
"startTime": "Hora de inicio",
|
|
"endTime": "Hora de fin",
|
|
"addSlot": "Añadir franja",
|
|
"removeSlot": "Eliminar",
|
|
"save": "Guardar",
|
|
"clear": "Limpiar",
|
|
"close": "Cerrar",
|
|
"noAvailability": "Sin disponibilidad"
|
|
},
|
|
"errors": {
|
|
"saveFailed": "Error al guardar",
|
|
"clearFailed": "Error al limpiar",
|
|
"copyFailed": "Error al copiar"
|
|
}
|
|
},
|
|
"pricing": {
|
|
"title": "Configuración de Precios",
|
|
"subtitle": "Configura los precios de prima y los límites de importe de las operaciones",
|
|
"premiumSettings": "Configuración de Prima",
|
|
"premiumBuy": "Prima para COMPRAR",
|
|
"premiumSell": "Prima para VENDER",
|
|
"smallTradeThreshold": "Umbral de Operaciones Pequeñas",
|
|
"smallTradeExtraPremium": "Prima Extra para Operaciones Pequeñas",
|
|
"tradeLimitsBuy": "Límites de Importe de Operaciones (COMPRAR)",
|
|
"tradeLimitsSell": "Límites de Importe de Operaciones (VENDER)",
|
|
"minAmount": "Importe Mínimo",
|
|
"maxAmount": "Importe Máximo",
|
|
"save": "Guardar Cambios",
|
|
"success": "Configuración de precios guardada correctamente",
|
|
"confirmSave": "¿Estás seguro de que quieres guardar estos cambios de precios? Esto afectará todas las nuevas operaciones inmediatamente.",
|
|
"validation": {
|
|
"premiumRange": "La prima debe estar entre -100% y 100%",
|
|
"positive": "El importe debe ser positivo",
|
|
"minMaxBuy": "El mínimo debe ser menor que el máximo para COMPRAR",
|
|
"minMaxSell": "El mínimo debe ser menor que el máximo para VENDER"
|
|
},
|
|
"errors": {
|
|
"loadFailed": "Error al cargar la configuración de precios",
|
|
"saveFailed": "Error al guardar la configuración de precios"
|
|
}
|
|
}
|
|
}
|