package com.bitcointxoko.gudariwallet.i18n import cafe.adriel.lyricist.LyricistStrings import com.bitcointxoko.gudariwallet.i18n.NwcStrings @LyricistStrings(languageTag = "es") val EsHomeStrings = AppStrings( // ── WalletScreen ────────────────────────────────────────────────────────── tabReceive = "Recibir", tabSend = "Enviar", scanContentDescription = "Escanear", dismissContentDescription = "Cerrar", clipboardInvoiceDetected = "Factura detectada en el portapapeles", clipboardLnurlDetected = "LNURL detectado en el portapapeles", clipboardAddressDetected = "Dirección Lightning detectada en el portapapeles", clipboardPaymentDetected = "Pago detectado en el portapapeles", clipboardTapToOpen = "Toca para abrir", clipboardTapToPay = "Toca para pagar", nfcInvoiceDetected = "Factura detectada por NFC", nfcLnurlDetected = "LNURL detectado por NFC", nfcAddressDetected = "Dirección Lightning detectada por NFC", nfcPaymentDetected = "Pago detectado por NFC", nfcTapToOpen = "Toca para abrir", nfcTapToPay = "Toca para pagar", // ── HomeTab ─────────────────────────────────────────────────────────────── loadingBalance = "Cargando saldo…", sats = "sats", hideBalance = "Ocultar saldo", revealBalance = "Mostrar saldo", changeCurrency = "Cambiar moneda", showFiat = "+ Mostrar fiat", updatedAt = { label -> "Actualizado $label" }, justNow = "justo ahora", minAgo = {min -> "hace $min min"}, atTime = {time -> "a las $time"}, viewHistory = "Historial", selectCurrency = "Seleccionar moneda", currencyNone = "Ninguna", hideFiatEquivalent = "Ocultar equivalente fiat", selected = "Seleccionado", search = "Buscar…", noCurrenciesAvailable = "No hay monedas disponibles", noCurrenciesMatch = { query -> "Ninguna moneda coincide con \"$query\"" }, couldNotRefresh = "No se pudo actualizar — desliza hacia abajo para reintentar", couldNotLoadBalance = "No se pudo cargar el saldo — desliza hacia abajo para reintentar", // ── Shared ──────────────────────────────────────────────────────────────── cancel = "Cancelar", tryAgain = "Reintentar", amount = "Cantidad", next = "Siguiente", back = "← Atrás", done = "Hecho", details = "Detalles", enterValidAmount = "Introduce una cantidad válida", satsUnit = { sats -> "$sats sats" }, // ── SendScreen — general ────────────────────────────────────────────────── send = "Enviar", paste = "Pegar", continueButton = "Continuar", clear = "Limpiar", sendAnother = "Enviar otro", // ── SendScreen — input field ────────────────────────────────────────────── sendInputLabel = "Factura, LNURL o dirección Lightning", sendInputPlaceholder = "lnbc… / lnurl1… / usuario@dominio.com", tapNfcHint = "Acerca un dispositivo NFC para recibir la factura", // ── SendScreen — states ─────────────────────────────────────────────────── resolving = "Resolviendo…", sendingPayment = "Enviando pago…", // ── SendScreen — paying ─────────────────────────────────────────────────── paymentTakingLong = "Esto está tardando más de lo habitual", paymentTakingLongDetail = "Tu pago sigue en camino. Es posible que sea una factura hold que se liquidará cuando el destinatario esté listo. Recibirás una notificación cuando se complete — puedes salir de esta pantalla con seguridad.", dismissPayment = "Salir", // ── SendScreen — payment sent ───────────────────────────────────────────── paymentSent = "¡Pago enviado!", amountSats = { sats -> "$sats sats" }, fiatEquivalent = { fiatStr -> "≈ $fiatStr" }, noFees = "Sin comisiones", routingFee = { sats, ppmSuffix -> "Comisión de enrutamiento: $sats sat${if (sats == 1L) "" else "s"}$ppmSuffix" }, // ── ConfirmCard ─────────────────────────────────────────────────────────── invoiceDetails = "Detalles de la factura", payingTo = { label -> "Pagando a $label" }, confirmAmount = { sats -> "$sats sats" }, confirmAmountWithFiat = { sats, fiat -> "$sats sats · $fiat" }, memo = "Nota", destination = "Destino", created = "Creado", expiresIn = "Expira en", hash = "Hash", invoice = "Factura", expiryExpired = "Expirado", expirySeconds = { s -> "${s}s" }, expiryMinutes = { m, s -> "${m}m ${s}s" }, expiryHours = { h, m -> "${h}h ${m}m" }, createdToday = { time -> "Hoy, $time" }, createdYesterday = { time -> "Ayer, $time" }, payButton = { sats -> "Pagar $sats sats" }, payButtonWithFiat = { sats, fiat -> "Pagar $sats sats · $fiat" }, sendBiometricPrompt = { sats -> "Enviar $sats sats" }, sendBiometricPromptTo = { sats, label -> "Enviar $sats sats a $label" }, // ── LnurlPayForm ───────────────────────────────────────────────────────── lnurlAmountError = { min, max -> "Introduce una cantidad entre $min y $max sats" }, lnurlFiatRange = { minFiat, maxFiat -> "$minFiat – $maxFiat" }, lnurlSatsAndFiatRange = { min, max, minFiat, maxFiat -> "$min – $max sats · $minFiat – $maxFiat" }, commentOptional = { max -> "Comentario (opcional, máx. $max caracteres)" }, commentCounter = { current, max -> "$current/$max" }, lnurlPayButton = { sats -> "Pagar $sats sats" }, lnurlPayButtonWithFiat = { sats, fiat -> "Pagar $sats sats · $fiat" }, // ── RouteHintWarning ────────────────────────────────────────────────────── routeHintHighFees = "Comisiones de enrutamiento altas en la factura", routeHintElevatedFees = "Comisiones de enrutamiento elevadas en la factura", routeHintForcedChannel = { node -> "Esta factura obliga a pagar a través de un canal privado operado por $node." }, routeHintFeeRate = { effectivePpm, worstPpm -> "Tasa de comisión efectiva: $effectivePpm ppm ($worstPpm ppm)" }, routeHintFeeRateBase = { effectivePpm, worstPpm, baseLabel -> "Tasa de comisión efectiva: $effectivePpm ppm ($worstPpm ppm + $baseLabel base)" }, routeHintEstimatedFee = { sats -> "Comisión extra estimada en este pago: ~$sats sat${if (sats == 1L) "" else "s"}" }, routeHintShowDetails = "Ver detalles ▾", routeHintHideDetails = "Ocultar detalles ▴", routeHintHopsHeader = "Saltos de ruta privada", routeHintHopFees = { ppm, baseLabel -> "$ppm ppm · $baseLabel base" }, // ── SendViewModel ───────────────────────────────────────────────────────── sendVmLnurlAuthNotSupported = "Lightning Login (LNURL-auth) aún no está disponible", sendVmUnrecognisedInput = "Entrada no reconocida — pega una factura BOLT-11, LNURL o dirección Lightning", sendVmPaymentFailed = "Pago fallido", sendVmCouldNotFetchInvoice = "No se pudo obtener la factura del destinatario", sendVmCouldNotDecodeInvoice = "No se pudo decodificar la factura", sendVmAuthFailed = { msg -> "Autenticación fallida: $msg" }, sendVmOnChainNotSupported = "Los pagos Bitcoin en cadena no están disponibles — comparte un URI BIP-21 con el parámetro lightning=", sendVmChannelRequestNotSupported = "Las solicitudes de canal (lnurlc) no están disponibles", sendVmCouldNotResolveAddress = "No se pudo resolver la dirección", sendVmEmptyResponse = "Respuesta vacía del servidor", sendVmUnsupportedType = { tag -> "Tipo no compatible: $tag" }, sendVmPaymentFailedRescan = "Pago fallido — no se pudo volver a obtener la dirección", // ── HistoryScreen ───────────────────────────────────────────────────────── historyTitle = "Historial", historyClose = "Cerrar", historySearchPayments = "Buscar pagos", historyFilterPayments = "Filtrar pagos", historyRetry = "Reintentar", historyNoPayments = "Aún no hay pagos.", historySearchPlaceholder = "Buscar transacciones", historySearchHelp = "Ayuda de búsqueda", historySearchPaste = "Pegar", historySearchClear = "Limpiar búsqueda", historySearchChip = { tail -> "búsqueda: …$tail" }, historyClearSearch = "Limpiar búsqueda", filterDirectionOutgoing = "Salientes", filterDirectionIncoming = "Entrantes", filterClearDirection = "Quitar filtro de dirección", filterStatusCompleted = "Completado", filterStatusPending = "Pendiente", filterStatusFailed = "Fallido", filterRemoveStatus = "Quitar filtro de estado", filterRemoveType = "Quitar filtro de tipo", filterAmountRange = { min, max -> "$min–$max sats" }, filterAmountMin = { min -> "≥ $min sats" }, filterAmountMax = { max -> "≤ $max sats" }, filterClearAmount = "Quitar filtro de cantidad", filterDateThisWeek = "Esta semana", filterDateThisMonth = "Este mes", filterDateThisYear = "Este año", filterDateRange = { from, to -> "$from–$to" }, filterDateFrom = { from -> "Desde $from" }, filterDateUntil = { until -> "Hasta $until" }, filterClearDate = "Quitar filtro de fecha", // ── FilterBottomSheet ───────────────────────────────────────────────────── filterSheetTitle = "Filtrar pagos", filterSectionDirection = "Dirección", filterDirectionAll = "Todos", filterSectionStatus = "Estado", filterSectionType = "Tipo", filterSectionAmount = "Cantidad (sats)", filterAmountMin_label = "Mín.", filterAmountMax_label = "Máx.", filterAmountSuffix = "sats", filterSectionDate = "Fecha", filterDateFrom_label = "Desde", filterDateTo_label = "Hasta", filterDialogOk = "Aceptar", filterDialogCancel = "Cancelar", // ── SearchInfoSheet ─────────────────────────────────────────────────────── searchInfoTitle = "¿Qué puedo buscar?", searchInfoSubtitle = "Escribe cualquier parte de lo siguiente para encontrar un pago:", searchInfoMemoTitle = "Nota", searchInfoMemoDesc = "El mensaje o descripción adjunto a un pago. " + "Por ejemplo, \"café\" o \"alquiler marzo\".", searchInfoInvoiceTitle = "Factura", searchInfoInvoiceDesc = "La solicitud de pago que escaneaste o pegaste para enviar un pago. " + "Normalmente empieza por \"lnbc…\". " + "Puedes pegar solo los primeros o últimos caracteres.", searchInfoHashTitle = "Hash", searchInfoHashDesc = "Un código único que identifica este pago en la " + "red Lightning. Útil si alguien te pide que " + "confirmes una transacción específica.", searchInfoPreimageTitle = "Preimagen", searchInfoPreimageDesc = "Un código secreto que demuestra que se recibió un pago. " + "Solo disponible después de que un pago se complete correctamente.", searchInfoNodeAliasTitle = "Alias del nodo", searchInfoNodeAliasDesc = "El nombre del nodo Lightning al que enviaste un pago. " + "Por ejemplo, \"ACINQ\" o \"Wallet of Satoshi\". " + "Los alias se resuelven automáticamente para pagos salientes.", searchInfoNodeIdTitle = "ID del nodo (clave pública)", searchInfoNodeIdDesc = "La clave pública del nodo de destino. " + "Una cadena hexadecimal de 66 caracteres — puedes pegar solo los primeros.", searchInfoFooter = "Puedes pegar un valor completo o buscar con solo unos pocos caracteres — " + "las coincidencias parciales también funcionan.", // ── PaymentDetailScreen ─────────────────────────────────────────────────── statusSuccess = "Completado", statusPending = "Pendiente", statusFailed = "Fallido", statusUnknown = "Desconocido", detailOutgoingTitle = "Pago saliente", detailIncomingTitle = "Pago entrante", detailBack = "Atrás", detailCouldNotLoad = "No se pudieron cargar los detalles completos", detailFeeLabel = { feeSat, fiatPart, ppmPart -> "Comisión: $feeSat sats$fiatPart$ppmPart" }, detailSectionDetails = "Detalles", detailRowDate = "Fecha", detailRowMemo = "Nota", detailRowMemoEmpty = "—", detailRowType = "Tipo", detailRowComment = "Comentario", detailSectionSuccessAction = "Acción de éxito", detailSuccessMessage = "Mensaje", detailSuccessUrl = "URL", detailSuccessDescription = "Descripción", detailSectionTechnical = "Técnico", detailRowPaymentHash = "Hash", detailRowPreimage = "Preimagen", detailRowDestination = "Destino", detailCopyNodeId = "Copiar ID del nodo", detailRowBolt11 = "BOLT11", // ── PaymentRow ──────────────────────────────────────────────────────────── paymentRowSentCD = "Enviado", paymentRowReceivedCD = "Recibido", paymentRowNoMemo = "Sin nota", paymentRowPending = "Pendiente", paymentRowFailed = "Fallido", onboarding = OnboardingStrings( back = "Atrás", next = "Siguiente", done = "Hecho", title = "Conectar a LNbits", subtitle = "Introduce la URL de tu servidor LNbits y las claves de API.", serverUrl = "URL del servidor", serverUrlHint = "https://bitcointxoko.org", invoiceKey = "Clave de factura (solo lectura)", invoiceKeySubtitle = "Se usa para generar solicitudes de pago.", pasteInvoiceKey = "Pegar clave de factura", adminKey = "Clave de administrador (para enviar)", adminKeySubtitle = "Necesaria para enviar pagos.", pasteAdminKey = "Pegar clave de administrador", hideAdminKey = "Ocultar", showAdminKey = "Mostrar", fieldsRequired = "Todos los campos son obligatorios.", invalidKeyFormat = "Formato de clave no válido", connect = "Conectar", notificationsTitle = "Mantente al día", notificationsSubtitle = "Recibe notificaciones al instante cuando recibas un pago.", notificationsAlreadyGranted = "Todo listo — los permisos han sido concedidos.", allowNotifications = "Permitir notificaciones", notificationsNote = "Puedes cambiar esto más tarde en los Ajustes del sistema.", notificationsAutoGranted = "Las notificaciones se activan automáticamente en tu dispositivo.", batteryTitle = "Actividad en segundo plano", batterySubtitle = "Permite que Gudari Wallet funcione sin restricciones para que las notificaciones lleguen incluso cuando la aplicación esté cerrada.", openSettings = "Abrir Ajustes", batteryNote = "Pulsa 'Batería' → 'Sin restricciones'. Puedes omitir esto y cambiarlo más tarde.", batteryAlreadyUnrestricted = "Todo listo — no se han detectado restricciones.", paymentHistory = "Historial de transacciones", paymentHistorySubtitle = "Descarga tus transacciones anteriores para tenerlas disponibles sin conexión.", syncNow = "Sincronizar ahora", skipForNow = "Omitir por ahora", syncScheduled = "Sincronización programada — se ejecutará cuando tu dispositivo esté en línea. Recibirás una notificación cuando la sincronización haya finalizado. Ya puedes empezar a usar la aplicación.", continueToApp = "Ir a la aplicación →", connecting = "Conectando...", paymentsFetchedTotal = { fetched, total -> "$fetched / $total transacciones" }, paymentsSynced = { total -> "✓ $total transacciones sincronizadas"}, syncComplete = "✓ Sincronización completada", syncFailed = "Error en la sincronización. Puedes volver a intentarlo desde Ajustes.", scheduleForLater = "Programar para más tarde", scheduleSync = "Programar sincronización", schedule = "Programar", cancel = "Cancelar" ), receive = ReceiveStrings( // ── ReceiveScreen — general ─────────────────────────────────────────────── receive = "Recibir", // ── ReceiveScreen — error ───────────────────────────────────────────────── receiveError = "Error", // ── ReceiveScreen — QR / share ──────────────────────────────────────────── lightningAddressQrCode = "Código QR de dirección Lightning", lightningAddressLabel = "Dirección Lightning", shareLightningAddress = "Compartir dirección Lightning", lightningInvoiceQrCode = "Código QR de factura Lightning", invoiceLabel = "Factura", shareInvoice = "Compartir factura", // ── ReceiveScreen — amount step ─────────────────────────────────────────── amountInSats = "Cantidad (sats)", satsRange = { min, max -> "$min – $max sats" }, // ── ReceiveScreen — memo step ───────────────────────────────────────────── memoOptional = "Nota (opcional)", memoPlaceholder = "¿Para qué es esto?", creatingInvoice = "Creando factura…", createInvoice = "Crear factura", // ── ReceiveScreen — invoice ready ───────────────────────────────────────── waiting = "Esperando…", invoiceExpired = "Factura expirada", newInvoice = "Nueva factura", // ── ReceiveScreen — lnurl withdraw ──────────────────────────────────────── withdrawFrom = "Retirar de", minimumSats = { min -> "Mínimo es $min sats" }, maximumSats = { max -> "Máximo es $max sats" }, withdrawButton = "Retirar", withdrawButtonAmount = { amount -> "Retirar $amount sats" }, // ── ReceiveScreen — success ─────────────────────────────────────────────── paymentReceived = "¡Pago recibido!", // ── AmountDisplay ───────────────────────────────────────────────────────── amountDisplaySats = { amount -> "$amount ${if (amount == 1L) "sat" else "sats"}" }, // ── BrightnessToggleButton & QrDisplayCard ──────────────────────────────── brightnessReduce = "Reducir brillo", brightnessBoost = "Aumentar brillo", qrShare = "Compartir", qrCopy = "Copiar", qrNfcStop = "Detener NFC", qrNfcStart = "Compartir por NFC", openInApp = "Abrir en app", noAppFound = "No hay aplicación compatible", // ── ReceiveViewModel ────────────────────────────────────────────────────── receiveVmFailedToCreateInvoice = "No se pudo crear la factura", receiveVmWithdrawRejected = "El servicio de retiro rechazó la factura", receiveVmWithdrawFailed = "Error al retirar", ), nwc = NwcStrings( // ── Shared ──────────────────────────────────────────────────────────────── back = "Atrás", next = "Siguiente", done = "Listo", cancel = "Cancelar", schedule = "Programar", // ── Connection detail ───────────────────────────────────────────────────── connectionDetailTitle = "Conexión", connectionUnknownWallet = "App desconocida", connectionSectionDetails = "Detalles", connectionRowCreated = "Conectado", connectionRowLastUsed = "Último uso", connectionRowExpires = "Vence", connectionRowPubkey = "Clave pública", connectionNeverUsed = "Nunca", connectionNoExpiry = "Sin vencimiento", connectionExpired = { date -> "Vencido · $date" }, connectionSectionPermissions = "Permisos", connectionSectionBudgets = "Presupuestos de gasto", connectionBudgetTitle = { window -> "Presupuesto $window" }, connectionBudgetUsed = { sats -> "Usado: $sats sats" }, connectionBudgetTotal = { sats -> "de $sats sats" }, connectionRevoke = "Revocar conexión", connectionStatusActive = "Activa", connectionStatusExpired = "Vencida", // ── NWC permissions ─────────────────────────────────────────────────────── permPayInvoice = "Pagar facturas", permGetBalance = "Ver saldo", permGetInfo = "Ver información del monedero", permMakeInvoice = "Crear facturas", permLookupInvoice = "Consultar facturas", permListTransactions = "Ver historial de transacciones", permSignMessage = "Firmar mensajes", permPay = "Enviar pagos", permInvoice = "Crear facturas", permLookupHistory = "Consultar estado e historial de transacciones", permBalanceInfo = "Ver saldo e información de cuenta", permSendPayments = "Enviar pagos", permCreateInvoices = "Crear facturas", permLookupInvoiceStatus = "Consultar estado de factura", permReadTransactionHistory = "Leer historial de transacciones", permReadWalletBalance = "Leer saldo del monedero", permReadAccountInfo = "Leer información de cuenta", revokeDialogTitle = "¿Revocar conexión?", revokeDialogBody = "Esto revocará permanentemente esta clave Nostr Wallet Connect. Cualquier app que la use perderá el acceso.", revokeDialogConfirm = "Revocar", revokeDialogDismiss = "Cancelar", ) )