refactor: i18n HistoryStrings
This commit is contained in:
@@ -141,117 +141,117 @@ val EnHomeStrings = AppStrings(
|
|||||||
sendVmUnsupportedType = { tag -> "Unsupported type: $tag" },
|
sendVmUnsupportedType = { tag -> "Unsupported type: $tag" },
|
||||||
sendVmPaymentFailedRescan = "Payment failed — could not re-fetch address",
|
sendVmPaymentFailedRescan = "Payment failed — could not re-fetch address",
|
||||||
|
|
||||||
// ── HistoryScreen ─────────────────────────────────────────────────────────
|
// // ── HistoryScreen ─────────────────────────────────────────────────────────
|
||||||
historyTitle = "Activity",
|
// historyTitle = "Activity",
|
||||||
historyClose = "Close",
|
// historyClose = "Close",
|
||||||
historySearchPayments = "Search payments",
|
// historySearchPayments = "Search payments",
|
||||||
historyFilterPayments = "Filter payments",
|
// historyFilterPayments = "Filter payments",
|
||||||
historyRetry = "Retry",
|
// historyRetry = "Retry",
|
||||||
historyNoPayments = "No payments yet.",
|
// historyNoPayments = "No payments yet.",
|
||||||
historySearchPlaceholder = "Search transactions",
|
// historySearchPlaceholder = "Search transactions",
|
||||||
historySearchHelp = "Search help",
|
// historySearchHelp = "Search help",
|
||||||
historySearchPaste = "Paste",
|
// historySearchPaste = "Paste",
|
||||||
historySearchClear = "Clear search",
|
// historySearchClear = "Clear search",
|
||||||
historySearchChip = { tail -> "search: …$tail" },
|
// historySearchChip = { tail -> "search: …$tail" },
|
||||||
historyClearSearch = "Clear search",
|
// historyClearSearch = "Clear search",
|
||||||
filterDirectionOutgoing = "Outgoing",
|
// filterDirectionOutgoing = "Outgoing",
|
||||||
filterDirectionIncoming = "Incoming",
|
// filterDirectionIncoming = "Incoming",
|
||||||
filterClearDirection = "Clear direction filter",
|
// filterClearDirection = "Clear direction filter",
|
||||||
filterStatusCompleted = "Completed",
|
// filterStatusCompleted = "Completed",
|
||||||
filterStatusPending = "Pending",
|
// filterStatusPending = "Pending",
|
||||||
filterStatusFailed = "Failed",
|
// filterStatusFailed = "Failed",
|
||||||
filterRemoveStatus = "Remove status filter",
|
// filterRemoveStatus = "Remove status filter",
|
||||||
filterRemoveType = "Remove type filter",
|
// filterRemoveType = "Remove type filter",
|
||||||
filterAmountRange = { min, max -> "$min–$max sats" },
|
// filterAmountRange = { min, max -> "$min–$max sats" },
|
||||||
filterAmountMin = { min -> "≥ $min sats" },
|
// filterAmountMin = { min -> "≥ $min sats" },
|
||||||
filterAmountMax = { max -> "≤ $max sats" },
|
// filterAmountMax = { max -> "≤ $max sats" },
|
||||||
filterClearAmount = "Clear amount filter",
|
// filterClearAmount = "Clear amount filter",
|
||||||
filterDateThisWeek = "This week",
|
// filterDateThisWeek = "This week",
|
||||||
filterDateThisMonth = "This month",
|
// filterDateThisMonth = "This month",
|
||||||
filterDateThisYear = "This year",
|
// filterDateThisYear = "This year",
|
||||||
filterDateRange = { from, to -> "$from–$to" },
|
// filterDateRange = { from, to -> "$from–$to" },
|
||||||
filterDateFrom = { from -> "From $from" },
|
// filterDateFrom = { from -> "From $from" },
|
||||||
filterDateUntil = { until -> "Until $until" },
|
// filterDateUntil = { until -> "Until $until" },
|
||||||
filterClearDate = "Clear date filter",
|
// filterClearDate = "Clear date filter",
|
||||||
|
//
|
||||||
// ── FilterBottomSheet ─────────────────────────────────────────────────────
|
// // ── FilterBottomSheet ─────────────────────────────────────────────────────
|
||||||
filterSheetTitle = "Filter payments",
|
// filterSheetTitle = "Filter payments",
|
||||||
filterSectionDirection = "Direction",
|
// filterSectionDirection = "Direction",
|
||||||
filterDirectionAll = "All",
|
// filterDirectionAll = "All",
|
||||||
filterSectionStatus = "Status",
|
// filterSectionStatus = "Status",
|
||||||
filterSectionType = "Type",
|
// filterSectionType = "Type",
|
||||||
filterSectionAmount = "Amount (sats)",
|
// filterSectionAmount = "Amount (sats)",
|
||||||
filterAmountMin_label = "Min",
|
// filterAmountMin_label = "Min",
|
||||||
filterAmountMax_label = "Max",
|
// filterAmountMax_label = "Max",
|
||||||
filterAmountSuffix = "sats",
|
// filterAmountSuffix = "sats",
|
||||||
filterSectionDate = "Date",
|
// filterSectionDate = "Date",
|
||||||
filterDateFrom_label = "From",
|
// filterDateFrom_label = "From",
|
||||||
filterDateTo_label = "To",
|
// filterDateTo_label = "To",
|
||||||
filterDialogOk = "OK",
|
// filterDialogOk = "OK",
|
||||||
filterDialogCancel = "Cancel",
|
// filterDialogCancel = "Cancel",
|
||||||
|
//
|
||||||
// ── SearchInfoSheet ───────────────────────────────────────────────────────
|
// // ── SearchInfoSheet ───────────────────────────────────────────────────────
|
||||||
searchInfoTitle = "What can I search for?",
|
// searchInfoTitle = "What can I search for?",
|
||||||
searchInfoSubtitle = "Type any part of the following to find a payment:",
|
// searchInfoSubtitle = "Type any part of the following to find a payment:",
|
||||||
searchInfoMemoTitle = "Memo",
|
// searchInfoMemoTitle = "Memo",
|
||||||
searchInfoMemoDesc = "The message or description attached to a payment. " +
|
// searchInfoMemoDesc = "The message or description attached to a payment. " +
|
||||||
"For example, \"coffee\" or \"rent March\".",
|
// "For example, \"coffee\" or \"rent March\".",
|
||||||
searchInfoInvoiceTitle = "Invoice",
|
// searchInfoInvoiceTitle = "Invoice",
|
||||||
searchInfoInvoiceDesc = "The payment request you scanned or pasted to send a payment. " +
|
// searchInfoInvoiceDesc = "The payment request you scanned or pasted to send a payment. " +
|
||||||
"It usually starts with \"lnbc…\". " +
|
// "It usually starts with \"lnbc…\". " +
|
||||||
"You can paste just the first or last few characters.",
|
// "You can paste just the first or last few characters.",
|
||||||
searchInfoHashTitle = "Hash",
|
// searchInfoHashTitle = "Hash",
|
||||||
searchInfoHashDesc = "A unique code that identifies this payment on the " +
|
// searchInfoHashDesc = "A unique code that identifies this payment on the " +
|
||||||
"Lightning Network. Useful if someone asks you to " +
|
// "Lightning Network. Useful if someone asks you to " +
|
||||||
"confirm a specific transaction.",
|
// "confirm a specific transaction.",
|
||||||
searchInfoPreimageTitle = "Preimage",
|
// searchInfoPreimageTitle = "Preimage",
|
||||||
searchInfoPreimageDesc = "A secret code that proves a payment was received. " +
|
// searchInfoPreimageDesc = "A secret code that proves a payment was received. " +
|
||||||
"Only available after a payment completes successfully.",
|
// "Only available after a payment completes successfully.",
|
||||||
searchInfoNodeAliasTitle = "Node alias",
|
// searchInfoNodeAliasTitle = "Node alias",
|
||||||
searchInfoNodeAliasDesc = "The name of the Lightning node you sent a payment to. " +
|
// searchInfoNodeAliasDesc = "The name of the Lightning node you sent a payment to. " +
|
||||||
"For example, \"ACINQ\" or \"Wallet of Satoshi\". " +
|
// "For example, \"ACINQ\" or \"Wallet of Satoshi\". " +
|
||||||
"Aliases are resolved automatically for outgoing payments.",
|
// "Aliases are resolved automatically for outgoing payments.",
|
||||||
searchInfoNodeIdTitle = "Node ID (pubkey)",
|
// searchInfoNodeIdTitle = "Node ID (pubkey)",
|
||||||
searchInfoNodeIdDesc = "The public key of the destination node. " +
|
// searchInfoNodeIdDesc = "The public key of the destination node. " +
|
||||||
"A 66-character hex string — you can paste just the first few characters.",
|
// "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 — " +
|
// searchInfoFooter = "You can paste a full value or search with just a few characters — " +
|
||||||
"partial matches work too.",
|
// "partial matches work too.",
|
||||||
|
//
|
||||||
// ── PaymentDetailScreen ───────────────────────────────────────────────────
|
// // ── PaymentDetailScreen ───────────────────────────────────────────────────
|
||||||
statusSuccess = "Success", // e.g. "Success"
|
// statusSuccess = "Success", // e.g. "Success"
|
||||||
statusPending = "Pending", // e.g. "Pending"
|
// statusPending = "Pending", // e.g. "Pending"
|
||||||
statusFailed = "Failed", // e.g. "Failed"
|
// statusFailed = "Failed", // e.g. "Failed"
|
||||||
statusUnknown = "Unknown", // e.g. "Unknown"
|
// statusUnknown = "Unknown", // e.g. "Unknown"
|
||||||
detailOutgoingTitle = "Outgoing payment",
|
// detailOutgoingTitle = "Outgoing payment",
|
||||||
detailIncomingTitle = "Incoming payment",
|
// detailIncomingTitle = "Incoming payment",
|
||||||
detailBack = "Back",
|
// detailBack = "Back",
|
||||||
detailCouldNotLoad = "Could not load full details",
|
// detailCouldNotLoad = "Could not load full details",
|
||||||
detailFeeLabel = { feeSat, fiatPart, ppmPart ->
|
// detailFeeLabel = { feeSat, fiatPart, ppmPart ->
|
||||||
"Fee: $feeSat sats$fiatPart$ppmPart"
|
// "Fee: $feeSat sats$fiatPart$ppmPart"
|
||||||
},
|
// },
|
||||||
detailSectionDetails = "Details",
|
// detailSectionDetails = "Details",
|
||||||
detailRowDate = "Date",
|
// detailRowDate = "Date",
|
||||||
detailRowMemo = "Memo",
|
// detailRowMemo = "Memo",
|
||||||
detailRowMemoEmpty = "—",
|
// detailRowMemoEmpty = "—",
|
||||||
detailRowType = "Type",
|
// detailRowType = "Type",
|
||||||
detailRowComment = "Comment",
|
// detailRowComment = "Comment",
|
||||||
detailSectionSuccessAction = "Success Action",
|
// detailSectionSuccessAction = "Success Action",
|
||||||
detailSuccessMessage = "Message",
|
// detailSuccessMessage = "Message",
|
||||||
detailSuccessUrl = "URL",
|
// detailSuccessUrl = "URL",
|
||||||
detailSuccessDescription = "Description",
|
// detailSuccessDescription = "Description",
|
||||||
detailSectionTechnical = "Technical",
|
// detailSectionTechnical = "Technical",
|
||||||
detailRowPaymentHash = "Hash",
|
// detailRowPaymentHash = "Hash",
|
||||||
detailRowPreimage = "Preimage",
|
// detailRowPreimage = "Preimage",
|
||||||
detailRowDestination = "Destination",
|
// detailRowDestination = "Destination",
|
||||||
detailCopyNodeId = "Copy node ID",
|
// detailCopyNodeId = "Copy node ID",
|
||||||
detailRowBolt11 = "BOLT11",
|
// detailRowBolt11 = "BOLT11",
|
||||||
|
//
|
||||||
// ── PaymentRow ────────────────────────────────────────────────────────────
|
// // ── PaymentRow ────────────────────────────────────────────────────────────
|
||||||
paymentRowSentCD = "Sent",
|
// paymentRowSentCD = "Sent",
|
||||||
paymentRowReceivedCD = "Received",
|
// paymentRowReceivedCD = "Received",
|
||||||
paymentRowNoMemo = "No memo",
|
// paymentRowNoMemo = "No memo",
|
||||||
paymentRowPending = "Pending",
|
// paymentRowPending = "Pending",
|
||||||
paymentRowFailed = "Failed",
|
// paymentRowFailed = "Failed",
|
||||||
|
|
||||||
onboarding = OnboardingStrings(
|
onboarding = OnboardingStrings(
|
||||||
back = "Back",
|
back = "Back",
|
||||||
@@ -359,6 +359,120 @@ val EnHomeStrings = AppStrings(
|
|||||||
receiveVmWithdrawFailed = "Withdraw failed",
|
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(
|
nwc = NwcStrings(
|
||||||
back = "Back",
|
back = "Back",
|
||||||
next = "Next",
|
next = "Next",
|
||||||
|
|||||||
@@ -141,117 +141,117 @@ val EsHomeStrings = AppStrings(
|
|||||||
sendVmUnsupportedType = { tag -> "Tipo no compatible: $tag" },
|
sendVmUnsupportedType = { tag -> "Tipo no compatible: $tag" },
|
||||||
sendVmPaymentFailedRescan = "Pago fallido — no se pudo volver a obtener la dirección",
|
sendVmPaymentFailedRescan = "Pago fallido — no se pudo volver a obtener la dirección",
|
||||||
|
|
||||||
// ── HistoryScreen ─────────────────────────────────────────────────────────
|
//// ── HistoryScreen ─────────────────────────────────────────────────────────
|
||||||
historyTitle = "Historial",
|
// historyTitle = "Historial",
|
||||||
historyClose = "Cerrar",
|
// historyClose = "Cerrar",
|
||||||
historySearchPayments = "Buscar pagos",
|
// historySearchPayments = "Buscar pagos",
|
||||||
historyFilterPayments = "Filtrar pagos",
|
// historyFilterPayments = "Filtrar pagos",
|
||||||
historyRetry = "Reintentar",
|
// historyRetry = "Reintentar",
|
||||||
historyNoPayments = "Aún no hay pagos.",
|
// historyNoPayments = "Aún no hay pagos.",
|
||||||
historySearchPlaceholder = "Buscar transacciones",
|
// historySearchPlaceholder = "Buscar transacciones",
|
||||||
historySearchHelp = "Ayuda de búsqueda",
|
// historySearchHelp = "Ayuda de búsqueda",
|
||||||
historySearchPaste = "Pegar",
|
// historySearchPaste = "Pegar",
|
||||||
historySearchClear = "Limpiar búsqueda",
|
// historySearchClear = "Limpiar búsqueda",
|
||||||
historySearchChip = { tail -> "búsqueda: …$tail" },
|
// historySearchChip = { tail -> "búsqueda: …$tail" },
|
||||||
historyClearSearch = "Limpiar búsqueda",
|
// historyClearSearch = "Limpiar búsqueda",
|
||||||
filterDirectionOutgoing = "Salientes",
|
// filterDirectionOutgoing = "Salientes",
|
||||||
filterDirectionIncoming = "Entrantes",
|
// filterDirectionIncoming = "Entrantes",
|
||||||
filterClearDirection = "Quitar filtro de dirección",
|
// filterClearDirection = "Quitar filtro de dirección",
|
||||||
filterStatusCompleted = "Completado",
|
// filterStatusCompleted = "Completado",
|
||||||
filterStatusPending = "Pendiente",
|
// filterStatusPending = "Pendiente",
|
||||||
filterStatusFailed = "Fallido",
|
// filterStatusFailed = "Fallido",
|
||||||
filterRemoveStatus = "Quitar filtro de estado",
|
// filterRemoveStatus = "Quitar filtro de estado",
|
||||||
filterRemoveType = "Quitar filtro de tipo",
|
// filterRemoveType = "Quitar filtro de tipo",
|
||||||
filterAmountRange = { min, max -> "$min–$max sats" },
|
// filterAmountRange = { min, max -> "$min–$max sats" },
|
||||||
filterAmountMin = { min -> "≥ $min sats" },
|
// filterAmountMin = { min -> "≥ $min sats" },
|
||||||
filterAmountMax = { max -> "≤ $max sats" },
|
// filterAmountMax = { max -> "≤ $max sats" },
|
||||||
filterClearAmount = "Quitar filtro de cantidad",
|
// filterClearAmount = "Quitar filtro de cantidad",
|
||||||
filterDateThisWeek = "Esta semana",
|
// filterDateThisWeek = "Esta semana",
|
||||||
filterDateThisMonth = "Este mes",
|
// filterDateThisMonth = "Este mes",
|
||||||
filterDateThisYear = "Este año",
|
// filterDateThisYear = "Este año",
|
||||||
filterDateRange = { from, to -> "$from–$to" },
|
// filterDateRange = { from, to -> "$from–$to" },
|
||||||
filterDateFrom = { from -> "Desde $from" },
|
// filterDateFrom = { from -> "Desde $from" },
|
||||||
filterDateUntil = { until -> "Hasta $until" },
|
// filterDateUntil = { until -> "Hasta $until" },
|
||||||
filterClearDate = "Quitar filtro de fecha",
|
// filterClearDate = "Quitar filtro de fecha",
|
||||||
|
//
|
||||||
// ── FilterBottomSheet ─────────────────────────────────────────────────────
|
// // ── FilterBottomSheet ─────────────────────────────────────────────────────
|
||||||
filterSheetTitle = "Filtrar pagos",
|
// filterSheetTitle = "Filtrar pagos",
|
||||||
filterSectionDirection = "Dirección",
|
// filterSectionDirection = "Dirección",
|
||||||
filterDirectionAll = "Todos",
|
// filterDirectionAll = "Todos",
|
||||||
filterSectionStatus = "Estado",
|
// filterSectionStatus = "Estado",
|
||||||
filterSectionType = "Tipo",
|
// filterSectionType = "Tipo",
|
||||||
filterSectionAmount = "Cantidad (sats)",
|
// filterSectionAmount = "Cantidad (sats)",
|
||||||
filterAmountMin_label = "Mín.",
|
// filterAmountMin_label = "Mín.",
|
||||||
filterAmountMax_label = "Máx.",
|
// filterAmountMax_label = "Máx.",
|
||||||
filterAmountSuffix = "sats",
|
// filterAmountSuffix = "sats",
|
||||||
filterSectionDate = "Fecha",
|
// filterSectionDate = "Fecha",
|
||||||
filterDateFrom_label = "Desde",
|
// filterDateFrom_label = "Desde",
|
||||||
filterDateTo_label = "Hasta",
|
// filterDateTo_label = "Hasta",
|
||||||
filterDialogOk = "Aceptar",
|
// filterDialogOk = "Aceptar",
|
||||||
filterDialogCancel = "Cancelar",
|
// filterDialogCancel = "Cancelar",
|
||||||
|
//
|
||||||
// ── SearchInfoSheet ───────────────────────────────────────────────────────
|
// // ── SearchInfoSheet ───────────────────────────────────────────────────────
|
||||||
searchInfoTitle = "¿Qué puedo buscar?",
|
// searchInfoTitle = "¿Qué puedo buscar?",
|
||||||
searchInfoSubtitle = "Escribe cualquier parte de lo siguiente para encontrar un pago:",
|
// searchInfoSubtitle = "Escribe cualquier parte de lo siguiente para encontrar un pago:",
|
||||||
searchInfoMemoTitle = "Nota",
|
// searchInfoMemoTitle = "Nota",
|
||||||
searchInfoMemoDesc = "El mensaje o descripción adjunto a un pago. " +
|
// searchInfoMemoDesc = "El mensaje o descripción adjunto a un pago. " +
|
||||||
"Por ejemplo, \"café\" o \"alquiler marzo\".",
|
// "Por ejemplo, \"café\" o \"alquiler marzo\".",
|
||||||
searchInfoInvoiceTitle = "Factura",
|
// searchInfoInvoiceTitle = "Factura",
|
||||||
searchInfoInvoiceDesc = "La solicitud de pago que escaneaste o pegaste para enviar un pago. " +
|
// searchInfoInvoiceDesc = "La solicitud de pago que escaneaste o pegaste para enviar un pago. " +
|
||||||
"Normalmente empieza por \"lnbc…\". " +
|
// "Normalmente empieza por \"lnbc…\". " +
|
||||||
"Puedes pegar solo los primeros o últimos caracteres.",
|
// "Puedes pegar solo los primeros o últimos caracteres.",
|
||||||
searchInfoHashTitle = "Hash",
|
// searchInfoHashTitle = "Hash",
|
||||||
searchInfoHashDesc = "Un código único que identifica este pago en la " +
|
// searchInfoHashDesc = "Un código único que identifica este pago en la " +
|
||||||
"red Lightning. Útil si alguien te pide que " +
|
// "red Lightning. Útil si alguien te pide que " +
|
||||||
"confirmes una transacción específica.",
|
// "confirmes una transacción específica.",
|
||||||
searchInfoPreimageTitle = "Preimagen",
|
// searchInfoPreimageTitle = "Preimagen",
|
||||||
searchInfoPreimageDesc = "Un código secreto que demuestra que se recibió un pago. " +
|
// searchInfoPreimageDesc = "Un código secreto que demuestra que se recibió un pago. " +
|
||||||
"Solo disponible después de que un pago se complete correctamente.",
|
// "Solo disponible después de que un pago se complete correctamente.",
|
||||||
searchInfoNodeAliasTitle = "Alias del nodo",
|
// searchInfoNodeAliasTitle = "Alias del nodo",
|
||||||
searchInfoNodeAliasDesc = "El nombre del nodo Lightning al que enviaste un pago. " +
|
// searchInfoNodeAliasDesc = "El nombre del nodo Lightning al que enviaste un pago. " +
|
||||||
"Por ejemplo, \"ACINQ\" o \"Wallet of Satoshi\". " +
|
// "Por ejemplo, \"ACINQ\" o \"Wallet of Satoshi\". " +
|
||||||
"Los alias se resuelven automáticamente para pagos salientes.",
|
// "Los alias se resuelven automáticamente para pagos salientes.",
|
||||||
searchInfoNodeIdTitle = "ID del nodo (clave pública)",
|
// searchInfoNodeIdTitle = "ID del nodo (clave pública)",
|
||||||
searchInfoNodeIdDesc = "La clave pública del nodo de destino. " +
|
// searchInfoNodeIdDesc = "La clave pública del nodo de destino. " +
|
||||||
"Una cadena hexadecimal de 66 caracteres — puedes pegar solo los primeros.",
|
// "Una cadena hexadecimal de 66 caracteres — puedes pegar solo los primeros.",
|
||||||
searchInfoFooter = "Puedes pegar un valor completo o buscar con solo unos pocos caracteres — " +
|
// searchInfoFooter = "Puedes pegar un valor completo o buscar con solo unos pocos caracteres — " +
|
||||||
"las coincidencias parciales también funcionan.",
|
// "las coincidencias parciales también funcionan.",
|
||||||
|
//
|
||||||
// ── PaymentDetailScreen ───────────────────────────────────────────────────
|
// // ── PaymentDetailScreen ───────────────────────────────────────────────────
|
||||||
statusSuccess = "Completado",
|
// statusSuccess = "Completado",
|
||||||
statusPending = "Pendiente",
|
// statusPending = "Pendiente",
|
||||||
statusFailed = "Fallido",
|
// statusFailed = "Fallido",
|
||||||
statusUnknown = "Desconocido",
|
// statusUnknown = "Desconocido",
|
||||||
detailOutgoingTitle = "Pago saliente",
|
// detailOutgoingTitle = "Pago saliente",
|
||||||
detailIncomingTitle = "Pago entrante",
|
// detailIncomingTitle = "Pago entrante",
|
||||||
detailBack = "Atrás",
|
// detailBack = "Atrás",
|
||||||
detailCouldNotLoad = "No se pudieron cargar los detalles completos",
|
// detailCouldNotLoad = "No se pudieron cargar los detalles completos",
|
||||||
detailFeeLabel = { feeSat, fiatPart, ppmPart ->
|
// detailFeeLabel = { feeSat, fiatPart, ppmPart ->
|
||||||
"Comisión: $feeSat sats$fiatPart$ppmPart"
|
// "Comisión: $feeSat sats$fiatPart$ppmPart"
|
||||||
},
|
// },
|
||||||
detailSectionDetails = "Detalles",
|
// detailSectionDetails = "Detalles",
|
||||||
detailRowDate = "Fecha",
|
// detailRowDate = "Fecha",
|
||||||
detailRowMemo = "Nota",
|
// detailRowMemo = "Nota",
|
||||||
detailRowMemoEmpty = "—",
|
// detailRowMemoEmpty = "—",
|
||||||
detailRowType = "Tipo",
|
// detailRowType = "Tipo",
|
||||||
detailRowComment = "Comentario",
|
// detailRowComment = "Comentario",
|
||||||
detailSectionSuccessAction = "Acción de éxito",
|
// detailSectionSuccessAction = "Acción de éxito",
|
||||||
detailSuccessMessage = "Mensaje",
|
// detailSuccessMessage = "Mensaje",
|
||||||
detailSuccessUrl = "URL",
|
// detailSuccessUrl = "URL",
|
||||||
detailSuccessDescription = "Descripción",
|
// detailSuccessDescription = "Descripción",
|
||||||
detailSectionTechnical = "Técnico",
|
// detailSectionTechnical = "Técnico",
|
||||||
detailRowPaymentHash = "Hash",
|
// detailRowPaymentHash = "Hash",
|
||||||
detailRowPreimage = "Preimagen",
|
// detailRowPreimage = "Preimagen",
|
||||||
detailRowDestination = "Destino",
|
// detailRowDestination = "Destino",
|
||||||
detailCopyNodeId = "Copiar ID del nodo",
|
// detailCopyNodeId = "Copiar ID del nodo",
|
||||||
detailRowBolt11 = "BOLT11",
|
// detailRowBolt11 = "BOLT11",
|
||||||
|
//
|
||||||
// ── PaymentRow ────────────────────────────────────────────────────────────
|
// // ── PaymentRow ────────────────────────────────────────────────────────────
|
||||||
paymentRowSentCD = "Enviado",
|
// paymentRowSentCD = "Enviado",
|
||||||
paymentRowReceivedCD = "Recibido",
|
// paymentRowReceivedCD = "Recibido",
|
||||||
paymentRowNoMemo = "Sin nota",
|
// paymentRowNoMemo = "Sin nota",
|
||||||
paymentRowPending = "Pendiente",
|
// paymentRowPending = "Pendiente",
|
||||||
paymentRowFailed = "Fallido",
|
// paymentRowFailed = "Fallido",
|
||||||
|
|
||||||
|
|
||||||
onboarding = OnboardingStrings(
|
onboarding = OnboardingStrings(
|
||||||
@@ -360,6 +360,120 @@ val EsHomeStrings = AppStrings(
|
|||||||
receiveVmWithdrawFailed = "Error al retirar",
|
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(
|
nwc = NwcStrings(
|
||||||
// ── Shared ────────────────────────────────────────────────────────────────
|
// ── Shared ────────────────────────────────────────────────────────────────
|
||||||
back = "Atrás",
|
back = "Atrás",
|
||||||
|
|||||||
@@ -141,116 +141,116 @@ val EuStrings = AppStrings(
|
|||||||
sendVmUnsupportedType = { tag -> "Mota onartzen ez dena: $tag" },
|
sendVmUnsupportedType = { tag -> "Mota onartzen ez dena: $tag" },
|
||||||
sendVmPaymentFailedRescan = "Ordainketak huts egin du — ezin izan da helbidea berriro eskuratu",
|
sendVmPaymentFailedRescan = "Ordainketak huts egin du — ezin izan da helbidea berriro eskuratu",
|
||||||
|
|
||||||
// ── HistoryScreen ─────────────────────────────────────────────────────────
|
// // ── HistoryScreen ─────────────────────────────────────────────────────────
|
||||||
historyTitle = "Historia",
|
// historyTitle = "Historia",
|
||||||
historyClose = "Itxi",
|
// historyClose = "Itxi",
|
||||||
historySearchPayments = "Bilatu ordainketak",
|
// historySearchPayments = "Bilatu ordainketak",
|
||||||
historyFilterPayments = "Iragazi ordainketak",
|
// historyFilterPayments = "Iragazi ordainketak",
|
||||||
historyRetry = "Saiatu berriro",
|
// historyRetry = "Saiatu berriro",
|
||||||
historyNoPayments = "Oraindik ez dago ordainketarik.",
|
// historyNoPayments = "Oraindik ez dago ordainketarik.",
|
||||||
historySearchPlaceholder = "Bilatu transakzioak",
|
// historySearchPlaceholder = "Bilatu transakzioak",
|
||||||
historySearchHelp = "Bilaketa-laguntza",
|
// historySearchHelp = "Bilaketa-laguntza",
|
||||||
historySearchPaste = "Itsatsi",
|
// historySearchPaste = "Itsatsi",
|
||||||
historySearchClear = "Garbitu bilaketa",
|
// historySearchClear = "Garbitu bilaketa",
|
||||||
historySearchChip = { tail -> "bilaketa: …$tail" },
|
// historySearchChip = { tail -> "bilaketa: …$tail" },
|
||||||
historyClearSearch = "Garbitu bilaketa",
|
// historyClearSearch = "Garbitu bilaketa",
|
||||||
filterDirectionOutgoing = "Irteerako",
|
// filterDirectionOutgoing = "Irteerako",
|
||||||
filterDirectionIncoming = "Sarrerako",
|
// filterDirectionIncoming = "Sarrerako",
|
||||||
filterClearDirection = "Garbitu norabide-iragazkia",
|
// filterClearDirection = "Garbitu norabide-iragazkia",
|
||||||
filterStatusCompleted = "Osatuta",
|
// filterStatusCompleted = "Osatuta",
|
||||||
filterStatusPending = "Zain",
|
// filterStatusPending = "Zain",
|
||||||
filterStatusFailed = "Huts eginda",
|
// filterStatusFailed = "Huts eginda",
|
||||||
filterRemoveStatus = "Kendu egoera-iragazkia",
|
// filterRemoveStatus = "Kendu egoera-iragazkia",
|
||||||
filterRemoveType = "Kendu mota-iragazkia",
|
// filterRemoveType = "Kendu mota-iragazkia",
|
||||||
filterAmountRange = { min, max -> "$min–$max sat" },
|
// filterAmountRange = { min, max -> "$min–$max sat" },
|
||||||
filterAmountMin = { min -> "≥ $min sat" },
|
// filterAmountMin = { min -> "≥ $min sat" },
|
||||||
filterAmountMax = { max -> "≤ $max sat" },
|
// filterAmountMax = { max -> "≤ $max sat" },
|
||||||
filterClearAmount = "Garbitu zenbateko-iragazkia",
|
// filterClearAmount = "Garbitu zenbateko-iragazkia",
|
||||||
filterDateThisWeek = "Aste honetan",
|
// filterDateThisWeek = "Aste honetan",
|
||||||
filterDateThisMonth = "Hilabete honetan",
|
// filterDateThisMonth = "Hilabete honetan",
|
||||||
filterDateThisYear = "Urte honetan",
|
// filterDateThisYear = "Urte honetan",
|
||||||
filterDateRange = { from, to -> "$from–$to" },
|
// filterDateRange = { from, to -> "$from–$to" },
|
||||||
filterDateFrom = { from -> "$from-tik" },
|
// filterDateFrom = { from -> "$from-tik" },
|
||||||
filterDateUntil = { until -> "$until arte" },
|
// filterDateUntil = { until -> "$until arte" },
|
||||||
filterClearDate = "Garbitu data-iragazkia",
|
// filterClearDate = "Garbitu data-iragazkia",
|
||||||
|
//
|
||||||
// ── FilterBottomSheet ─────────────────────────────────────────────────────
|
// // ── FilterBottomSheet ─────────────────────────────────────────────────────
|
||||||
filterSheetTitle = "Iragazi ordainketak",
|
// filterSheetTitle = "Iragazi ordainketak",
|
||||||
filterSectionDirection = "Norabidea",
|
// filterSectionDirection = "Norabidea",
|
||||||
filterDirectionAll = "Guztiak",
|
// filterDirectionAll = "Guztiak",
|
||||||
filterSectionStatus = "Egoera",
|
// filterSectionStatus = "Egoera",
|
||||||
filterSectionType = "Mota",
|
// filterSectionType = "Mota",
|
||||||
filterSectionAmount = "Zenbatekoa (sat)",
|
// filterSectionAmount = "Zenbatekoa (sat)",
|
||||||
filterAmountMin_label = "Gutxienekoa",
|
// filterAmountMin_label = "Gutxienekoa",
|
||||||
filterAmountMax_label = "Gehienekoa",
|
// filterAmountMax_label = "Gehienekoa",
|
||||||
filterAmountSuffix = "sat",
|
// filterAmountSuffix = "sat",
|
||||||
filterSectionDate = "Data",
|
// filterSectionDate = "Data",
|
||||||
filterDateFrom_label = "Nondik",
|
// filterDateFrom_label = "Nondik",
|
||||||
filterDateTo_label = "Nora arte",
|
// filterDateTo_label = "Nora arte",
|
||||||
filterDialogOk = "Ados",
|
// filterDialogOk = "Ados",
|
||||||
filterDialogCancel = "Utzi",
|
// filterDialogCancel = "Utzi",
|
||||||
|
//
|
||||||
// ── SearchInfoSheet ───────────────────────────────────────────────────────
|
// // ── SearchInfoSheet ───────────────────────────────────────────────────────
|
||||||
searchInfoTitle = "Zer bila dezaket?",
|
// searchInfoTitle = "Zer bila dezaket?",
|
||||||
searchInfoSubtitle = "Idatzi hurrengoetako edozein zati ordainketa bat aurkitzeko:",
|
// searchInfoSubtitle = "Idatzi hurrengoetako edozein zati ordainketa bat aurkitzeko:",
|
||||||
searchInfoMemoTitle = "Oharra",
|
// searchInfoMemoTitle = "Oharra",
|
||||||
searchInfoMemoDesc = "Ordainketa bati erantsitako mezua edo deskribapena. " +
|
// searchInfoMemoDesc = "Ordainketa bati erantsitako mezua edo deskribapena. " +
|
||||||
"Adibidez, \"kafea\" edo \"martxoko alokairua\".",
|
// "Adibidez, \"kafea\" edo \"martxoko alokairua\".",
|
||||||
searchInfoInvoiceTitle = "Faktura",
|
// searchInfoInvoiceTitle = "Faktura",
|
||||||
searchInfoInvoiceDesc = "Ordainketa bat bidaltzeko eskaneatu edo itsatsi zenuen ordainketa-eskaera. " +
|
// searchInfoInvoiceDesc = "Ordainketa bat bidaltzeko eskaneatu edo itsatsi zenuen ordainketa-eskaera. " +
|
||||||
"Normalean \"lnbc…\" hasierarekin dator. " +
|
// "Normalean \"lnbc…\" hasierarekin dator. " +
|
||||||
"Lehen edo azken karaktere batzuk bakarrik itsats ditzakezu.",
|
// "Lehen edo azken karaktere batzuk bakarrik itsats ditzakezu.",
|
||||||
searchInfoHashTitle = "Hash",
|
// searchInfoHashTitle = "Hash",
|
||||||
searchInfoHashDesc = "Ordainketa hau Lightning Sarean identifikatzen duen kode bakarra. " +
|
// searchInfoHashDesc = "Ordainketa hau Lightning Sarean identifikatzen duen kode bakarra. " +
|
||||||
"Erabilgarria norbaitek transakzio zehatz bat berresteko eskatzen dizunean.",
|
// "Erabilgarria norbaitek transakzio zehatz bat berresteko eskatzen dizunean.",
|
||||||
searchInfoPreimageTitle = "Aurre-irudia",
|
// searchInfoPreimageTitle = "Aurre-irudia",
|
||||||
searchInfoPreimageDesc = "Ordainketa bat jaso dela frogatzen duen kode sekretua. " +
|
// searchInfoPreimageDesc = "Ordainketa bat jaso dela frogatzen duen kode sekretua. " +
|
||||||
"Ordainketa arrakastaz osatu ondoren bakarrik dago erabilgarri.",
|
// "Ordainketa arrakastaz osatu ondoren bakarrik dago erabilgarri.",
|
||||||
searchInfoNodeAliasTitle = "Nodo-izengoitia",
|
// searchInfoNodeAliasTitle = "Nodo-izengoitia",
|
||||||
searchInfoNodeAliasDesc = "Ordainketa bidali zenion Lightning nodoaren izena. " +
|
// searchInfoNodeAliasDesc = "Ordainketa bidali zenion Lightning nodoaren izena. " +
|
||||||
"Adibidez, \"ACINQ\" edo \"Wallet of Satoshi\". " +
|
// "Adibidez, \"ACINQ\" edo \"Wallet of Satoshi\". " +
|
||||||
"Izengoitiak automatikoki ebazten dira irteerako ordainketetan.",
|
// "Izengoitiak automatikoki ebazten dira irteerako ordainketetan.",
|
||||||
searchInfoNodeIdTitle = "Nodo IDa (gako publikoa)",
|
// searchInfoNodeIdTitle = "Nodo IDa (gako publikoa)",
|
||||||
searchInfoNodeIdDesc = "Helmuga-nodoaren gako publikoa. " +
|
// searchInfoNodeIdDesc = "Helmuga-nodoaren gako publikoa. " +
|
||||||
"66 karaktereko hex katea — lehen karaktere batzuk bakarrik itsats ditzakezu.",
|
// "66 karaktereko hex katea — lehen karaktere batzuk bakarrik itsats ditzakezu.",
|
||||||
searchInfoFooter = "Balio osoa itsatsi dezakezu edo karaktere gutxi batzuekin bilatu — " +
|
// searchInfoFooter = "Balio osoa itsatsi dezakezu edo karaktere gutxi batzuekin bilatu — " +
|
||||||
"zati-bat datozenak ere funtzionatzen dute.",
|
// "zati-bat datozenak ere funtzionatzen dute.",
|
||||||
|
//
|
||||||
// ── PaymentDetailScreen ───────────────────────────────────────────────────
|
// // ── PaymentDetailScreen ───────────────────────────────────────────────────
|
||||||
statusSuccess = "Osatuta",
|
// statusSuccess = "Osatuta",
|
||||||
statusPending = "Zain",
|
// statusPending = "Zain",
|
||||||
statusFailed = "Huts eginda",
|
// statusFailed = "Huts eginda",
|
||||||
statusUnknown = "Ezezaguna",
|
// statusUnknown = "Ezezaguna",
|
||||||
detailOutgoingTitle = "Irteerako ordainketa",
|
// detailOutgoingTitle = "Irteerako ordainketa",
|
||||||
detailIncomingTitle = "Sarrerako ordainketa",
|
// detailIncomingTitle = "Sarrerako ordainketa",
|
||||||
detailBack = "Atzera",
|
// detailBack = "Atzera",
|
||||||
detailCouldNotLoad = "Ezin izan dira xehetasun osoak kargatu",
|
// detailCouldNotLoad = "Ezin izan dira xehetasun osoak kargatu",
|
||||||
detailFeeLabel = { feeSat, fiatPart, ppmPart ->
|
// detailFeeLabel = { feeSat, fiatPart, ppmPart ->
|
||||||
"Komisioa: $feeSat sat$fiatPart$ppmPart"
|
// "Komisioa: $feeSat sat$fiatPart$ppmPart"
|
||||||
},
|
// },
|
||||||
detailSectionDetails = "Xehetasunak",
|
// detailSectionDetails = "Xehetasunak",
|
||||||
detailRowDate = "Data",
|
// detailRowDate = "Data",
|
||||||
detailRowMemo = "Oharra",
|
// detailRowMemo = "Oharra",
|
||||||
detailRowMemoEmpty = "—",
|
// detailRowMemoEmpty = "—",
|
||||||
detailRowType = "Mota",
|
// detailRowType = "Mota",
|
||||||
detailRowComment = "Iruzkina",
|
// detailRowComment = "Iruzkina",
|
||||||
detailSectionSuccessAction = "Arrakasta-ekintza",
|
// detailSectionSuccessAction = "Arrakasta-ekintza",
|
||||||
detailSuccessMessage = "Mezua",
|
// detailSuccessMessage = "Mezua",
|
||||||
detailSuccessUrl = "URLa",
|
// detailSuccessUrl = "URLa",
|
||||||
detailSuccessDescription = "Deskribapena",
|
// detailSuccessDescription = "Deskribapena",
|
||||||
detailSectionTechnical = "Teknikoa",
|
// detailSectionTechnical = "Teknikoa",
|
||||||
detailRowPaymentHash = "Hash",
|
// detailRowPaymentHash = "Hash",
|
||||||
detailRowPreimage = "Aurre-irudia",
|
// detailRowPreimage = "Aurre-irudia",
|
||||||
detailRowDestination = "Helmuga",
|
// detailRowDestination = "Helmuga",
|
||||||
detailCopyNodeId = "Kopiatu nodo IDa",
|
// detailCopyNodeId = "Kopiatu nodo IDa",
|
||||||
detailRowBolt11 = "BOLT11",
|
// detailRowBolt11 = "BOLT11",
|
||||||
|
//
|
||||||
// ── PaymentRow ────────────────────────────────────────────────────────────
|
// // ── PaymentRow ────────────────────────────────────────────────────────────
|
||||||
paymentRowSentCD = "Bidalita",
|
// paymentRowSentCD = "Bidalita",
|
||||||
paymentRowReceivedCD = "Jasota",
|
// paymentRowReceivedCD = "Jasota",
|
||||||
paymentRowNoMemo = "Oharrik gabe",
|
// paymentRowNoMemo = "Oharrik gabe",
|
||||||
paymentRowPending = "Zain",
|
// paymentRowPending = "Zain",
|
||||||
paymentRowFailed = "Huts eginda",
|
// paymentRowFailed = "Huts eginda",
|
||||||
|
|
||||||
|
|
||||||
onboarding = OnboardingStrings(
|
onboarding = OnboardingStrings(
|
||||||
@@ -358,6 +358,120 @@ val EuStrings = AppStrings(
|
|||||||
receiveVmWithdrawRejected = "Ateratzeko zerbitzuak faktura baztertu du",
|
receiveVmWithdrawRejected = "Ateratzeko zerbitzuak faktura baztertu du",
|
||||||
receiveVmWithdrawFailed = "Ateratzeak huts egin 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(
|
nwc = NwcStrings(
|
||||||
// ── Shared ────────────────────────────────────────────────────────────────
|
// ── Shared ────────────────────────────────────────────────────────────────
|
||||||
back = "Atzera",
|
back = "Atzera",
|
||||||
|
|||||||
@@ -149,108 +149,109 @@ data class AppStrings(
|
|||||||
val sendVmUnsupportedType : (tag: String) -> String,
|
val sendVmUnsupportedType : (tag: String) -> String,
|
||||||
val sendVmPaymentFailedRescan : String,
|
val sendVmPaymentFailedRescan : String,
|
||||||
|
|
||||||
// ── HistoryScreen ─────────────────────────────────────────────────────────
|
// // ── HistoryScreen ─────────────────────────────────────────────────────────
|
||||||
val historyTitle : String,
|
// val historyTitle : String,
|
||||||
val historyClose : String,
|
// val historyClose : String,
|
||||||
val historySearchPayments : String,
|
// val historySearchPayments : String,
|
||||||
val historyFilterPayments : String,
|
// val historyFilterPayments : String,
|
||||||
val historyRetry : String,
|
// val historyRetry : String,
|
||||||
val historyNoPayments : String,
|
// val historyNoPayments : String,
|
||||||
val historySearchPlaceholder : String,
|
// val historySearchPlaceholder : String,
|
||||||
val historySearchHelp : String,
|
// val historySearchHelp : String,
|
||||||
val historySearchPaste : String,
|
// val historySearchPaste : String,
|
||||||
val historySearchClear : String,
|
// val historySearchClear : String,
|
||||||
val historySearchChip : (tail: String) -> String,
|
// val historySearchChip : (tail: String) -> String,
|
||||||
val historyClearSearch : String,
|
// val historyClearSearch : String,
|
||||||
val filterDirectionOutgoing : String,
|
// val filterDirectionOutgoing : String,
|
||||||
val filterDirectionIncoming : String,
|
// val filterDirectionIncoming : String,
|
||||||
val filterClearDirection : String,
|
// val filterClearDirection : String,
|
||||||
val filterStatusCompleted : String,
|
// val filterStatusCompleted : String,
|
||||||
val filterStatusPending : String,
|
// val filterStatusPending : String,
|
||||||
val filterStatusFailed : String,
|
// val filterStatusFailed : String,
|
||||||
val filterRemoveStatus : String,
|
// val filterRemoveStatus : String,
|
||||||
val filterRemoveType : String,
|
// val filterRemoveType : String,
|
||||||
val filterAmountRange : (min: Long, max: Long) -> String,
|
// val filterAmountRange : (min: Long, max: Long) -> String,
|
||||||
val filterAmountMin : (min: Long) -> String,
|
// val filterAmountMin : (min: Long) -> String,
|
||||||
val filterAmountMax : (max: Long) -> String,
|
// val filterAmountMax : (max: Long) -> String,
|
||||||
val filterClearAmount : String,
|
// val filterClearAmount : String,
|
||||||
val filterDateThisWeek : String,
|
// val filterDateThisWeek : String,
|
||||||
val filterDateThisMonth : String,
|
// val filterDateThisMonth : String,
|
||||||
val filterDateThisYear : String,
|
// val filterDateThisYear : String,
|
||||||
val filterDateRange : (from: String, to: String) -> String,
|
// val filterDateRange : (from: String, to: String) -> String,
|
||||||
val filterDateFrom : (from: String) -> String,
|
// val filterDateFrom : (from: String) -> String,
|
||||||
val filterDateUntil : (until: String) -> String,
|
// val filterDateUntil : (until: String) -> String,
|
||||||
val filterClearDate : String,
|
// val filterClearDate : String,
|
||||||
|
//
|
||||||
// ── FilterBottomSheet ─────────────────────────────────────────────────────
|
// // ── FilterBottomSheet ─────────────────────────────────────────────────────
|
||||||
val filterSheetTitle : String,
|
// val filterSheetTitle : String,
|
||||||
val filterSectionDirection : String,
|
// val filterSectionDirection : String,
|
||||||
val filterDirectionAll : String,
|
// val filterDirectionAll : String,
|
||||||
val filterSectionStatus : String,
|
// val filterSectionStatus : String,
|
||||||
val filterSectionType : String,
|
// val filterSectionType : String,
|
||||||
val filterSectionAmount : String,
|
// val filterSectionAmount : String,
|
||||||
val filterAmountMin_label : String,
|
// val filterAmountMin_label : String,
|
||||||
val filterAmountMax_label : String,
|
// val filterAmountMax_label : String,
|
||||||
val filterAmountSuffix : String,
|
// val filterAmountSuffix : String,
|
||||||
val filterSectionDate : String,
|
// val filterSectionDate : String,
|
||||||
val filterDateFrom_label : String,
|
// val filterDateFrom_label : String,
|
||||||
val filterDateTo_label : String,
|
// val filterDateTo_label : String,
|
||||||
val filterDialogOk : String,
|
// val filterDialogOk : String,
|
||||||
val filterDialogCancel : String,
|
// val filterDialogCancel : String,
|
||||||
|
//
|
||||||
// ── SearchInfoSheet ───────────────────────────────────────────────────────
|
// // ── SearchInfoSheet ───────────────────────────────────────────────────────
|
||||||
val searchInfoTitle : String,
|
// val searchInfoTitle : String,
|
||||||
val searchInfoSubtitle : String,
|
// val searchInfoSubtitle : String,
|
||||||
val searchInfoMemoTitle : String,
|
// val searchInfoMemoTitle : String,
|
||||||
val searchInfoMemoDesc : String,
|
// val searchInfoMemoDesc : String,
|
||||||
val searchInfoInvoiceTitle : String,
|
// val searchInfoInvoiceTitle : String,
|
||||||
val searchInfoInvoiceDesc : String,
|
// val searchInfoInvoiceDesc : String,
|
||||||
val searchInfoHashTitle : String,
|
// val searchInfoHashTitle : String,
|
||||||
val searchInfoHashDesc : String,
|
// val searchInfoHashDesc : String,
|
||||||
val searchInfoPreimageTitle : String,
|
// val searchInfoPreimageTitle : String,
|
||||||
val searchInfoPreimageDesc : String,
|
// val searchInfoPreimageDesc : String,
|
||||||
val searchInfoNodeAliasTitle : String,
|
// val searchInfoNodeAliasTitle : String,
|
||||||
val searchInfoNodeAliasDesc : String,
|
// val searchInfoNodeAliasDesc : String,
|
||||||
val searchInfoNodeIdTitle : String,
|
// val searchInfoNodeIdTitle : String,
|
||||||
val searchInfoNodeIdDesc : String,
|
// val searchInfoNodeIdDesc : String,
|
||||||
val searchInfoFooter : String,
|
// val searchInfoFooter : String,
|
||||||
|
//
|
||||||
// ── PaymentDetailScreen ───────────────────────────────────────────────────
|
// // ── PaymentDetailScreen ───────────────────────────────────────────────────
|
||||||
val statusSuccess : String, // e.g. "Success"
|
// val statusSuccess : String, // e.g. "Success"
|
||||||
val statusPending : String, // e.g. "Pending"
|
// val statusPending : String, // e.g. "Pending"
|
||||||
val statusFailed : String, // e.g. "Failed"
|
// val statusFailed : String, // e.g. "Failed"
|
||||||
val statusUnknown : String, // e.g. "Unknown"
|
// val statusUnknown : String, // e.g. "Unknown"
|
||||||
val detailOutgoingTitle : String,
|
// val detailOutgoingTitle : String,
|
||||||
val detailIncomingTitle : String,
|
// val detailIncomingTitle : String,
|
||||||
val detailBack : String,
|
// val detailBack : String,
|
||||||
val detailCouldNotLoad : String,
|
// val detailCouldNotLoad : String,
|
||||||
val detailFeeLabel : (feeSat: Long, fiatPart: String, ppmPart: String) -> String,
|
// val detailFeeLabel : (feeSat: Long, fiatPart: String, ppmPart: String) -> String,
|
||||||
val detailSectionDetails : String,
|
// val detailSectionDetails : String,
|
||||||
val detailRowDate : String,
|
// val detailRowDate : String,
|
||||||
val detailRowMemo : String,
|
// val detailRowMemo : String,
|
||||||
val detailRowMemoEmpty : String,
|
// val detailRowMemoEmpty : String,
|
||||||
val detailRowType : String,
|
// val detailRowType : String,
|
||||||
val detailRowComment : String,
|
// val detailRowComment : String,
|
||||||
val detailSectionSuccessAction: String,
|
// val detailSectionSuccessAction: String,
|
||||||
val detailSuccessMessage : String,
|
// val detailSuccessMessage : String,
|
||||||
val detailSuccessUrl : String,
|
// val detailSuccessUrl : String,
|
||||||
val detailSuccessDescription : String,
|
// val detailSuccessDescription : String,
|
||||||
val detailSectionTechnical : String,
|
// val detailSectionTechnical : String,
|
||||||
val detailRowPaymentHash : String,
|
// val detailRowPaymentHash : String,
|
||||||
val detailRowPreimage : String,
|
// val detailRowPreimage : String,
|
||||||
val detailRowDestination : String,
|
// val detailRowDestination : String,
|
||||||
val detailCopyNodeId : String,
|
// val detailCopyNodeId : String,
|
||||||
val detailRowBolt11 : String,
|
// val detailRowBolt11 : String,
|
||||||
|
//
|
||||||
// ── PaymentRow ────────────────────────────────────────────────────────────
|
// // ── PaymentRow ────────────────────────────────────────────────────────────
|
||||||
val paymentRowSentCD : String,
|
// val paymentRowSentCD : String,
|
||||||
val paymentRowReceivedCD : String,
|
// val paymentRowReceivedCD : String,
|
||||||
val paymentRowNoMemo : String,
|
// val paymentRowNoMemo : String,
|
||||||
val paymentRowPending : String,
|
// val paymentRowPending : String,
|
||||||
val paymentRowFailed : String,
|
// val paymentRowFailed : String,
|
||||||
|
|
||||||
val onboarding: OnboardingStrings,
|
val onboarding: OnboardingStrings,
|
||||||
val receive: ReceiveStrings,
|
val receive: ReceiveStrings,
|
||||||
|
val history: HistoryStrings,
|
||||||
val nwc: NwcStrings
|
val nwc: NwcStrings
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -360,6 +361,108 @@ data class ReceiveStrings(
|
|||||||
val receiveVmWithdrawFailed : String,
|
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(
|
data class NwcStrings(
|
||||||
|
|
||||||
// ── Shared / navigation ───────────────────────────────────────────────────
|
// ── Shared / navigation ───────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.bitcointxoko.gudariwallet.i18n
|
package com.bitcointxoko.gudariwallet.i18n
|
||||||
|
|
||||||
fun AppStrings.paymentStatusLabel(status: String): String = when (status.lowercase()) {
|
fun AppStrings.paymentStatusLabel(status: String): String = when (status.lowercase()) {
|
||||||
"success" -> statusSuccess
|
"success" -> history.statusSuccess
|
||||||
"pending" -> statusPending
|
"pending" -> history.statusPending
|
||||||
"failed" -> statusFailed
|
"failed" -> history.statusFailed
|
||||||
else -> statusUnknown
|
else -> history.statusUnknown
|
||||||
}
|
}
|
||||||
@@ -24,18 +24,18 @@ internal fun StatusChip(status: String) {
|
|||||||
|
|
||||||
val style = when (status.lowercase()) {
|
val style = when (status.lowercase()) {
|
||||||
"success", "complete", "paid" -> ChipStyle(
|
"success", "complete", "paid" -> ChipStyle(
|
||||||
semantic.successContainer, semantic.onSuccessContainer, strings.statusSuccess
|
semantic.successContainer, semantic.onSuccessContainer, strings.history.statusSuccess
|
||||||
)
|
)
|
||||||
"pending", "in_flight", "inflight" -> ChipStyle(
|
"pending", "in_flight", "inflight" -> ChipStyle(
|
||||||
semantic.warningContainer, semantic.onWarningContainer, strings.statusPending
|
semantic.warningContainer, semantic.onWarningContainer, strings.history.statusPending
|
||||||
)
|
)
|
||||||
"failed", "error", "expired" -> ChipStyle(
|
"failed", "error", "expired" -> ChipStyle(
|
||||||
semantic.errorContainer, semantic.onErrorContainer, strings.statusFailed
|
semantic.errorContainer, semantic.onErrorContainer, strings.history.statusFailed
|
||||||
)
|
)
|
||||||
else -> ChipStyle(
|
else -> ChipStyle(
|
||||||
MaterialTheme.colorScheme.surfaceVariant,
|
MaterialTheme.colorScheme.surfaceVariant,
|
||||||
MaterialTheme.colorScheme.onSurfaceVariant,
|
MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
strings.statusUnknown,
|
strings.history.statusUnknown,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -62,14 +62,14 @@ internal fun FilterBottomSheet(
|
|||||||
) {
|
) {
|
||||||
// ── Sheet title ───────────────────────────────────────────────────
|
// ── Sheet title ───────────────────────────────────────────────────
|
||||||
Text(
|
Text(
|
||||||
text = strings.filterSheetTitle, // ← "Filter payments"
|
text = strings.history.filterSheetTitle, // ← "Filter payments"
|
||||||
style = MaterialTheme.typography.titleMedium
|
style = MaterialTheme.typography.titleMedium
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(20.dp))
|
Spacer(Modifier.height(20.dp))
|
||||||
|
|
||||||
// ── Direction ─────────────────────────────────────────────────────
|
// ── Direction ─────────────────────────────────────────────────────
|
||||||
Text(
|
Text(
|
||||||
text = strings.filterSectionDirection, // ← "Direction"
|
text = strings.history.filterSectionDirection, // ← "Direction"
|
||||||
style = MaterialTheme.typography.labelMedium,
|
style = MaterialTheme.typography.labelMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
@@ -77,9 +77,9 @@ internal fun FilterBottomSheet(
|
|||||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||||
DirectionFilter.entries.forEach { option ->
|
DirectionFilter.entries.forEach { option ->
|
||||||
val label = when (option) {
|
val label = when (option) {
|
||||||
DirectionFilter.ALL -> strings.filterDirectionAll // ← "All"
|
DirectionFilter.ALL -> strings.history.filterDirectionAll // ← "All"
|
||||||
DirectionFilter.OUTGOING -> strings.filterDirectionOutgoing // ← "Outgoing"
|
DirectionFilter.OUTGOING -> strings.history.filterDirectionOutgoing // ← "Outgoing"
|
||||||
DirectionFilter.INCOMING -> strings.filterDirectionIncoming // ← "Incoming"
|
DirectionFilter.INCOMING -> strings.history.filterDirectionIncoming // ← "Incoming"
|
||||||
}
|
}
|
||||||
FilterChip(
|
FilterChip(
|
||||||
selected = currentFilter.direction == option,
|
selected = currentFilter.direction == option,
|
||||||
@@ -92,7 +92,7 @@ internal fun FilterBottomSheet(
|
|||||||
|
|
||||||
// ── Status ────────────────────────────────────────────────────────
|
// ── Status ────────────────────────────────────────────────────────
|
||||||
Text(
|
Text(
|
||||||
text = strings.filterSectionStatus, // ← "Status"
|
text = strings.history.filterSectionStatus, // ← "Status"
|
||||||
style = MaterialTheme.typography.labelMedium,
|
style = MaterialTheme.typography.labelMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
@@ -105,9 +105,9 @@ internal fun FilterBottomSheet(
|
|||||||
label = {
|
label = {
|
||||||
Text(
|
Text(
|
||||||
when (option) {
|
when (option) {
|
||||||
StatusFilter.COMPLETED -> strings.filterStatusCompleted // ← "Completed"
|
StatusFilter.COMPLETED -> strings.history.filterStatusCompleted // ← "Completed"
|
||||||
StatusFilter.PENDING -> strings.filterStatusPending // ← "Pending"
|
StatusFilter.PENDING -> strings.history.filterStatusPending // ← "Pending"
|
||||||
StatusFilter.FAILED -> strings.filterStatusFailed // ← "Failed"
|
StatusFilter.FAILED -> strings.history.filterStatusFailed // ← "Failed"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -119,7 +119,7 @@ internal fun FilterBottomSheet(
|
|||||||
if (availableTypes.isNotEmpty()) {
|
if (availableTypes.isNotEmpty()) {
|
||||||
Spacer(Modifier.height(20.dp))
|
Spacer(Modifier.height(20.dp))
|
||||||
Text(
|
Text(
|
||||||
text = strings.filterSectionType, // ← "Type"
|
text = strings.history.filterSectionType, // ← "Type"
|
||||||
style = MaterialTheme.typography.labelMedium,
|
style = MaterialTheme.typography.labelMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
@@ -138,7 +138,7 @@ internal fun FilterBottomSheet(
|
|||||||
|
|
||||||
// ── Amount (sats) ─────────────────────────────────────────────────
|
// ── Amount (sats) ─────────────────────────────────────────────────
|
||||||
Text(
|
Text(
|
||||||
text = strings.filterSectionAmount, // ← "Amount (sats)"
|
text = strings.history.filterSectionAmount, // ← "Amount (sats)"
|
||||||
style = MaterialTheme.typography.labelMedium,
|
style = MaterialTheme.typography.labelMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
@@ -159,8 +159,8 @@ internal fun FilterBottomSheet(
|
|||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
value = minText,
|
value = minText,
|
||||||
onValueChange = { minText = it.filter(Char::isDigit); commitAmount() },
|
onValueChange = { minText = it.filter(Char::isDigit); commitAmount() },
|
||||||
label = { Text(strings.filterAmountMin_label) }, // ← "Min"
|
label = { Text(strings.history.filterAmountMin_label) }, // ← "Min"
|
||||||
suffix = { Text(strings.filterAmountSuffix) }, // ← "sats"
|
suffix = { Text(strings.history.filterAmountSuffix) }, // ← "sats"
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
|
||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier.weight(1f)
|
||||||
@@ -169,8 +169,8 @@ internal fun FilterBottomSheet(
|
|||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
value = maxText,
|
value = maxText,
|
||||||
onValueChange = { maxText = it.filter(Char::isDigit); commitAmount() },
|
onValueChange = { maxText = it.filter(Char::isDigit); commitAmount() },
|
||||||
label = { Text(strings.filterAmountMax_label) }, // ← "Max"
|
label = { Text(strings.history.filterAmountMax_label) }, // ← "Max"
|
||||||
suffix = { Text(strings.filterAmountSuffix) }, // ← "sats"
|
suffix = { Text(strings.history.filterAmountSuffix) }, // ← "sats"
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
|
||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier.weight(1f)
|
||||||
@@ -180,7 +180,7 @@ internal fun FilterBottomSheet(
|
|||||||
|
|
||||||
// ── Date ──────────────────────────────────────────────────────────
|
// ── Date ──────────────────────────────────────────────────────────
|
||||||
Text(
|
Text(
|
||||||
text = strings.filterSectionDate, // ← "Date"
|
text = strings.history.filterSectionDate, // ← "Date"
|
||||||
style = MaterialTheme.typography.labelMedium,
|
style = MaterialTheme.typography.labelMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
@@ -190,9 +190,9 @@ internal fun FilterBottomSheet(
|
|||||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||||
DatePreset.entries.forEach { preset ->
|
DatePreset.entries.forEach { preset ->
|
||||||
val label = when (preset) {
|
val label = when (preset) {
|
||||||
DatePreset.THIS_WEEK -> strings.filterDateThisWeek // ← "This week"
|
DatePreset.THIS_WEEK -> strings.history.filterDateThisWeek // ← "This week"
|
||||||
DatePreset.THIS_MONTH -> strings.filterDateThisMonth // ← "This month"
|
DatePreset.THIS_MONTH -> strings.history.filterDateThisMonth // ← "This month"
|
||||||
DatePreset.THIS_YEAR -> strings.filterDateThisYear // ← "This year"
|
DatePreset.THIS_YEAR -> strings.history.filterDateThisYear // ← "This year"
|
||||||
}
|
}
|
||||||
FilterChip(
|
FilterChip(
|
||||||
selected = currentFilter.datePreset == preset,
|
selected = currentFilter.datePreset == preset,
|
||||||
@@ -221,7 +221,7 @@ internal fun FilterBottomSheet(
|
|||||||
Text(
|
Text(
|
||||||
currentFilter.minCreatedAt
|
currentFilter.minCreatedAt
|
||||||
?.let { formatEpochShort(it) }
|
?.let { formatEpochShort(it) }
|
||||||
?: strings.filterDateFrom_label // ← "From"
|
?: strings.history.filterDateFrom_label // ← "From"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Text("–", style = MaterialTheme.typography.bodyLarge)
|
Text("–", style = MaterialTheme.typography.bodyLarge)
|
||||||
@@ -232,7 +232,7 @@ internal fun FilterBottomSheet(
|
|||||||
Text(
|
Text(
|
||||||
currentFilter.maxCreatedAt
|
currentFilter.maxCreatedAt
|
||||||
?.let { formatEpochShort(it) }
|
?.let { formatEpochShort(it) }
|
||||||
?: strings.filterDateTo_label // ← "To"
|
?: strings.history.filterDateTo_label // ← "To"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -248,11 +248,11 @@ internal fun FilterBottomSheet(
|
|||||||
val epochSec = pickerState.selectedDateMillis?.div(1000)
|
val epochSec = pickerState.selectedDateMillis?.div(1000)
|
||||||
onDateFilterSet(epochSec, currentFilter.maxCreatedAt)
|
onDateFilterSet(epochSec, currentFilter.maxCreatedAt)
|
||||||
showFromPicker = false
|
showFromPicker = false
|
||||||
}) { Text(strings.filterDialogOk) } // ← "OK"
|
}) { Text(strings.history.filterDialogOk) } // ← "OK"
|
||||||
},
|
},
|
||||||
dismissButton = {
|
dismissButton = {
|
||||||
TextButton(onClick = { showFromPicker = false }) {
|
TextButton(onClick = { showFromPicker = false }) {
|
||||||
Text(strings.filterDialogCancel) // ← "Cancel"
|
Text(strings.history.filterDialogCancel) // ← "Cancel"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
) { DatePicker(state = pickerState) }
|
) { DatePicker(state = pickerState) }
|
||||||
@@ -270,11 +270,11 @@ internal fun FilterBottomSheet(
|
|||||||
val epochSec = pickerState.selectedDateMillis?.div(1000)?.let { it + 86399L }
|
val epochSec = pickerState.selectedDateMillis?.div(1000)?.let { it + 86399L }
|
||||||
onDateFilterSet(currentFilter.minCreatedAt, epochSec)
|
onDateFilterSet(currentFilter.minCreatedAt, epochSec)
|
||||||
showToPicker = false
|
showToPicker = false
|
||||||
}) { Text(strings.filterDialogOk) } // ← "OK"
|
}) { Text(strings.history.filterDialogOk) } // ← "OK"
|
||||||
},
|
},
|
||||||
dismissButton = {
|
dismissButton = {
|
||||||
TextButton(onClick = { showToPicker = false }) {
|
TextButton(onClick = { showToPicker = false }) {
|
||||||
Text(strings.filterDialogCancel) // ← "Cancel"
|
Text(strings.history.filterDialogCancel) // ← "Cancel"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
) { DatePicker(state = pickerState) }
|
) { DatePicker(state = pickerState) }
|
||||||
|
|||||||
@@ -89,12 +89,12 @@ fun HistoryScreen(
|
|||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = {
|
topBar = {
|
||||||
TopAppBar(
|
TopAppBar(
|
||||||
title = { Text(strings.historyTitle) }, // ← "History"
|
title = { Text(strings.history.historyTitle) }, // ← "History"
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(onClick = onClose) {
|
IconButton(onClick = onClose) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.historyClose // ← "Close"
|
contentDescription = strings.history.historyClose // ← "Close"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -108,7 +108,7 @@ fun HistoryScreen(
|
|||||||
}) {
|
}) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Search,
|
imageVector = Icons.Default.Search,
|
||||||
contentDescription = strings.historySearchPayments // ← "Search payments"
|
contentDescription = strings.history.historySearchPayments // ← "Search payments"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -118,7 +118,7 @@ fun HistoryScreen(
|
|||||||
IconButton(onClick = { filterSheetVisible = true }) {
|
IconButton(onClick = { filterSheetVisible = true }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.FilterList,
|
imageVector = Icons.Default.FilterList,
|
||||||
contentDescription = strings.historyFilterPayments // ← "Filter payments"
|
contentDescription = strings.history.historyFilterPayments // ← "Filter payments"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,7 +191,7 @@ fun HistoryScreen(
|
|||||||
)
|
)
|
||||||
Spacer(Modifier.height(12.dp))
|
Spacer(Modifier.height(12.dp))
|
||||||
Button(onClick = { vm.refresh() }) {
|
Button(onClick = { vm.refresh() }) {
|
||||||
Text(strings.historyRetry) // ← "Retry"
|
Text(strings.history.historyRetry) // ← "Retry"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -210,7 +210,7 @@ fun HistoryScreen(
|
|||||||
|
|
||||||
if (s.payments.isEmpty()) {
|
if (s.payments.isEmpty()) {
|
||||||
Text(
|
Text(
|
||||||
text = strings.historyNoPayments, // ← "No payments yet."
|
text = strings.history.historyNoPayments, // ← "No payments yet."
|
||||||
modifier = Modifier.align(Alignment.Center),
|
modifier = Modifier.align(Alignment.Center),
|
||||||
style = MaterialTheme.typography.bodyMedium,
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
@@ -310,13 +310,13 @@ private fun SearchBar(
|
|||||||
IconButton(onClick = onInfoClick) {
|
IconButton(onClick = onInfoClick) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Info,
|
imageVector = Icons.Default.Info,
|
||||||
contentDescription = strings.historySearchHelp // ← "Search help"
|
contentDescription = strings.history.historySearchHelp // ← "Search help"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
TextField(
|
TextField(
|
||||||
value = query,
|
value = query,
|
||||||
onValueChange = onQueryChange,
|
onValueChange = onQueryChange,
|
||||||
placeholder = { Text(strings.historySearchPlaceholder) }, // ← "Search transactions"
|
placeholder = { Text(strings.history.historySearchPlaceholder) }, // ← "Search transactions"
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
colors = TextFieldDefaults.colors(
|
colors = TextFieldDefaults.colors(
|
||||||
focusedContainerColor = Color.Transparent,
|
focusedContainerColor = Color.Transparent,
|
||||||
@@ -337,7 +337,7 @@ private fun SearchBar(
|
|||||||
}) {
|
}) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.ContentPaste,
|
imageVector = Icons.Default.ContentPaste,
|
||||||
contentDescription = strings.historySearchPaste // ← "Paste"
|
contentDescription = strings.history.historySearchPaste // ← "Paste"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
IconButton(
|
IconButton(
|
||||||
@@ -346,7 +346,7 @@ private fun SearchBar(
|
|||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.historySearchClear, // ← "Clear search"
|
contentDescription = strings.history.historySearchClear, // ← "Clear search"
|
||||||
tint = if (query.isNotEmpty()) LocalContentColor.current
|
tint = if (query.isNotEmpty()) LocalContentColor.current
|
||||||
else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f)
|
else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f)
|
||||||
)
|
)
|
||||||
@@ -382,15 +382,15 @@ private fun ActiveFilterChips(
|
|||||||
label = {
|
label = {
|
||||||
Text(
|
Text(
|
||||||
when (filter.direction) {
|
when (filter.direction) {
|
||||||
DirectionFilter.OUTGOING -> strings.filterDirectionOutgoing // ← "Outgoing"
|
DirectionFilter.OUTGOING -> strings.history.filterDirectionOutgoing // ← "Outgoing"
|
||||||
else -> strings.filterDirectionIncoming // ← "Incoming"
|
else -> strings.history.filterDirectionIncoming // ← "Incoming"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.filterClearDirection, // ← "Clear direction filter"
|
contentDescription = strings.history.filterClearDirection, // ← "Clear direction filter"
|
||||||
modifier = Modifier.size(16.dp)
|
modifier = Modifier.size(16.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -403,16 +403,16 @@ private fun ActiveFilterChips(
|
|||||||
label = {
|
label = {
|
||||||
Text(
|
Text(
|
||||||
when (s) {
|
when (s) {
|
||||||
StatusFilter.COMPLETED -> strings.filterStatusCompleted // ← "Completed"
|
StatusFilter.COMPLETED -> strings.history.filterStatusCompleted // ← "Completed"
|
||||||
StatusFilter.PENDING -> strings.filterStatusPending // ← "Pending"
|
StatusFilter.PENDING -> strings.history.filterStatusPending // ← "Pending"
|
||||||
StatusFilter.FAILED -> strings.filterStatusFailed // ← "Failed"
|
StatusFilter.FAILED -> strings.history.filterStatusFailed // ← "Failed"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.filterRemoveStatus, // ← "Remove status filter"
|
contentDescription = strings.history.filterRemoveStatus, // ← "Remove status filter"
|
||||||
modifier = Modifier.size(16.dp)
|
modifier = Modifier.size(16.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -426,7 +426,7 @@ private fun ActiveFilterChips(
|
|||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.filterRemoveType, // ← "Remove type filter"
|
contentDescription = strings.history.filterRemoveType, // ← "Remove type filter"
|
||||||
modifier = Modifier.size(16.dp)
|
modifier = Modifier.size(16.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -435,11 +435,11 @@ private fun ActiveFilterChips(
|
|||||||
if (filter.minAmountSat != null || filter.maxAmountSat != null) {
|
if (filter.minAmountSat != null || filter.maxAmountSat != null) {
|
||||||
val label = when {
|
val label = when {
|
||||||
filter.minAmountSat != null && filter.maxAmountSat != null ->
|
filter.minAmountSat != null && filter.maxAmountSat != null ->
|
||||||
strings.filterAmountRange(filter.minAmountSat, filter.maxAmountSat) // ← "X–Y sats"
|
strings.history.filterAmountRange(filter.minAmountSat, filter.maxAmountSat) // ← "X–Y sats"
|
||||||
filter.minAmountSat != null ->
|
filter.minAmountSat != null ->
|
||||||
strings.filterAmountMin(filter.minAmountSat) // ← "≥ X sats"
|
strings.history.filterAmountMin(filter.minAmountSat) // ← "≥ X sats"
|
||||||
else ->
|
else ->
|
||||||
strings.filterAmountMax(filter.maxAmountSat!!) // ← "≤ X sats"
|
strings.history.filterAmountMax(filter.maxAmountSat!!) // ← "≤ X sats"
|
||||||
}
|
}
|
||||||
InputChip(
|
InputChip(
|
||||||
selected = true,
|
selected = true,
|
||||||
@@ -448,7 +448,7 @@ private fun ActiveFilterChips(
|
|||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.filterClearAmount, // ← "Clear amount filter"
|
contentDescription = strings.history.filterClearAmount, // ← "Clear amount filter"
|
||||||
modifier = Modifier.size(16.dp)
|
modifier = Modifier.size(16.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -458,19 +458,19 @@ private fun ActiveFilterChips(
|
|||||||
val maxCreatedAt = filter.maxCreatedAt
|
val maxCreatedAt = filter.maxCreatedAt
|
||||||
if (minCreatedAt != null || maxCreatedAt != null) {
|
if (minCreatedAt != null || maxCreatedAt != null) {
|
||||||
val label = when (filter.datePreset) {
|
val label = when (filter.datePreset) {
|
||||||
DatePreset.THIS_WEEK -> strings.filterDateThisWeek // ← "This week"
|
DatePreset.THIS_WEEK -> strings.history.filterDateThisWeek // ← "This week"
|
||||||
DatePreset.THIS_MONTH -> strings.filterDateThisMonth // ← "This month"
|
DatePreset.THIS_MONTH -> strings.history.filterDateThisMonth // ← "This month"
|
||||||
DatePreset.THIS_YEAR -> strings.filterDateThisYear // ← "This year"
|
DatePreset.THIS_YEAR -> strings.history.filterDateThisYear // ← "This year"
|
||||||
null -> when {
|
null -> when {
|
||||||
minCreatedAt != null && maxCreatedAt != null ->
|
minCreatedAt != null && maxCreatedAt != null ->
|
||||||
strings.filterDateRange( // ← "X–Y"
|
strings.history.filterDateRange( // ← "X–Y"
|
||||||
formatEpochShort(minCreatedAt),
|
formatEpochShort(minCreatedAt),
|
||||||
formatEpochShort(maxCreatedAt)
|
formatEpochShort(maxCreatedAt)
|
||||||
)
|
)
|
||||||
minCreatedAt != null ->
|
minCreatedAt != null ->
|
||||||
strings.filterDateFrom(formatEpochShort(minCreatedAt)) // ← "From X"
|
strings.history.filterDateFrom(formatEpochShort(minCreatedAt)) // ← "From X"
|
||||||
else ->
|
else ->
|
||||||
strings.filterDateUntil(formatEpochShort(maxCreatedAt!!)) // ← "Until X"
|
strings.history.filterDateUntil(formatEpochShort(maxCreatedAt!!)) // ← "Until X"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
InputChip(
|
InputChip(
|
||||||
@@ -480,7 +480,7 @@ private fun ActiveFilterChips(
|
|||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.filterClearDate, // ← "Clear date filter"
|
contentDescription = strings.history.filterClearDate, // ← "Clear date filter"
|
||||||
modifier = Modifier.size(16.dp)
|
modifier = Modifier.size(16.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -490,11 +490,11 @@ private fun ActiveFilterChips(
|
|||||||
InputChip(
|
InputChip(
|
||||||
selected = true,
|
selected = true,
|
||||||
onClick = onClearSearch,
|
onClick = onClearSearch,
|
||||||
label = { Text(strings.historySearchChip(filter.searchQuery.takeLast(8))) }, // ← "search: …XXXXXXXX"
|
label = { Text(strings.history.historySearchChip(filter.searchQuery.takeLast(8))) }, // ← "search: …XXXXXXXX"
|
||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = Icons.Default.Close,
|
||||||
contentDescription = strings.historyClearSearch, // ← "Clear search"
|
contentDescription = strings.history.historyClearSearch, // ← "Clear search"
|
||||||
modifier = Modifier.size(16.dp)
|
modifier = Modifier.size(16.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,15 +92,15 @@ fun PaymentDetailScreen(
|
|||||||
TopAppBar(
|
TopAppBar(
|
||||||
title = {
|
title = {
|
||||||
Text(
|
Text(
|
||||||
if (payment.isOutgoing) strings.detailOutgoingTitle // ← "Outgoing payment"
|
if (payment.isOutgoing) strings.history.detailOutgoingTitle // ← "Outgoing payment"
|
||||||
else strings.detailIncomingTitle // ← "Incoming payment"
|
else strings.history.detailIncomingTitle // ← "Incoming payment"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(onClick = onBack) {
|
IconButton(onClick = onBack) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||||
contentDescription = strings.detailBack // ← "Back"
|
contentDescription = strings.history.detailBack // ← "Back"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -122,7 +122,7 @@ fun PaymentDetailScreen(
|
|||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = strings.detailCouldNotLoad, // ← "Could not load full details"
|
text = strings.history.detailCouldNotLoad, // ← "Could not load full details"
|
||||||
color = MaterialTheme.colorScheme.onErrorContainer,
|
color = MaterialTheme.colorScheme.onErrorContainer,
|
||||||
style = MaterialTheme.typography.bodySmall,
|
style = MaterialTheme.typography.bodySmall,
|
||||||
modifier = Modifier.padding(12.dp)
|
modifier = Modifier.padding(12.dp)
|
||||||
@@ -215,7 +215,7 @@ private fun PaymentDetailContent(
|
|||||||
// Build the optional parts separately so the lambda stays clean
|
// Build the optional parts separately so the lambda stays clean
|
||||||
val fiatPart = if (feeFiat != null) " ($feeFiat)" else ""
|
val fiatPart = if (feeFiat != null) " ($feeFiat)" else ""
|
||||||
val ppmPart = if (ppm != null) " · $ppm ppm" else ""
|
val ppmPart = if (ppm != null) " · $ppm ppm" else ""
|
||||||
val feeLabel = strings.detailFeeLabel( // ← "Fee: X sats (fiat) · Y ppm"
|
val feeLabel = strings.history.detailFeeLabel( // ← "Fee: X sats (fiat) · Y ppm"
|
||||||
payment.feeSat, fiatPart, ppmPart
|
payment.feeSat, fiatPart, ppmPart
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(4.dp))
|
Spacer(Modifier.height(4.dp))
|
||||||
@@ -233,17 +233,17 @@ private fun PaymentDetailContent(
|
|||||||
|
|
||||||
// ── Basic info ───────────────────────────────────────────────────────
|
// ── Basic info ───────────────────────────────────────────────────────
|
||||||
item {
|
item {
|
||||||
DetailSection(title = strings.detailSectionDetails) { // ← "Details"
|
DetailSection(title = strings.history.detailSectionDetails) { // ← "Details"
|
||||||
DetailRow(strings.detailRowDate, formatTimestamp(payment.createdAt, payment.time)) // ← "Date"
|
DetailRow(strings.history.detailRowDate, formatTimestamp(payment.createdAt, payment.time)) // ← "Date"
|
||||||
DetailRow(
|
DetailRow(
|
||||||
strings.detailRowMemo, // ← "Memo"
|
strings.history.detailRowMemo, // ← "Memo"
|
||||||
payment.memo?.takeIf { it.isNotBlank() } ?: strings.detailRowMemoEmpty // ← "—"
|
payment.memo?.takeIf { it.isNotBlank() } ?: strings.history.detailRowMemoEmpty // ← "—"
|
||||||
)
|
)
|
||||||
if (payment.extra?.tag != null) {
|
if (payment.extra?.tag != null) {
|
||||||
DetailRow(strings.detailRowType, payment.extra.tag) // ← "Type"
|
DetailRow(strings.history.detailRowType, payment.extra.tag) // ← "Type"
|
||||||
}
|
}
|
||||||
if (payment.extra?.comment?.isNotBlank() == true) {
|
if (payment.extra?.comment?.isNotBlank() == true) {
|
||||||
DetailRow(strings.detailRowComment, payment.extra.comment) // ← "Comment"
|
DetailRow(strings.history.detailRowComment, payment.extra.comment) // ← "Comment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -251,19 +251,19 @@ private fun PaymentDetailContent(
|
|||||||
// ── Success action (LNURL) ───────────────────────────────────────────
|
// ── Success action (LNURL) ───────────────────────────────────────────
|
||||||
payment.extra?.successAction?.let { action ->
|
payment.extra?.successAction?.let { action ->
|
||||||
item {
|
item {
|
||||||
DetailSection(title = strings.detailSectionSuccessAction) { // ← "Success Action"
|
DetailSection(title = strings.history.detailSectionSuccessAction) { // ← "Success Action"
|
||||||
action.message?.let { DetailRow(strings.detailSuccessMessage, it) } // ← "Message"
|
action.message?.let { DetailRow(strings.history.detailSuccessMessage, it) } // ← "Message"
|
||||||
action.url?.let { DetailRow(strings.detailSuccessUrl, it) } // ← "URL"
|
action.url?.let { DetailRow(strings.history.detailSuccessUrl, it) } // ← "URL"
|
||||||
action.description?.let { DetailRow(strings.detailSuccessDescription, it) } // ← "Description"
|
action.description?.let { DetailRow(strings.history.detailSuccessDescription, it) } // ← "Description"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Technical ────────────────────────────────────────────────────────
|
// ── Technical ────────────────────────────────────────────────────────
|
||||||
item {
|
item {
|
||||||
DetailSection(title = strings.detailSectionTechnical) { // ← "Technical"
|
DetailSection(title = strings.history.detailSectionTechnical) { // ← "Technical"
|
||||||
DetailRow(
|
DetailRow(
|
||||||
label = strings.detailRowPaymentHash, // ← "Payment Hash"
|
label = strings.history.detailRowPaymentHash, // ← "Payment Hash"
|
||||||
value = payment.paymentHash,
|
value = payment.paymentHash,
|
||||||
monospace = true,
|
monospace = true,
|
||||||
copyable = true,
|
copyable = true,
|
||||||
@@ -277,7 +277,7 @@ private fun PaymentDetailContent(
|
|||||||
)
|
)
|
||||||
if (!payment.preimage.isNullOrBlank() && payment.preimage != "0".repeat(64)) {
|
if (!payment.preimage.isNullOrBlank() && payment.preimage != "0".repeat(64)) {
|
||||||
DetailRow(
|
DetailRow(
|
||||||
label = strings.detailRowPreimage, // ← "Preimage"
|
label = strings.history.detailRowPreimage, // ← "Preimage"
|
||||||
value = payment.preimage,
|
value = payment.preimage,
|
||||||
monospace = true,
|
monospace = true,
|
||||||
copyable = true,
|
copyable = true,
|
||||||
@@ -294,7 +294,7 @@ private fun PaymentDetailContent(
|
|||||||
val ambossUrl = "https://amboss.space/node/$pubkey"
|
val ambossUrl = "https://amboss.space/node/$pubkey"
|
||||||
val label = alias ?: "${pubkey.take(8)}…${pubkey.takeLast(8)}"
|
val label = alias ?: "${pubkey.take(8)}…${pubkey.takeLast(8)}"
|
||||||
DetailRow(
|
DetailRow(
|
||||||
label = strings.detailRowDestination, // ← "Destination"
|
label = strings.history.detailRowDestination, // ← "Destination"
|
||||||
value = label,
|
value = label,
|
||||||
valueColor = MaterialTheme.colorScheme.primary,
|
valueColor = MaterialTheme.colorScheme.primary,
|
||||||
textDecoration = androidx.compose.ui.text.style.TextDecoration.Underline,
|
textDecoration = androidx.compose.ui.text.style.TextDecoration.Underline,
|
||||||
@@ -308,7 +308,7 @@ private fun PaymentDetailContent(
|
|||||||
}
|
}
|
||||||
if (!payment.bolt11.isNullOrBlank()) {
|
if (!payment.bolt11.isNullOrBlank()) {
|
||||||
DetailRow(
|
DetailRow(
|
||||||
label = strings.detailRowBolt11, // ← "BOLT11"
|
label = strings.history.detailRowBolt11, // ← "BOLT11"
|
||||||
value = payment.bolt11,
|
value = payment.bolt11,
|
||||||
monospace = true,
|
monospace = true,
|
||||||
copyable = true,
|
copyable = true,
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ internal fun PaymentRow(
|
|||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = icon,
|
imageVector = icon,
|
||||||
contentDescription = if (payment.isOutgoing) strings.paymentRowSentCD // ← "Sent"
|
contentDescription = if (payment.isOutgoing) strings.history.paymentRowSentCD // ← "Sent"
|
||||||
else strings.paymentRowReceivedCD, // ← "Received"
|
else strings.history.paymentRowReceivedCD, // ← "Received"
|
||||||
tint = amountColor,
|
tint = amountColor,
|
||||||
modifier = Modifier.size(20.dp)
|
modifier = Modifier.size(20.dp)
|
||||||
)
|
)
|
||||||
@@ -71,7 +71,7 @@ internal fun PaymentRow(
|
|||||||
Column(modifier = Modifier.weight(1f)) {
|
Column(modifier = Modifier.weight(1f)) {
|
||||||
Text(
|
Text(
|
||||||
text = payment.memo?.takeIf { it.isNotBlank() }
|
text = payment.memo?.takeIf { it.isNotBlank() }
|
||||||
?: strings.paymentRowNoMemo, // ← "No memo"
|
?: strings.history.paymentRowNoMemo, // ← "No memo"
|
||||||
style = MaterialTheme.typography.bodyMedium,
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis
|
overflow = TextOverflow.Ellipsis
|
||||||
@@ -86,8 +86,8 @@ internal fun PaymentRow(
|
|||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
val statusLabel = when {
|
val statusLabel = when {
|
||||||
isPending -> strings.paymentRowPending
|
isPending -> strings.history.paymentRowPending
|
||||||
isFailed -> strings.paymentRowFailed
|
isFailed -> strings.history.paymentRowFailed
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
val statusColor = when {
|
val statusColor = when {
|
||||||
|
|||||||
@@ -33,45 +33,45 @@ internal fun SearchInfoSheet(visible: Boolean, onDismiss: () -> Unit) {
|
|||||||
.padding(start = 24.dp, end = 24.dp, bottom = 40.dp)
|
.padding(start = 24.dp, end = 24.dp, bottom = 40.dp)
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = strings.searchInfoTitle, // ← "What can I search for?"
|
text = strings.history.searchInfoTitle, // ← "What can I search for?"
|
||||||
style = MaterialTheme.typography.titleMedium
|
style = MaterialTheme.typography.titleMedium
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(8.dp))
|
Spacer(Modifier.height(8.dp))
|
||||||
Text(
|
Text(
|
||||||
text = strings.searchInfoSubtitle, // ← "Type any part of the following…"
|
text = strings.history.searchInfoSubtitle, // ← "Type any part of the following…"
|
||||||
style = MaterialTheme.typography.bodyMedium,
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
Spacer(Modifier.height(20.dp))
|
Spacer(Modifier.height(20.dp))
|
||||||
|
|
||||||
SearchInfoItem(
|
SearchInfoItem(
|
||||||
title = strings.searchInfoMemoTitle, // ← "Memo"
|
title = strings.history.searchInfoMemoTitle, // ← "Memo"
|
||||||
description = strings.searchInfoMemoDesc
|
description = strings.history.searchInfoMemoDesc
|
||||||
)
|
)
|
||||||
SearchInfoItem(
|
SearchInfoItem(
|
||||||
title = strings.searchInfoInvoiceTitle, // ← "Invoice"
|
title = strings.history.searchInfoInvoiceTitle, // ← "Invoice"
|
||||||
description = strings.searchInfoInvoiceDesc
|
description = strings.history.searchInfoInvoiceDesc
|
||||||
)
|
)
|
||||||
SearchInfoItem(
|
SearchInfoItem(
|
||||||
title = strings.searchInfoHashTitle, // ← "Hash"
|
title = strings.history.searchInfoHashTitle, // ← "Hash"
|
||||||
description = strings.searchInfoHashDesc
|
description = strings.history.searchInfoHashDesc
|
||||||
)
|
)
|
||||||
SearchInfoItem(
|
SearchInfoItem(
|
||||||
title = strings.searchInfoPreimageTitle, // ← "Preimage"
|
title = strings.history.searchInfoPreimageTitle, // ← "Preimage"
|
||||||
description = strings.searchInfoPreimageDesc
|
description = strings.history.searchInfoPreimageDesc
|
||||||
)
|
)
|
||||||
SearchInfoItem(
|
SearchInfoItem(
|
||||||
title = strings.searchInfoNodeAliasTitle, // ← "Node alias"
|
title = strings.history.searchInfoNodeAliasTitle, // ← "Node alias"
|
||||||
description = strings.searchInfoNodeAliasDesc
|
description = strings.history.searchInfoNodeAliasDesc
|
||||||
)
|
)
|
||||||
SearchInfoItem(
|
SearchInfoItem(
|
||||||
title = strings.searchInfoNodeIdTitle, // ← "Node ID (pubkey)"
|
title = strings.history.searchInfoNodeIdTitle, // ← "Node ID (pubkey)"
|
||||||
description = strings.searchInfoNodeIdDesc
|
description = strings.history.searchInfoNodeIdDesc
|
||||||
)
|
)
|
||||||
|
|
||||||
Spacer(Modifier.height(16.dp))
|
Spacer(Modifier.height(16.dp))
|
||||||
Text(
|
Text(
|
||||||
text = strings.searchInfoFooter, // ← "You can paste a full value…"
|
text = strings.history.searchInfoFooter, // ← "You can paste a full value…"
|
||||||
style = MaterialTheme.typography.bodySmall,
|
style = MaterialTheme.typography.bodySmall,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user