- Create admin.json translation files for es, en, ca with all admin strings - Update IntlProvider to include admin namespace - Translate admin/invites/page.tsx - all strings now use translations - Translate admin/trades/page.tsx - all strings now use translations - Translate admin/price-history/page.tsx - all strings now use translations - Translate admin/availability/page.tsx - all strings now use translations - Add 'saving' key to common.json for all languages - Fix linting errors: add t to useCallback dependencies - All admin pages now fully multilingual
113 lines
3.5 KiB
JSON
113 lines
3.5 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"
|
|
}
|
|
}
|
|
}
|