Files
gudari/app/src/main/java/com/bitcointxoko/gudariwallet/i18n/EsStrings.kt
T

415 lines
26 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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",
)
)