refactor: i18n HistoryStrings

This commit is contained in:
2026-06-11 23:34:48 +02:00
parent b053da6a05
commit 868869fd88
11 changed files with 980 additions and 535 deletions
@@ -141,117 +141,117 @@ val EnHomeStrings = AppStrings(
sendVmUnsupportedType = { tag -> "Unsupported type: $tag" },
sendVmPaymentFailedRescan = "Payment failed — could not re-fetch address",
// ── HistoryScreen ─────────────────────────────────────────────────────────
historyTitle = "Activity",
historyClose = "Close",
historySearchPayments = "Search payments",
historyFilterPayments = "Filter payments",
historyRetry = "Retry",
historyNoPayments = "No payments yet.",
historySearchPlaceholder = "Search transactions",
historySearchHelp = "Search help",
historySearchPaste = "Paste",
historySearchClear = "Clear search",
historySearchChip = { tail -> "search: …$tail" },
historyClearSearch = "Clear search",
filterDirectionOutgoing = "Outgoing",
filterDirectionIncoming = "Incoming",
filterClearDirection = "Clear direction filter",
filterStatusCompleted = "Completed",
filterStatusPending = "Pending",
filterStatusFailed = "Failed",
filterRemoveStatus = "Remove status filter",
filterRemoveType = "Remove type filter",
filterAmountRange = { min, max -> "$min$max sats" },
filterAmountMin = { min -> "$min sats" },
filterAmountMax = { max -> "$max sats" },
filterClearAmount = "Clear amount filter",
filterDateThisWeek = "This week",
filterDateThisMonth = "This month",
filterDateThisYear = "This year",
filterDateRange = { from, to -> "$from$to" },
filterDateFrom = { from -> "From $from" },
filterDateUntil = { until -> "Until $until" },
filterClearDate = "Clear date filter",
// ── FilterBottomSheet ─────────────────────────────────────────────────────
filterSheetTitle = "Filter payments",
filterSectionDirection = "Direction",
filterDirectionAll = "All",
filterSectionStatus = "Status",
filterSectionType = "Type",
filterSectionAmount = "Amount (sats)",
filterAmountMin_label = "Min",
filterAmountMax_label = "Max",
filterAmountSuffix = "sats",
filterSectionDate = "Date",
filterDateFrom_label = "From",
filterDateTo_label = "To",
filterDialogOk = "OK",
filterDialogCancel = "Cancel",
// ── SearchInfoSheet ───────────────────────────────────────────────────────
searchInfoTitle = "What can I search for?",
searchInfoSubtitle = "Type any part of the following to find a payment:",
searchInfoMemoTitle = "Memo",
searchInfoMemoDesc = "The message or description attached to a payment. " +
"For example, \"coffee\" or \"rent March\".",
searchInfoInvoiceTitle = "Invoice",
searchInfoInvoiceDesc = "The payment request you scanned or pasted to send a payment. " +
"It usually starts with \"lnbc…\". " +
"You can paste just the first or last few characters.",
searchInfoHashTitle = "Hash",
searchInfoHashDesc = "A unique code that identifies this payment on the " +
"Lightning Network. Useful if someone asks you to " +
"confirm a specific transaction.",
searchInfoPreimageTitle = "Preimage",
searchInfoPreimageDesc = "A secret code that proves a payment was received. " +
"Only available after a payment completes successfully.",
searchInfoNodeAliasTitle = "Node alias",
searchInfoNodeAliasDesc = "The name of the Lightning node you sent a payment to. " +
"For example, \"ACINQ\" or \"Wallet of Satoshi\". " +
"Aliases are resolved automatically for outgoing payments.",
searchInfoNodeIdTitle = "Node ID (pubkey)",
searchInfoNodeIdDesc = "The public key of the destination node. " +
"A 66-character hex string — you can paste just the first few characters.",
searchInfoFooter = "You can paste a full value or search with just a few characters — " +
"partial matches work too.",
// ── PaymentDetailScreen ───────────────────────────────────────────────────
statusSuccess = "Success", // e.g. "Success"
statusPending = "Pending", // e.g. "Pending"
statusFailed = "Failed", // e.g. "Failed"
statusUnknown = "Unknown", // e.g. "Unknown"
detailOutgoingTitle = "Outgoing payment",
detailIncomingTitle = "Incoming payment",
detailBack = "Back",
detailCouldNotLoad = "Could not load full details",
detailFeeLabel = { feeSat, fiatPart, ppmPart ->
"Fee: $feeSat sats$fiatPart$ppmPart"
},
detailSectionDetails = "Details",
detailRowDate = "Date",
detailRowMemo = "Memo",
detailRowMemoEmpty = "",
detailRowType = "Type",
detailRowComment = "Comment",
detailSectionSuccessAction = "Success Action",
detailSuccessMessage = "Message",
detailSuccessUrl = "URL",
detailSuccessDescription = "Description",
detailSectionTechnical = "Technical",
detailRowPaymentHash = "Hash",
detailRowPreimage = "Preimage",
detailRowDestination = "Destination",
detailCopyNodeId = "Copy node ID",
detailRowBolt11 = "BOLT11",
// ── PaymentRow ────────────────────────────────────────────────────────────
paymentRowSentCD = "Sent",
paymentRowReceivedCD = "Received",
paymentRowNoMemo = "No memo",
paymentRowPending = "Pending",
paymentRowFailed = "Failed",
// // ── HistoryScreen ─────────────────────────────────────────────────────────
// historyTitle = "Activity",
// historyClose = "Close",
// historySearchPayments = "Search payments",
// historyFilterPayments = "Filter payments",
// historyRetry = "Retry",
// historyNoPayments = "No payments yet.",
// historySearchPlaceholder = "Search transactions",
// historySearchHelp = "Search help",
// historySearchPaste = "Paste",
// historySearchClear = "Clear search",
// historySearchChip = { tail -> "search: …$tail" },
// historyClearSearch = "Clear search",
// filterDirectionOutgoing = "Outgoing",
// filterDirectionIncoming = "Incoming",
// filterClearDirection = "Clear direction filter",
// filterStatusCompleted = "Completed",
// filterStatusPending = "Pending",
// filterStatusFailed = "Failed",
// filterRemoveStatus = "Remove status filter",
// filterRemoveType = "Remove type filter",
// filterAmountRange = { min, max -> "$min$max sats" },
// filterAmountMin = { min -> "≥ $min sats" },
// filterAmountMax = { max -> "≤ $max sats" },
// filterClearAmount = "Clear amount filter",
// filterDateThisWeek = "This week",
// filterDateThisMonth = "This month",
// filterDateThisYear = "This year",
// filterDateRange = { from, to -> "$from$to" },
// filterDateFrom = { from -> "From $from" },
// filterDateUntil = { until -> "Until $until" },
// filterClearDate = "Clear date filter",
//
// // ── FilterBottomSheet ─────────────────────────────────────────────────────
// filterSheetTitle = "Filter payments",
// filterSectionDirection = "Direction",
// filterDirectionAll = "All",
// filterSectionStatus = "Status",
// filterSectionType = "Type",
// filterSectionAmount = "Amount (sats)",
// filterAmountMin_label = "Min",
// filterAmountMax_label = "Max",
// filterAmountSuffix = "sats",
// filterSectionDate = "Date",
// filterDateFrom_label = "From",
// filterDateTo_label = "To",
// filterDialogOk = "OK",
// filterDialogCancel = "Cancel",
//
// // ── SearchInfoSheet ───────────────────────────────────────────────────────
// searchInfoTitle = "What can I search for?",
// searchInfoSubtitle = "Type any part of the following to find a payment:",
// searchInfoMemoTitle = "Memo",
// searchInfoMemoDesc = "The message or description attached to a payment. " +
// "For example, \"coffee\" or \"rent March\".",
// searchInfoInvoiceTitle = "Invoice",
// searchInfoInvoiceDesc = "The payment request you scanned or pasted to send a payment. " +
// "It usually starts with \"lnbc…\". " +
// "You can paste just the first or last few characters.",
// searchInfoHashTitle = "Hash",
// searchInfoHashDesc = "A unique code that identifies this payment on the " +
// "Lightning Network. Useful if someone asks you to " +
// "confirm a specific transaction.",
// searchInfoPreimageTitle = "Preimage",
// searchInfoPreimageDesc = "A secret code that proves a payment was received. " +
// "Only available after a payment completes successfully.",
// searchInfoNodeAliasTitle = "Node alias",
// searchInfoNodeAliasDesc = "The name of the Lightning node you sent a payment to. " +
// "For example, \"ACINQ\" or \"Wallet of Satoshi\". " +
// "Aliases are resolved automatically for outgoing payments.",
// searchInfoNodeIdTitle = "Node ID (pubkey)",
// searchInfoNodeIdDesc = "The public key of the destination node. " +
// "A 66-character hex string — you can paste just the first few characters.",
// searchInfoFooter = "You can paste a full value or search with just a few characters — " +
// "partial matches work too.",
//
// // ── PaymentDetailScreen ───────────────────────────────────────────────────
// statusSuccess = "Success", // e.g. "Success"
// statusPending = "Pending", // e.g. "Pending"
// statusFailed = "Failed", // e.g. "Failed"
// statusUnknown = "Unknown", // e.g. "Unknown"
// detailOutgoingTitle = "Outgoing payment",
// detailIncomingTitle = "Incoming payment",
// detailBack = "Back",
// detailCouldNotLoad = "Could not load full details",
// detailFeeLabel = { feeSat, fiatPart, ppmPart ->
// "Fee: $feeSat sats$fiatPart$ppmPart"
// },
// detailSectionDetails = "Details",
// detailRowDate = "Date",
// detailRowMemo = "Memo",
// detailRowMemoEmpty = "—",
// detailRowType = "Type",
// detailRowComment = "Comment",
// detailSectionSuccessAction = "Success Action",
// detailSuccessMessage = "Message",
// detailSuccessUrl = "URL",
// detailSuccessDescription = "Description",
// detailSectionTechnical = "Technical",
// detailRowPaymentHash = "Hash",
// detailRowPreimage = "Preimage",
// detailRowDestination = "Destination",
// detailCopyNodeId = "Copy node ID",
// detailRowBolt11 = "BOLT11",
//
// // ── PaymentRow ────────────────────────────────────────────────────────────
// paymentRowSentCD = "Sent",
// paymentRowReceivedCD = "Received",
// paymentRowNoMemo = "No memo",
// paymentRowPending = "Pending",
// paymentRowFailed = "Failed",
onboarding = OnboardingStrings(
back = "Back",
@@ -359,6 +359,120 @@ val EnHomeStrings = AppStrings(
receiveVmWithdrawFailed = "Withdraw failed",
),
history = HistoryStrings(
// ── HistoryScreen ─────────────────────────────────────────────────────────
historyTitle = "Activity",
historyClose = "Close",
historySearchPayments = "Search payments",
historyFilterPayments = "Filter payments",
historyRetry = "Retry",
historyNoPayments = "No payments yet.",
historySearchPlaceholder = "Search transactions",
historySearchHelp = "Search help",
historySearchPaste = "Paste",
historySearchClear = "Clear search",
historySearchChip = { tail -> "search: …$tail" },
historyClearSearch = "Clear search",
filterDirectionOutgoing = "Outgoing",
filterDirectionIncoming = "Incoming",
filterClearDirection = "Clear direction filter",
filterStatusCompleted = "Completed",
filterStatusPending = "Pending",
filterStatusFailed = "Failed",
filterRemoveStatus = "Remove status filter",
filterRemoveType = "Remove type filter",
filterAmountRange = { min, max -> "$min$max sats" },
filterAmountMin = { min -> "$min sats" },
filterAmountMax = { max -> "$max sats" },
filterClearAmount = "Clear amount filter",
filterDateThisWeek = "This week",
filterDateThisMonth = "This month",
filterDateThisYear = "This year",
filterDateRange = { from, to -> "$from$to" },
filterDateFrom = { from -> "From $from" },
filterDateUntil = { until -> "Until $until" },
filterClearDate = "Clear date filter",
// ── FilterBottomSheet ─────────────────────────────────────────────────────
filterSheetTitle = "Filter payments",
filterSectionDirection = "Direction",
filterDirectionAll = "All",
filterSectionStatus = "Status",
filterSectionType = "Type",
filterSectionAmount = "Amount (sats)",
filterAmountMin_label = "Min",
filterAmountMax_label = "Max",
filterAmountSuffix = "sats",
filterSectionDate = "Date",
filterDateFrom_label = "From",
filterDateTo_label = "To",
filterDialogOk = "OK",
filterDialogCancel = "Cancel",
// ── SearchInfoSheet ───────────────────────────────────────────────────────
searchInfoTitle = "What can I search for?",
searchInfoSubtitle = "Type any part of the following to find a payment:",
searchInfoMemoTitle = "Memo",
searchInfoMemoDesc = "The message or description attached to a payment. " +
"For example, \"coffee\" or \"rent March\".",
searchInfoInvoiceTitle = "Invoice",
searchInfoInvoiceDesc = "The payment request you scanned or pasted to send a payment. " +
"It usually starts with \"lnbc…\". " +
"You can paste just the first or last few characters.",
searchInfoHashTitle = "Hash",
searchInfoHashDesc = "A unique code that identifies this payment on the " +
"Lightning Network. Useful if someone asks you to " +
"confirm a specific transaction.",
searchInfoPreimageTitle = "Preimage",
searchInfoPreimageDesc = "A secret code that proves a payment was received. " +
"Only available after a payment completes successfully.",
searchInfoNodeAliasTitle = "Node alias",
searchInfoNodeAliasDesc = "The name of the Lightning node you sent a payment to. " +
"For example, \"ACINQ\" or \"Wallet of Satoshi\". " +
"Aliases are resolved automatically for outgoing payments.",
searchInfoNodeIdTitle = "Node ID (pubkey)",
searchInfoNodeIdDesc = "The public key of the destination node. " +
"A 66-character hex string — you can paste just the first few characters.",
searchInfoFooter = "You can paste a full value or search with just a few characters — " +
"partial matches work too.",
// ── PaymentDetailScreen ───────────────────────────────────────────────────
statusSuccess = "Success", // e.g. "Success"
statusPending = "Pending", // e.g. "Pending"
statusFailed = "Failed", // e.g. "Failed"
statusUnknown = "Unknown", // e.g. "Unknown"
detailOutgoingTitle = "Outgoing payment",
detailIncomingTitle = "Incoming payment",
detailBack = "Back",
detailCouldNotLoad = "Could not load full details",
detailFeeLabel = { feeSat, fiatPart, ppmPart ->
"Fee: $feeSat sats$fiatPart$ppmPart"
},
detailSectionDetails = "Details",
detailRowDate = "Date",
detailRowMemo = "Memo",
detailRowMemoEmpty = "",
detailRowType = "Type",
detailRowComment = "Comment",
detailSectionSuccessAction = "Success Action",
detailSuccessMessage = "Message",
detailSuccessUrl = "URL",
detailSuccessDescription = "Description",
detailSectionTechnical = "Technical",
detailRowPaymentHash = "Hash",
detailRowPreimage = "Preimage",
detailRowDestination = "Destination",
detailCopyNodeId = "Copy node ID",
detailRowBolt11 = "BOLT11",
// ── PaymentRow ────────────────────────────────────────────────────────────
paymentRowSentCD = "Sent",
paymentRowReceivedCD = "Received",
paymentRowNoMemo = "No memo",
paymentRowPending = "Pending",
paymentRowFailed = "Failed",
),
nwc = NwcStrings(
back = "Back",
next = "Next",
@@ -141,117 +141,117 @@ val EsHomeStrings = AppStrings(
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",
//// ── 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(
@@ -360,6 +360,120 @@ val EsHomeStrings = AppStrings(
receiveVmWithdrawFailed = "Error al retirar",
),
history = HistoryStrings(
// ── 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",
),
nwc = NwcStrings(
// ── Shared ────────────────────────────────────────────────────────────────
back = "Atrás",
@@ -141,116 +141,116 @@ val EuStrings = AppStrings(
sendVmUnsupportedType = { tag -> "Mota onartzen ez dena: $tag" },
sendVmPaymentFailedRescan = "Ordainketak huts egin du — ezin izan da helbidea berriro eskuratu",
// ── HistoryScreen ─────────────────────────────────────────────────────────
historyTitle = "Historia",
historyClose = "Itxi",
historySearchPayments = "Bilatu ordainketak",
historyFilterPayments = "Iragazi ordainketak",
historyRetry = "Saiatu berriro",
historyNoPayments = "Oraindik ez dago ordainketarik.",
historySearchPlaceholder = "Bilatu transakzioak",
historySearchHelp = "Bilaketa-laguntza",
historySearchPaste = "Itsatsi",
historySearchClear = "Garbitu bilaketa",
historySearchChip = { tail -> "bilaketa: …$tail" },
historyClearSearch = "Garbitu bilaketa",
filterDirectionOutgoing = "Irteerako",
filterDirectionIncoming = "Sarrerako",
filterClearDirection = "Garbitu norabide-iragazkia",
filterStatusCompleted = "Osatuta",
filterStatusPending = "Zain",
filterStatusFailed = "Huts eginda",
filterRemoveStatus = "Kendu egoera-iragazkia",
filterRemoveType = "Kendu mota-iragazkia",
filterAmountRange = { min, max -> "$min$max sat" },
filterAmountMin = { min -> "$min sat" },
filterAmountMax = { max -> "$max sat" },
filterClearAmount = "Garbitu zenbateko-iragazkia",
filterDateThisWeek = "Aste honetan",
filterDateThisMonth = "Hilabete honetan",
filterDateThisYear = "Urte honetan",
filterDateRange = { from, to -> "$from$to" },
filterDateFrom = { from -> "$from-tik" },
filterDateUntil = { until -> "$until arte" },
filterClearDate = "Garbitu data-iragazkia",
// ── FilterBottomSheet ─────────────────────────────────────────────────────
filterSheetTitle = "Iragazi ordainketak",
filterSectionDirection = "Norabidea",
filterDirectionAll = "Guztiak",
filterSectionStatus = "Egoera",
filterSectionType = "Mota",
filterSectionAmount = "Zenbatekoa (sat)",
filterAmountMin_label = "Gutxienekoa",
filterAmountMax_label = "Gehienekoa",
filterAmountSuffix = "sat",
filterSectionDate = "Data",
filterDateFrom_label = "Nondik",
filterDateTo_label = "Nora arte",
filterDialogOk = "Ados",
filterDialogCancel = "Utzi",
// ── SearchInfoSheet ───────────────────────────────────────────────────────
searchInfoTitle = "Zer bila dezaket?",
searchInfoSubtitle = "Idatzi hurrengoetako edozein zati ordainketa bat aurkitzeko:",
searchInfoMemoTitle = "Oharra",
searchInfoMemoDesc = "Ordainketa bati erantsitako mezua edo deskribapena. " +
"Adibidez, \"kafea\" edo \"martxoko alokairua\".",
searchInfoInvoiceTitle = "Faktura",
searchInfoInvoiceDesc = "Ordainketa bat bidaltzeko eskaneatu edo itsatsi zenuen ordainketa-eskaera. " +
"Normalean \"lnbc…\" hasierarekin dator. " +
"Lehen edo azken karaktere batzuk bakarrik itsats ditzakezu.",
searchInfoHashTitle = "Hash",
searchInfoHashDesc = "Ordainketa hau Lightning Sarean identifikatzen duen kode bakarra. " +
"Erabilgarria norbaitek transakzio zehatz bat berresteko eskatzen dizunean.",
searchInfoPreimageTitle = "Aurre-irudia",
searchInfoPreimageDesc = "Ordainketa bat jaso dela frogatzen duen kode sekretua. " +
"Ordainketa arrakastaz osatu ondoren bakarrik dago erabilgarri.",
searchInfoNodeAliasTitle = "Nodo-izengoitia",
searchInfoNodeAliasDesc = "Ordainketa bidali zenion Lightning nodoaren izena. " +
"Adibidez, \"ACINQ\" edo \"Wallet of Satoshi\". " +
"Izengoitiak automatikoki ebazten dira irteerako ordainketetan.",
searchInfoNodeIdTitle = "Nodo IDa (gako publikoa)",
searchInfoNodeIdDesc = "Helmuga-nodoaren gako publikoa. " +
"66 karaktereko hex katea — lehen karaktere batzuk bakarrik itsats ditzakezu.",
searchInfoFooter = "Balio osoa itsatsi dezakezu edo karaktere gutxi batzuekin bilatu — " +
"zati-bat datozenak ere funtzionatzen dute.",
// ── PaymentDetailScreen ───────────────────────────────────────────────────
statusSuccess = "Osatuta",
statusPending = "Zain",
statusFailed = "Huts eginda",
statusUnknown = "Ezezaguna",
detailOutgoingTitle = "Irteerako ordainketa",
detailIncomingTitle = "Sarrerako ordainketa",
detailBack = "Atzera",
detailCouldNotLoad = "Ezin izan dira xehetasun osoak kargatu",
detailFeeLabel = { feeSat, fiatPart, ppmPart ->
"Komisioa: $feeSat sat$fiatPart$ppmPart"
},
detailSectionDetails = "Xehetasunak",
detailRowDate = "Data",
detailRowMemo = "Oharra",
detailRowMemoEmpty = "",
detailRowType = "Mota",
detailRowComment = "Iruzkina",
detailSectionSuccessAction = "Arrakasta-ekintza",
detailSuccessMessage = "Mezua",
detailSuccessUrl = "URLa",
detailSuccessDescription = "Deskribapena",
detailSectionTechnical = "Teknikoa",
detailRowPaymentHash = "Hash",
detailRowPreimage = "Aurre-irudia",
detailRowDestination = "Helmuga",
detailCopyNodeId = "Kopiatu nodo IDa",
detailRowBolt11 = "BOLT11",
// ── PaymentRow ────────────────────────────────────────────────────────────
paymentRowSentCD = "Bidalita",
paymentRowReceivedCD = "Jasota",
paymentRowNoMemo = "Oharrik gabe",
paymentRowPending = "Zain",
paymentRowFailed = "Huts eginda",
// // ── HistoryScreen ─────────────────────────────────────────────────────────
// historyTitle = "Historia",
// historyClose = "Itxi",
// historySearchPayments = "Bilatu ordainketak",
// historyFilterPayments = "Iragazi ordainketak",
// historyRetry = "Saiatu berriro",
// historyNoPayments = "Oraindik ez dago ordainketarik.",
// historySearchPlaceholder = "Bilatu transakzioak",
// historySearchHelp = "Bilaketa-laguntza",
// historySearchPaste = "Itsatsi",
// historySearchClear = "Garbitu bilaketa",
// historySearchChip = { tail -> "bilaketa: …$tail" },
// historyClearSearch = "Garbitu bilaketa",
// filterDirectionOutgoing = "Irteerako",
// filterDirectionIncoming = "Sarrerako",
// filterClearDirection = "Garbitu norabide-iragazkia",
// filterStatusCompleted = "Osatuta",
// filterStatusPending = "Zain",
// filterStatusFailed = "Huts eginda",
// filterRemoveStatus = "Kendu egoera-iragazkia",
// filterRemoveType = "Kendu mota-iragazkia",
// filterAmountRange = { min, max -> "$min$max sat" },
// filterAmountMin = { min -> "≥ $min sat" },
// filterAmountMax = { max -> "≤ $max sat" },
// filterClearAmount = "Garbitu zenbateko-iragazkia",
// filterDateThisWeek = "Aste honetan",
// filterDateThisMonth = "Hilabete honetan",
// filterDateThisYear = "Urte honetan",
// filterDateRange = { from, to -> "$from$to" },
// filterDateFrom = { from -> "$from-tik" },
// filterDateUntil = { until -> "$until arte" },
// filterClearDate = "Garbitu data-iragazkia",
//
// // ── FilterBottomSheet ─────────────────────────────────────────────────────
// filterSheetTitle = "Iragazi ordainketak",
// filterSectionDirection = "Norabidea",
// filterDirectionAll = "Guztiak",
// filterSectionStatus = "Egoera",
// filterSectionType = "Mota",
// filterSectionAmount = "Zenbatekoa (sat)",
// filterAmountMin_label = "Gutxienekoa",
// filterAmountMax_label = "Gehienekoa",
// filterAmountSuffix = "sat",
// filterSectionDate = "Data",
// filterDateFrom_label = "Nondik",
// filterDateTo_label = "Nora arte",
// filterDialogOk = "Ados",
// filterDialogCancel = "Utzi",
//
// // ── SearchInfoSheet ───────────────────────────────────────────────────────
// searchInfoTitle = "Zer bila dezaket?",
// searchInfoSubtitle = "Idatzi hurrengoetako edozein zati ordainketa bat aurkitzeko:",
// searchInfoMemoTitle = "Oharra",
// searchInfoMemoDesc = "Ordainketa bati erantsitako mezua edo deskribapena. " +
// "Adibidez, \"kafea\" edo \"martxoko alokairua\".",
// searchInfoInvoiceTitle = "Faktura",
// searchInfoInvoiceDesc = "Ordainketa bat bidaltzeko eskaneatu edo itsatsi zenuen ordainketa-eskaera. " +
// "Normalean \"lnbc…\" hasierarekin dator. " +
// "Lehen edo azken karaktere batzuk bakarrik itsats ditzakezu.",
// searchInfoHashTitle = "Hash",
// searchInfoHashDesc = "Ordainketa hau Lightning Sarean identifikatzen duen kode bakarra. " +
// "Erabilgarria norbaitek transakzio zehatz bat berresteko eskatzen dizunean.",
// searchInfoPreimageTitle = "Aurre-irudia",
// searchInfoPreimageDesc = "Ordainketa bat jaso dela frogatzen duen kode sekretua. " +
// "Ordainketa arrakastaz osatu ondoren bakarrik dago erabilgarri.",
// searchInfoNodeAliasTitle = "Nodo-izengoitia",
// searchInfoNodeAliasDesc = "Ordainketa bidali zenion Lightning nodoaren izena. " +
// "Adibidez, \"ACINQ\" edo \"Wallet of Satoshi\". " +
// "Izengoitiak automatikoki ebazten dira irteerako ordainketetan.",
// searchInfoNodeIdTitle = "Nodo IDa (gako publikoa)",
// searchInfoNodeIdDesc = "Helmuga-nodoaren gako publikoa. " +
// "66 karaktereko hex katea — lehen karaktere batzuk bakarrik itsats ditzakezu.",
// searchInfoFooter = "Balio osoa itsatsi dezakezu edo karaktere gutxi batzuekin bilatu — " +
// "zati-bat datozenak ere funtzionatzen dute.",
//
// // ── PaymentDetailScreen ───────────────────────────────────────────────────
// statusSuccess = "Osatuta",
// statusPending = "Zain",
// statusFailed = "Huts eginda",
// statusUnknown = "Ezezaguna",
// detailOutgoingTitle = "Irteerako ordainketa",
// detailIncomingTitle = "Sarrerako ordainketa",
// detailBack = "Atzera",
// detailCouldNotLoad = "Ezin izan dira xehetasun osoak kargatu",
// detailFeeLabel = { feeSat, fiatPart, ppmPart ->
// "Komisioa: $feeSat sat$fiatPart$ppmPart"
// },
// detailSectionDetails = "Xehetasunak",
// detailRowDate = "Data",
// detailRowMemo = "Oharra",
// detailRowMemoEmpty = "—",
// detailRowType = "Mota",
// detailRowComment = "Iruzkina",
// detailSectionSuccessAction = "Arrakasta-ekintza",
// detailSuccessMessage = "Mezua",
// detailSuccessUrl = "URLa",
// detailSuccessDescription = "Deskribapena",
// detailSectionTechnical = "Teknikoa",
// detailRowPaymentHash = "Hash",
// detailRowPreimage = "Aurre-irudia",
// detailRowDestination = "Helmuga",
// detailCopyNodeId = "Kopiatu nodo IDa",
// detailRowBolt11 = "BOLT11",
//
// // ── PaymentRow ────────────────────────────────────────────────────────────
// paymentRowSentCD = "Bidalita",
// paymentRowReceivedCD = "Jasota",
// paymentRowNoMemo = "Oharrik gabe",
// paymentRowPending = "Zain",
// paymentRowFailed = "Huts eginda",
onboarding = OnboardingStrings(
@@ -358,6 +358,120 @@ val EuStrings = AppStrings(
receiveVmWithdrawRejected = "Ateratzeko zerbitzuak faktura baztertu du",
receiveVmWithdrawFailed = "Ateratzeak huts egin du",
),
history = HistoryStrings(
// ── HistoryScreen ─────────────────────────────────────────────────────────
historyTitle = "Historia",
historyClose = "Itxi",
historySearchPayments = "Bilatu ordainketak",
historyFilterPayments = "Iragazi ordainketak",
historyRetry = "Saiatu berriro",
historyNoPayments = "Oraindik ez dago ordainketarik.",
historySearchPlaceholder = "Bilatu transakzioak",
historySearchHelp = "Bilaketa-laguntza",
historySearchPaste = "Itsatsi",
historySearchClear = "Garbitu bilaketa",
historySearchChip = { tail -> "bilaketa: …$tail" },
historyClearSearch = "Garbitu bilaketa",
filterDirectionOutgoing = "Irteerako",
filterDirectionIncoming = "Sarrerako",
filterClearDirection = "Garbitu norabide-iragazkia",
filterStatusCompleted = "Osatuta",
filterStatusPending = "Zain",
filterStatusFailed = "Huts eginda",
filterRemoveStatus = "Kendu egoera-iragazkia",
filterRemoveType = "Kendu mota-iragazkia",
filterAmountRange = { min, max -> "$min$max sat" },
filterAmountMin = { min -> "$min sat" },
filterAmountMax = { max -> "$max sat" },
filterClearAmount = "Garbitu zenbateko-iragazkia",
filterDateThisWeek = "Aste honetan",
filterDateThisMonth = "Hilabete honetan",
filterDateThisYear = "Urte honetan",
filterDateRange = { from, to -> "$from$to" },
filterDateFrom = { from -> "$from-tik" },
filterDateUntil = { until -> "$until arte" },
filterClearDate = "Garbitu data-iragazkia",
// ── FilterBottomSheet ─────────────────────────────────────────────────────
filterSheetTitle = "Iragazi ordainketak",
filterSectionDirection = "Norabidea",
filterDirectionAll = "Guztiak",
filterSectionStatus = "Egoera",
filterSectionType = "Mota",
filterSectionAmount = "Zenbatekoa (sat)",
filterAmountMin_label = "Gutxienekoa",
filterAmountMax_label = "Gehienekoa",
filterAmountSuffix = "sat",
filterSectionDate = "Data",
filterDateFrom_label = "Nondik",
filterDateTo_label = "Nora arte",
filterDialogOk = "Ados",
filterDialogCancel = "Utzi",
// ── SearchInfoSheet ───────────────────────────────────────────────────────
searchInfoTitle = "Zer bila dezaket?",
searchInfoSubtitle = "Idatzi hurrengoetako edozein zati ordainketa bat aurkitzeko:",
searchInfoMemoTitle = "Oharra",
searchInfoMemoDesc = "Ordainketa bati erantsitako mezua edo deskribapena. " +
"Adibidez, \"kafea\" edo \"martxoko alokairua\".",
searchInfoInvoiceTitle = "Faktura",
searchInfoInvoiceDesc = "Ordainketa bat bidaltzeko eskaneatu edo itsatsi zenuen ordainketa-eskaera. " +
"Normalean \"lnbc…\" hasierarekin dator. " +
"Lehen edo azken karaktere batzuk bakarrik itsats ditzakezu.",
searchInfoHashTitle = "Hash",
searchInfoHashDesc = "Ordainketa hau Lightning Sarean identifikatzen duen kode bakarra. " +
"Erabilgarria norbaitek transakzio zehatz bat berresteko eskatzen dizunean.",
searchInfoPreimageTitle = "Aurre-irudia",
searchInfoPreimageDesc = "Ordainketa bat jaso dela frogatzen duen kode sekretua. " +
"Ordainketa arrakastaz osatu ondoren bakarrik dago erabilgarri.",
searchInfoNodeAliasTitle = "Nodo-izengoitia",
searchInfoNodeAliasDesc = "Ordainketa bidali zenion Lightning nodoaren izena. " +
"Adibidez, \"ACINQ\" edo \"Wallet of Satoshi\". " +
"Izengoitiak automatikoki ebazten dira irteerako ordainketetan.",
searchInfoNodeIdTitle = "Nodo IDa (gako publikoa)",
searchInfoNodeIdDesc = "Helmuga-nodoaren gako publikoa. " +
"66 karaktereko hex katea — lehen karaktere batzuk bakarrik itsats ditzakezu.",
searchInfoFooter = "Balio osoa itsatsi dezakezu edo karaktere gutxi batzuekin bilatu — " +
"zati-bat datozenak ere funtzionatzen dute.",
// ── PaymentDetailScreen ───────────────────────────────────────────────────
statusSuccess = "Osatuta",
statusPending = "Zain",
statusFailed = "Huts eginda",
statusUnknown = "Ezezaguna",
detailOutgoingTitle = "Irteerako ordainketa",
detailIncomingTitle = "Sarrerako ordainketa",
detailBack = "Atzera",
detailCouldNotLoad = "Ezin izan dira xehetasun osoak kargatu",
detailFeeLabel = { feeSat, fiatPart, ppmPart ->
"Komisioa: $feeSat sat$fiatPart$ppmPart"
},
detailSectionDetails = "Xehetasunak",
detailRowDate = "Data",
detailRowMemo = "Oharra",
detailRowMemoEmpty = "",
detailRowType = "Mota",
detailRowComment = "Iruzkina",
detailSectionSuccessAction = "Arrakasta-ekintza",
detailSuccessMessage = "Mezua",
detailSuccessUrl = "URLa",
detailSuccessDescription = "Deskribapena",
detailSectionTechnical = "Teknikoa",
detailRowPaymentHash = "Hash",
detailRowPreimage = "Aurre-irudia",
detailRowDestination = "Helmuga",
detailCopyNodeId = "Kopiatu nodo IDa",
detailRowBolt11 = "BOLT11",
// ── PaymentRow ────────────────────────────────────────────────────────────
paymentRowSentCD = "Bidalita",
paymentRowReceivedCD = "Jasota",
paymentRowNoMemo = "Oharrik gabe",
paymentRowPending = "Zain",
paymentRowFailed = "Huts eginda",
),
nwc = NwcStrings(
// ── Shared ────────────────────────────────────────────────────────────────
back = "Atzera",
@@ -149,108 +149,109 @@ data class AppStrings(
val sendVmUnsupportedType : (tag: String) -> String,
val sendVmPaymentFailedRescan : String,
// ── HistoryScreen ─────────────────────────────────────────────────────────
val historyTitle : String,
val historyClose : String,
val historySearchPayments : String,
val historyFilterPayments : String,
val historyRetry : String,
val historyNoPayments : String,
val historySearchPlaceholder : String,
val historySearchHelp : String,
val historySearchPaste : String,
val historySearchClear : String,
val historySearchChip : (tail: String) -> String,
val historyClearSearch : String,
val filterDirectionOutgoing : String,
val filterDirectionIncoming : String,
val filterClearDirection : String,
val filterStatusCompleted : String,
val filterStatusPending : String,
val filterStatusFailed : String,
val filterRemoveStatus : String,
val filterRemoveType : String,
val filterAmountRange : (min: Long, max: Long) -> String,
val filterAmountMin : (min: Long) -> String,
val filterAmountMax : (max: Long) -> String,
val filterClearAmount : String,
val filterDateThisWeek : String,
val filterDateThisMonth : String,
val filterDateThisYear : String,
val filterDateRange : (from: String, to: String) -> String,
val filterDateFrom : (from: String) -> String,
val filterDateUntil : (until: String) -> String,
val filterClearDate : String,
// ── FilterBottomSheet ─────────────────────────────────────────────────────
val filterSheetTitle : String,
val filterSectionDirection : String,
val filterDirectionAll : String,
val filterSectionStatus : String,
val filterSectionType : String,
val filterSectionAmount : String,
val filterAmountMin_label : String,
val filterAmountMax_label : String,
val filterAmountSuffix : String,
val filterSectionDate : String,
val filterDateFrom_label : String,
val filterDateTo_label : String,
val filterDialogOk : String,
val filterDialogCancel : String,
// ── SearchInfoSheet ───────────────────────────────────────────────────────
val searchInfoTitle : String,
val searchInfoSubtitle : String,
val searchInfoMemoTitle : String,
val searchInfoMemoDesc : String,
val searchInfoInvoiceTitle : String,
val searchInfoInvoiceDesc : String,
val searchInfoHashTitle : String,
val searchInfoHashDesc : String,
val searchInfoPreimageTitle : String,
val searchInfoPreimageDesc : String,
val searchInfoNodeAliasTitle : String,
val searchInfoNodeAliasDesc : String,
val searchInfoNodeIdTitle : String,
val searchInfoNodeIdDesc : String,
val searchInfoFooter : String,
// ── PaymentDetailScreen ───────────────────────────────────────────────────
val statusSuccess : String, // e.g. "Success"
val statusPending : String, // e.g. "Pending"
val statusFailed : String, // e.g. "Failed"
val statusUnknown : String, // e.g. "Unknown"
val detailOutgoingTitle : String,
val detailIncomingTitle : String,
val detailBack : String,
val detailCouldNotLoad : String,
val detailFeeLabel : (feeSat: Long, fiatPart: String, ppmPart: String) -> String,
val detailSectionDetails : String,
val detailRowDate : String,
val detailRowMemo : String,
val detailRowMemoEmpty : String,
val detailRowType : String,
val detailRowComment : String,
val detailSectionSuccessAction: String,
val detailSuccessMessage : String,
val detailSuccessUrl : String,
val detailSuccessDescription : String,
val detailSectionTechnical : String,
val detailRowPaymentHash : String,
val detailRowPreimage : String,
val detailRowDestination : String,
val detailCopyNodeId : String,
val detailRowBolt11 : String,
// ── PaymentRow ────────────────────────────────────────────────────────────
val paymentRowSentCD : String,
val paymentRowReceivedCD : String,
val paymentRowNoMemo : String,
val paymentRowPending : String,
val paymentRowFailed : String,
// // ── HistoryScreen ─────────────────────────────────────────────────────────
// val historyTitle : String,
// val historyClose : String,
// val historySearchPayments : String,
// val historyFilterPayments : String,
// val historyRetry : String,
// val historyNoPayments : String,
// val historySearchPlaceholder : String,
// val historySearchHelp : String,
// val historySearchPaste : String,
// val historySearchClear : String,
// val historySearchChip : (tail: String) -> String,
// val historyClearSearch : String,
// val filterDirectionOutgoing : String,
// val filterDirectionIncoming : String,
// val filterClearDirection : String,
// val filterStatusCompleted : String,
// val filterStatusPending : String,
// val filterStatusFailed : String,
// val filterRemoveStatus : String,
// val filterRemoveType : String,
// val filterAmountRange : (min: Long, max: Long) -> String,
// val filterAmountMin : (min: Long) -> String,
// val filterAmountMax : (max: Long) -> String,
// val filterClearAmount : String,
// val filterDateThisWeek : String,
// val filterDateThisMonth : String,
// val filterDateThisYear : String,
// val filterDateRange : (from: String, to: String) -> String,
// val filterDateFrom : (from: String) -> String,
// val filterDateUntil : (until: String) -> String,
// val filterClearDate : String,
//
// // ── FilterBottomSheet ─────────────────────────────────────────────────────
// val filterSheetTitle : String,
// val filterSectionDirection : String,
// val filterDirectionAll : String,
// val filterSectionStatus : String,
// val filterSectionType : String,
// val filterSectionAmount : String,
// val filterAmountMin_label : String,
// val filterAmountMax_label : String,
// val filterAmountSuffix : String,
// val filterSectionDate : String,
// val filterDateFrom_label : String,
// val filterDateTo_label : String,
// val filterDialogOk : String,
// val filterDialogCancel : String,
//
// // ── SearchInfoSheet ───────────────────────────────────────────────────────
// val searchInfoTitle : String,
// val searchInfoSubtitle : String,
// val searchInfoMemoTitle : String,
// val searchInfoMemoDesc : String,
// val searchInfoInvoiceTitle : String,
// val searchInfoInvoiceDesc : String,
// val searchInfoHashTitle : String,
// val searchInfoHashDesc : String,
// val searchInfoPreimageTitle : String,
// val searchInfoPreimageDesc : String,
// val searchInfoNodeAliasTitle : String,
// val searchInfoNodeAliasDesc : String,
// val searchInfoNodeIdTitle : String,
// val searchInfoNodeIdDesc : String,
// val searchInfoFooter : String,
//
// // ── PaymentDetailScreen ───────────────────────────────────────────────────
// val statusSuccess : String, // e.g. "Success"
// val statusPending : String, // e.g. "Pending"
// val statusFailed : String, // e.g. "Failed"
// val statusUnknown : String, // e.g. "Unknown"
// val detailOutgoingTitle : String,
// val detailIncomingTitle : String,
// val detailBack : String,
// val detailCouldNotLoad : String,
// val detailFeeLabel : (feeSat: Long, fiatPart: String, ppmPart: String) -> String,
// val detailSectionDetails : String,
// val detailRowDate : String,
// val detailRowMemo : String,
// val detailRowMemoEmpty : String,
// val detailRowType : String,
// val detailRowComment : String,
// val detailSectionSuccessAction: String,
// val detailSuccessMessage : String,
// val detailSuccessUrl : String,
// val detailSuccessDescription : String,
// val detailSectionTechnical : String,
// val detailRowPaymentHash : String,
// val detailRowPreimage : String,
// val detailRowDestination : String,
// val detailCopyNodeId : String,
// val detailRowBolt11 : String,
//
// // ── PaymentRow ────────────────────────────────────────────────────────────
// val paymentRowSentCD : String,
// val paymentRowReceivedCD : String,
// val paymentRowNoMemo : String,
// val paymentRowPending : String,
// val paymentRowFailed : String,
val onboarding: OnboardingStrings,
val receive: ReceiveStrings,
val history: HistoryStrings,
val nwc: NwcStrings
)
@@ -360,6 +361,108 @@ data class ReceiveStrings(
val receiveVmWithdrawFailed : String,
)
data class HistoryStrings(
// ── HistoryScreen ─────────────────────────────────────────────────────────
val historyTitle : String,
val historyClose : String,
val historySearchPayments : String,
val historyFilterPayments : String,
val historyRetry : String,
val historyNoPayments : String,
val historySearchPlaceholder : String,
val historySearchHelp : String,
val historySearchPaste : String,
val historySearchClear : String,
val historySearchChip : (tail: String) -> String,
val historyClearSearch : String,
val filterDirectionOutgoing : String,
val filterDirectionIncoming : String,
val filterClearDirection : String,
val filterStatusCompleted : String,
val filterStatusPending : String,
val filterStatusFailed : String,
val filterRemoveStatus : String,
val filterRemoveType : String,
val filterAmountRange : (min: Long, max: Long) -> String,
val filterAmountMin : (min: Long) -> String,
val filterAmountMax : (max: Long) -> String,
val filterClearAmount : String,
val filterDateThisWeek : String,
val filterDateThisMonth : String,
val filterDateThisYear : String,
val filterDateRange : (from: String, to: String) -> String,
val filterDateFrom : (from: String) -> String,
val filterDateUntil : (until: String) -> String,
val filterClearDate : String,
// ── FilterBottomSheet ─────────────────────────────────────────────────────
val filterSheetTitle : String,
val filterSectionDirection : String,
val filterDirectionAll : String,
val filterSectionStatus : String,
val filterSectionType : String,
val filterSectionAmount : String,
val filterAmountMin_label : String,
val filterAmountMax_label : String,
val filterAmountSuffix : String,
val filterSectionDate : String,
val filterDateFrom_label : String,
val filterDateTo_label : String,
val filterDialogOk : String,
val filterDialogCancel : String,
// ── SearchInfoSheet ───────────────────────────────────────────────────────
val searchInfoTitle : String,
val searchInfoSubtitle : String,
val searchInfoMemoTitle : String,
val searchInfoMemoDesc : String,
val searchInfoInvoiceTitle : String,
val searchInfoInvoiceDesc : String,
val searchInfoHashTitle : String,
val searchInfoHashDesc : String,
val searchInfoPreimageTitle : String,
val searchInfoPreimageDesc : String,
val searchInfoNodeAliasTitle : String,
val searchInfoNodeAliasDesc : String,
val searchInfoNodeIdTitle : String,
val searchInfoNodeIdDesc : String,
val searchInfoFooter : String,
// ── PaymentDetailScreen ───────────────────────────────────────────────────
val statusSuccess : String, // e.g. "Success"
val statusPending : String, // e.g. "Pending"
val statusFailed : String, // e.g. "Failed"
val statusUnknown : String, // e.g. "Unknown"
val detailOutgoingTitle : String,
val detailIncomingTitle : String,
val detailBack : String,
val detailCouldNotLoad : String,
val detailFeeLabel : (feeSat: Long, fiatPart: String, ppmPart: String) -> String,
val detailSectionDetails : String,
val detailRowDate : String,
val detailRowMemo : String,
val detailRowMemoEmpty : String,
val detailRowType : String,
val detailRowComment : String,
val detailSectionSuccessAction: String,
val detailSuccessMessage : String,
val detailSuccessUrl : String,
val detailSuccessDescription : String,
val detailSectionTechnical : String,
val detailRowPaymentHash : String,
val detailRowPreimage : String,
val detailRowDestination : String,
val detailCopyNodeId : String,
val detailRowBolt11 : String,
// ── PaymentRow ────────────────────────────────────────────────────────────
val paymentRowSentCD : String,
val paymentRowReceivedCD : String,
val paymentRowNoMemo : String,
val paymentRowPending : String,
val paymentRowFailed : String,
)
data class NwcStrings(
// ── Shared / navigation ───────────────────────────────────────────────────
@@ -1,8 +1,8 @@
package com.bitcointxoko.gudariwallet.i18n
fun AppStrings.paymentStatusLabel(status: String): String = when (status.lowercase()) {
"success" -> statusSuccess
"pending" -> statusPending
"failed" -> statusFailed
else -> statusUnknown
"success" -> history.statusSuccess
"pending" -> history.statusPending
"failed" -> history.statusFailed
else -> history.statusUnknown
}