feat: localisation with lyricist
This commit is contained in:
@@ -0,0 +1,144 @@
|
|||||||
|
package com.bitcointxoko.gudariwallet.i18n
|
||||||
|
|
||||||
|
import cafe.adriel.lyricist.LyricistStrings
|
||||||
|
|
||||||
|
@LyricistStrings(languageTag = "en", default = true)
|
||||||
|
val EnHomeStrings = AppStrings(
|
||||||
|
// ── HomeTab ───────────────────────────────────────────────────────────────
|
||||||
|
loadingBalance = "Loading balance…",
|
||||||
|
sats = "sats",
|
||||||
|
hideBalance = "Hide balance",
|
||||||
|
revealBalance = "Reveal balance",
|
||||||
|
changeCurrency = "Change currency",
|
||||||
|
showFiat = "+ Show fiat",
|
||||||
|
updatedAt = { label -> "Updated $label" },
|
||||||
|
justNow = "just now",
|
||||||
|
minAgo = {min -> "$min ago"},
|
||||||
|
atTime = {time -> "at $time"},
|
||||||
|
viewHistory = "View History",
|
||||||
|
selectCurrency = "Select currency",
|
||||||
|
currencyNone = "None",
|
||||||
|
hideFiatEquivalent = "Hide fiat equivalent",
|
||||||
|
selected = "Selected",
|
||||||
|
search = "Search…",
|
||||||
|
noCurrenciesAvailable = "No currencies available",
|
||||||
|
noCurrenciesMatch = { query -> "No currencies match \"$query\"" },
|
||||||
|
couldNotRefresh = "Could not refresh — pull down to try again",
|
||||||
|
couldNotLoadBalance = "Could not load balance — pull down to try again",
|
||||||
|
|
||||||
|
// ── Shared ────────────────────────────────────────────────────────────────
|
||||||
|
cancel = "Cancel",
|
||||||
|
tryAgain = "Try Again",
|
||||||
|
amount = "Amount",
|
||||||
|
next = "Next",
|
||||||
|
back = "← Back",
|
||||||
|
done = "Done",
|
||||||
|
details = "Details",
|
||||||
|
enterValidAmount = "Enter a valid amount",
|
||||||
|
satsUnit = { sats -> "$sats sats" },
|
||||||
|
|
||||||
|
// ── ReceiveScreen — general ───────────────────────────────────────────────
|
||||||
|
receive = "Receive",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — error ─────────────────────────────────────────────────
|
||||||
|
receiveError = "Error",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — QR / share ────────────────────────────────────────────
|
||||||
|
lightningAddressQrCode = "Lightning address QR code",
|
||||||
|
lightningAddressLabel = "Lightning Address",
|
||||||
|
shareLightningAddress = "Share Lightning Address",
|
||||||
|
lightningInvoiceQrCode = "Lightning invoice QR code",
|
||||||
|
invoiceLabel = "Invoice",
|
||||||
|
shareInvoice = "Share Invoice",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — amount step ───────────────────────────────────────────
|
||||||
|
amountInSats = "Amount (sats)",
|
||||||
|
satsRange = { min, max -> "$min – $max sats" },
|
||||||
|
|
||||||
|
// ── ReceiveScreen — memo step ─────────────────────────────────────────────
|
||||||
|
memoOptional = "Memo (optional)",
|
||||||
|
memoPlaceholder = "What's this for?",
|
||||||
|
creatingInvoice = "Creating invoice…",
|
||||||
|
createInvoice = "Create Invoice",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — invoice ready ─────────────────────────────────────────
|
||||||
|
waiting = "Waiting…",
|
||||||
|
invoiceExpired = "Invoice expired",
|
||||||
|
newInvoice = "New Invoice",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — lnurl withdraw ────────────────────────────────────────
|
||||||
|
withdrawFrom = "Withdraw from",
|
||||||
|
minimumSats = { min -> "Minimum is $min sats" },
|
||||||
|
maximumSats = { max -> "Maximum is $max sats" },
|
||||||
|
withdrawButton = "Withdraw",
|
||||||
|
withdrawButtonAmount = { amount -> "Withdraw $amount sats" },
|
||||||
|
|
||||||
|
// ── ReceiveScreen — success ───────────────────────────────────────────────
|
||||||
|
paymentReceived = "Payment Received!",
|
||||||
|
|
||||||
|
// ── SendScreen — general ──────────────────────────────────────────────────
|
||||||
|
send = "Send",
|
||||||
|
paste = "Paste",
|
||||||
|
continueButton = "Continue",
|
||||||
|
clear = "Clear",
|
||||||
|
sendAnother = "Send Another",
|
||||||
|
|
||||||
|
// ── SendScreen — input field ──────────────────────────────────────────────
|
||||||
|
sendInputLabel = "Invoice, LNURL, or Lightning Address",
|
||||||
|
sendInputPlaceholder = "lnbc… / lnurl1… / user@domain.com",
|
||||||
|
tapNfcHint = "Tap NFC device to receive invoice",
|
||||||
|
|
||||||
|
// ── SendScreen — states ───────────────────────────────────────────────────
|
||||||
|
resolving = "Resolving…",
|
||||||
|
sendingPayment = "Sending payment…",
|
||||||
|
|
||||||
|
// ── SendScreen — payment sent ─────────────────────────────────────────────
|
||||||
|
paymentSent = "Payment sent!",
|
||||||
|
amountSats = { sats -> "$sats sats" },
|
||||||
|
fiatEquivalent = { fiatStr -> "≈ $fiatStr" },
|
||||||
|
noFees = "No fees",
|
||||||
|
routingFee = { sats, ppmSuffix -> "Routing fee: $sats sat${if (sats == 1L) "" else "s"}$ppmSuffix" },
|
||||||
|
|
||||||
|
// ── ConfirmCard ───────────────────────────────────────────────────────────
|
||||||
|
invoiceDetails = "Invoice Details",
|
||||||
|
payingTo = { label -> "Paying to $label" },
|
||||||
|
confirmAmount = { sats -> "$sats sats" },
|
||||||
|
confirmAmountWithFiat = { sats, fiat -> "$sats sats · $fiat" },
|
||||||
|
memo = "Memo",
|
||||||
|
destination = "Destination",
|
||||||
|
created = "Created",
|
||||||
|
expiresIn = "Expires in",
|
||||||
|
hash = "Hash",
|
||||||
|
invoice = "Invoice",
|
||||||
|
expiryExpired = "Expired",
|
||||||
|
expirySeconds = { s -> "${s}s" },
|
||||||
|
expiryMinutes = { m, s -> "${m}m ${s}s" },
|
||||||
|
expiryHours = { h, m -> "${h}h ${m}m" },
|
||||||
|
createdToday = { time -> "Today, $time" },
|
||||||
|
createdYesterday = { time -> "Yesterday, $time" },
|
||||||
|
payButton = { sats -> "Pay $sats sats" },
|
||||||
|
payButtonWithFiat = { sats, fiat -> "Pay $sats sats · $fiat" },
|
||||||
|
sendBiometricPrompt = { sats -> "Send $sats sats" },
|
||||||
|
sendBiometricPromptTo = { sats, label -> "Send $sats sats to $label" },
|
||||||
|
|
||||||
|
// ── LnurlPayForm ─────────────────────────────────────────────────────────
|
||||||
|
lnurlAmountError = { min, max -> "Enter an amount between $min and $max sats" },
|
||||||
|
lnurlFiatRange = { minFiat, maxFiat -> "$minFiat – $maxFiat" },
|
||||||
|
lnurlSatsAndFiatRange = { min, max, minFiat, maxFiat -> "$min – $max sats · $minFiat – $maxFiat" },
|
||||||
|
commentOptional = { max -> "Comment (optional, max $max chars)" },
|
||||||
|
commentCounter = { current, max -> "$current/$max" },
|
||||||
|
lnurlPayButton = { sats -> "Pay $sats sats" },
|
||||||
|
lnurlPayButtonWithFiat = { sats, fiat -> "Pay $sats sats · $fiat" },
|
||||||
|
|
||||||
|
// ── RouteHintWarning ──────────────────────────────────────────────────────
|
||||||
|
routeHintHighFees = "High routing fees in invoice",
|
||||||
|
routeHintElevatedFees = "Elevated routing fees in invoice",
|
||||||
|
routeHintForcedChannel = { node -> "This invoice forces payment through a private channel operated by $node." },
|
||||||
|
routeHintFeeRate = { effectivePpm, worstPpm -> "Effective fee rate: $effectivePpm ppm ($worstPpm ppm)" },
|
||||||
|
routeHintFeeRateBase = { effectivePpm, worstPpm, baseLabel -> "Effective fee rate: $effectivePpm ppm ($worstPpm ppm + $baseLabel base)" },
|
||||||
|
routeHintEstimatedFee = { sats -> "Estimated extra fee on this payment: ~$sats sat${if (sats == 1L) "" else "s"}" },
|
||||||
|
routeHintShowDetails = "See details ▾",
|
||||||
|
routeHintHideDetails = "Hide details ▴",
|
||||||
|
routeHintHopsHeader = "Private route hint hops",
|
||||||
|
routeHintHopFees = { ppm, baseLabel -> "$ppm ppm · $baseLabel base" },
|
||||||
|
)
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
package com.bitcointxoko.gudariwallet.i18n
|
||||||
|
|
||||||
|
import cafe.adriel.lyricist.LyricistStrings
|
||||||
|
|
||||||
|
@LyricistStrings(languageTag = "es")
|
||||||
|
val EsHomeStrings = AppStrings(
|
||||||
|
// ── HomeTab ───────────────────────────────────────────────────────────────
|
||||||
|
loadingBalance = "Cargando saldo…",
|
||||||
|
sats = "sats",
|
||||||
|
hideBalance = "Ocultar saldo",
|
||||||
|
revealBalance = "Mostrar saldo",
|
||||||
|
changeCurrency = "Cambiar moneda",
|
||||||
|
showFiat = "+ Mostrar fiat",
|
||||||
|
updatedAt = { label -> "Actualizado $label" },
|
||||||
|
justNow = "justo ahora",
|
||||||
|
minAgo = {min -> "hace $min min"},
|
||||||
|
atTime = {time -> "a las $time"},
|
||||||
|
viewHistory = "Ver historial",
|
||||||
|
selectCurrency = "Seleccionar moneda",
|
||||||
|
currencyNone = "Ninguna",
|
||||||
|
hideFiatEquivalent = "Ocultar equivalente fiat",
|
||||||
|
selected = "Seleccionado",
|
||||||
|
search = "Buscar…",
|
||||||
|
noCurrenciesAvailable = "No hay monedas disponibles",
|
||||||
|
noCurrenciesMatch = { query -> "Ninguna moneda coincide con \"$query\"" },
|
||||||
|
couldNotRefresh = "No se pudo actualizar — desliza hacia abajo para reintentar",
|
||||||
|
couldNotLoadBalance = "No se pudo cargar el saldo — desliza hacia abajo para reintentar",
|
||||||
|
|
||||||
|
// ── Shared ────────────────────────────────────────────────────────────────
|
||||||
|
cancel = "Cancelar",
|
||||||
|
tryAgain = "Reintentar",
|
||||||
|
amount = "Cantidad",
|
||||||
|
next = "Siguiente",
|
||||||
|
back = "← Atrás",
|
||||||
|
done = "Hecho",
|
||||||
|
details = "Detalles",
|
||||||
|
enterValidAmount = "Introduce una cantidad válida",
|
||||||
|
satsUnit = { sats -> "$sats sats" },
|
||||||
|
|
||||||
|
// ── ReceiveScreen — general ───────────────────────────────────────────────
|
||||||
|
receive = "Recibir",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — error ─────────────────────────────────────────────────
|
||||||
|
receiveError = "Error",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — QR / share ────────────────────────────────────────────
|
||||||
|
lightningAddressQrCode = "Código QR de dirección Lightning",
|
||||||
|
lightningAddressLabel = "Dirección Lightning",
|
||||||
|
shareLightningAddress = "Compartir dirección Lightning",
|
||||||
|
lightningInvoiceQrCode = "Código QR de factura Lightning",
|
||||||
|
invoiceLabel = "Factura",
|
||||||
|
shareInvoice = "Compartir factura",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — amount step ───────────────────────────────────────────
|
||||||
|
amountInSats = "Cantidad (sats)",
|
||||||
|
satsRange = { min, max -> "$min – $max sats" },
|
||||||
|
|
||||||
|
// ── ReceiveScreen — memo step ─────────────────────────────────────────────
|
||||||
|
memoOptional = "Nota (opcional)",
|
||||||
|
memoPlaceholder = "¿Para qué es esto?",
|
||||||
|
creatingInvoice = "Creando factura…",
|
||||||
|
createInvoice = "Crear factura",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — invoice ready ─────────────────────────────────────────
|
||||||
|
waiting = "Esperando…",
|
||||||
|
invoiceExpired = "Factura expirada",
|
||||||
|
newInvoice = "Nueva factura",
|
||||||
|
|
||||||
|
// ── ReceiveScreen — lnurl withdraw ────────────────────────────────────────
|
||||||
|
withdrawFrom = "Retirar de",
|
||||||
|
minimumSats = { min -> "Mínimo es $min sats" },
|
||||||
|
maximumSats = { max -> "Máximo es $max sats" },
|
||||||
|
withdrawButton = "Retirar",
|
||||||
|
withdrawButtonAmount = { amount -> "Retirar $amount sats" },
|
||||||
|
|
||||||
|
// ── ReceiveScreen — success ───────────────────────────────────────────────
|
||||||
|
paymentReceived = "¡Pago recibido!",
|
||||||
|
|
||||||
|
// ── SendScreen — general ──────────────────────────────────────────────────
|
||||||
|
send = "Enviar",
|
||||||
|
paste = "Pegar",
|
||||||
|
continueButton = "Continuar",
|
||||||
|
clear = "Limpiar",
|
||||||
|
sendAnother = "Enviar otro",
|
||||||
|
|
||||||
|
// ── SendScreen — input field ──────────────────────────────────────────────
|
||||||
|
sendInputLabel = "Factura, LNURL o dirección Lightning",
|
||||||
|
sendInputPlaceholder = "lnbc… / lnurl1… / usuario@dominio.com",
|
||||||
|
tapNfcHint = "Acerca un dispositivo NFC para recibir la factura",
|
||||||
|
|
||||||
|
// ── SendScreen — states ───────────────────────────────────────────────────
|
||||||
|
resolving = "Resolviendo…",
|
||||||
|
sendingPayment = "Enviando pago…",
|
||||||
|
|
||||||
|
// ── SendScreen — payment sent ─────────────────────────────────────────────
|
||||||
|
paymentSent = "¡Pago enviado!",
|
||||||
|
amountSats = { sats -> "$sats sats" },
|
||||||
|
fiatEquivalent = { fiatStr -> "≈ $fiatStr" },
|
||||||
|
noFees = "Sin comisiones",
|
||||||
|
routingFee = { sats, ppmSuffix -> "Comisión de enrutamiento: $sats sat${if (sats == 1L) "" else "s"}$ppmSuffix" },
|
||||||
|
|
||||||
|
// ── ConfirmCard ───────────────────────────────────────────────────────────
|
||||||
|
invoiceDetails = "Detalles de la factura",
|
||||||
|
payingTo = { label -> "Pagando a $label" },
|
||||||
|
confirmAmount = { sats -> "$sats sats" },
|
||||||
|
confirmAmountWithFiat = { sats, fiat -> "$sats sats · $fiat" },
|
||||||
|
memo = "Nota",
|
||||||
|
destination = "Destino",
|
||||||
|
created = "Creado",
|
||||||
|
expiresIn = "Expira en",
|
||||||
|
hash = "Hash",
|
||||||
|
invoice = "Factura",
|
||||||
|
expiryExpired = "Expirado",
|
||||||
|
expirySeconds = { s -> "${s}s" },
|
||||||
|
expiryMinutes = { m, s -> "${m}m ${s}s" },
|
||||||
|
expiryHours = { h, m -> "${h}h ${m}m" },
|
||||||
|
createdToday = { time -> "Hoy, $time" },
|
||||||
|
createdYesterday = { time -> "Ayer, $time" },
|
||||||
|
payButton = { sats -> "Pagar $sats sats" },
|
||||||
|
payButtonWithFiat = { sats, fiat -> "Pagar $sats sats · $fiat" },
|
||||||
|
sendBiometricPrompt = { sats -> "Enviar $sats sats" },
|
||||||
|
sendBiometricPromptTo = { sats, label -> "Enviar $sats sats a $label" },
|
||||||
|
|
||||||
|
// ── LnurlPayForm ─────────────────────────────────────────────────────────
|
||||||
|
lnurlAmountError = { min, max -> "Introduce una cantidad entre $min y $max sats" },
|
||||||
|
lnurlFiatRange = { minFiat, maxFiat -> "$minFiat – $maxFiat" },
|
||||||
|
lnurlSatsAndFiatRange = { min, max, minFiat, maxFiat -> "$min – $max sats · $minFiat – $maxFiat" },
|
||||||
|
commentOptional = { max -> "Comentario (opcional, máx. $max caracteres)" },
|
||||||
|
commentCounter = { current, max -> "$current/$max" },
|
||||||
|
lnurlPayButton = { sats -> "Pagar $sats sats" },
|
||||||
|
lnurlPayButtonWithFiat = { sats, fiat -> "Pagar $sats sats · $fiat" },
|
||||||
|
|
||||||
|
// ── RouteHintWarning ──────────────────────────────────────────────────────
|
||||||
|
routeHintHighFees = "Comisiones de enrutamiento altas en la factura",
|
||||||
|
routeHintElevatedFees = "Comisiones de enrutamiento elevadas en la factura",
|
||||||
|
routeHintForcedChannel = { node -> "Esta factura obliga a pagar a través de un canal privado operado por $node." },
|
||||||
|
routeHintFeeRate = { effectivePpm, worstPpm -> "Tasa de comisión efectiva: $effectivePpm ppm ($worstPpm ppm)" },
|
||||||
|
routeHintFeeRateBase = { effectivePpm, worstPpm, baseLabel -> "Tasa de comisión efectiva: $effectivePpm ppm ($worstPpm ppm + $baseLabel base)" },
|
||||||
|
routeHintEstimatedFee = { sats -> "Comisión extra estimada en este pago: ~$sats sat${if (sats == 1L) "" else "s"}" },
|
||||||
|
routeHintShowDetails = "Ver detalles ▾",
|
||||||
|
routeHintHideDetails = "Ocultar detalles ▴",
|
||||||
|
routeHintHopsHeader = "Saltos de ruta privada",
|
||||||
|
routeHintHopFees = { ppm, baseLabel -> "$ppm ppm · $baseLabel base" },
|
||||||
|
)
|
||||||
@@ -0,0 +1,153 @@
|
|||||||
|
package com.bitcointxoko.gudariwallet.i18n
|
||||||
|
|
||||||
|
data class AppStrings(
|
||||||
|
// ── Loading state ──────────────────────────────────────────────────────────
|
||||||
|
val loadingBalance: String,
|
||||||
|
|
||||||
|
// ── Balance display ────────────────────────────────────────────────────────
|
||||||
|
val sats: String,
|
||||||
|
val hideBalance: String, // accessibility click label
|
||||||
|
val revealBalance: String, // accessibility long-click label
|
||||||
|
|
||||||
|
// ── Fiat / currency ────────────────────────────────────────────────────────
|
||||||
|
val changeCurrency: String, // click label + icon contentDescription
|
||||||
|
val showFiat: String, // ghost prompt when no currency selected
|
||||||
|
val updatedAt: (label: String) -> String, // e.g. "Updated just now"
|
||||||
|
val justNow: String,
|
||||||
|
val minAgo: (label: Int) -> String,
|
||||||
|
val atTime: (label: String) -> String,
|
||||||
|
|
||||||
|
// ── History button ─────────────────────────────────────────────────────────
|
||||||
|
val viewHistory: String,
|
||||||
|
|
||||||
|
// ── Currency picker sheet ──────────────────────────────────────────────────
|
||||||
|
val selectCurrency: String, // sheet header
|
||||||
|
val currencyNone: String, // "None" list item
|
||||||
|
val hideFiatEquivalent: String, // supporting text under "None"
|
||||||
|
val selected: String, // check-icon contentDescription
|
||||||
|
val search: String, // search field placeholder
|
||||||
|
|
||||||
|
// ── Currency picker empty states ───────────────────────────────────────────
|
||||||
|
val noCurrenciesAvailable: String,
|
||||||
|
val noCurrenciesMatch: (query: String) -> String,
|
||||||
|
|
||||||
|
// ── Error state ────────────────────────────────────────────────────────────
|
||||||
|
val couldNotRefresh: String,
|
||||||
|
val couldNotLoadBalance: String,
|
||||||
|
|
||||||
|
// ── Shared ────────────────────────────────────────────────────────────────
|
||||||
|
val cancel : String,
|
||||||
|
val tryAgain : String,
|
||||||
|
val amount : String,
|
||||||
|
val next : String,
|
||||||
|
val back : String,
|
||||||
|
val done : String,
|
||||||
|
val details : String,
|
||||||
|
val enterValidAmount : String,
|
||||||
|
val satsUnit : (sats: Long) -> String,
|
||||||
|
|
||||||
|
// ── ReceiveScreen — general ───────────────────────────────────────────────
|
||||||
|
val receive : String,
|
||||||
|
|
||||||
|
// ── ReceiveScreen — error ─────────────────────────────────────────────────
|
||||||
|
val receiveError : String,
|
||||||
|
|
||||||
|
// ── ReceiveScreen — QR / share ────────────────────────────────────────────
|
||||||
|
val lightningAddressQrCode : String,
|
||||||
|
val lightningAddressLabel : String,
|
||||||
|
val shareLightningAddress : String,
|
||||||
|
val lightningInvoiceQrCode : String,
|
||||||
|
val invoiceLabel : String,
|
||||||
|
val shareInvoice : String,
|
||||||
|
|
||||||
|
// ── ReceiveScreen — amount step ───────────────────────────────────────────
|
||||||
|
val amountInSats : String, // text field label
|
||||||
|
val satsRange : (min: Long, max: Long) -> String,
|
||||||
|
|
||||||
|
// ── ReceiveScreen — memo step ─────────────────────────────────────────────
|
||||||
|
val memoOptional : String,
|
||||||
|
val memoPlaceholder : String,
|
||||||
|
val creatingInvoice : String,
|
||||||
|
val createInvoice : String,
|
||||||
|
|
||||||
|
// ── ReceiveScreen — invoice ready ─────────────────────────────────────────
|
||||||
|
val waiting : String,
|
||||||
|
val invoiceExpired : String,
|
||||||
|
val newInvoice : String,
|
||||||
|
|
||||||
|
// ── ReceiveScreen — lnurl withdraw ────────────────────────────────────────
|
||||||
|
val withdrawFrom : String,
|
||||||
|
val minimumSats : (min: Long) -> String,
|
||||||
|
val maximumSats : (max: Long) -> String,
|
||||||
|
val withdrawButton : String, // no fixed amount
|
||||||
|
val withdrawButtonAmount : (amountSats: Long) -> String, // fixed amount
|
||||||
|
|
||||||
|
// ── ReceiveScreen — success ───────────────────────────────────────────────
|
||||||
|
val paymentReceived : String,
|
||||||
|
|
||||||
|
// ── SendScreen — general ──────────────────────────────────────────────────
|
||||||
|
val send : String,
|
||||||
|
val paste : String,
|
||||||
|
val continueButton : String,
|
||||||
|
val clear : String,
|
||||||
|
val sendAnother : String,
|
||||||
|
|
||||||
|
// ── SendScreen — input field ──────────────────────────────────────────────
|
||||||
|
val sendInputLabel : String,
|
||||||
|
val sendInputPlaceholder : String,
|
||||||
|
val tapNfcHint : String,
|
||||||
|
|
||||||
|
// ── SendScreen — states ───────────────────────────────────────────────────
|
||||||
|
val resolving : String,
|
||||||
|
val sendingPayment : String,
|
||||||
|
|
||||||
|
// ── SendScreen — payment sent ─────────────────────────────────────────────
|
||||||
|
val paymentSent : String,
|
||||||
|
val amountSats : (sats: Long) -> String,
|
||||||
|
val fiatEquivalent : (fiatStr: String) -> String,
|
||||||
|
val noFees : String,
|
||||||
|
val routingFee : (sats: Long, ppmSuffix: String) -> String,
|
||||||
|
|
||||||
|
// ── ConfirmCard ───────────────────────────────────────────────────────────
|
||||||
|
val invoiceDetails : String,
|
||||||
|
val payingTo : (label: String) -> String,
|
||||||
|
val confirmAmount : (sats: Long) -> String,
|
||||||
|
val confirmAmountWithFiat : (sats: Long, fiat: String) -> String,
|
||||||
|
val memo : String,
|
||||||
|
val destination : String,
|
||||||
|
val created : String,
|
||||||
|
val expiresIn : String,
|
||||||
|
val hash : String,
|
||||||
|
val invoice : String,
|
||||||
|
val expiryExpired : String,
|
||||||
|
val expirySeconds : (s: Long) -> String,
|
||||||
|
val expiryMinutes : (m: Long, s: Long) -> String,
|
||||||
|
val expiryHours : (h: Long, m: Long) -> String,
|
||||||
|
val createdToday : (time: String) -> String,
|
||||||
|
val createdYesterday : (time: String) -> String,
|
||||||
|
val payButton : (sats: Long) -> String,
|
||||||
|
val payButtonWithFiat : (sats: Long, fiat: String) -> String,
|
||||||
|
val sendBiometricPrompt : (sats: Long) -> String,
|
||||||
|
val sendBiometricPromptTo : (sats: Long, label: String) -> String,
|
||||||
|
|
||||||
|
// ── LnurlPayForm ─────────────────────────────────────────────────────────
|
||||||
|
val lnurlAmountError : (min: Long, max: Long) -> String,
|
||||||
|
val lnurlFiatRange : (minFiat: String, maxFiat: String) -> String,
|
||||||
|
val lnurlSatsAndFiatRange : (min: Long, max: Long, minFiat: String, maxFiat: String) -> String,
|
||||||
|
val commentOptional : (max: Int) -> String,
|
||||||
|
val commentCounter : (current: Int, max: Int) -> String,
|
||||||
|
val lnurlPayButton : (sats: String) -> String,
|
||||||
|
val lnurlPayButtonWithFiat: (sats: String, fiat: String) -> String,
|
||||||
|
|
||||||
|
// ── RouteHintWarning ──────────────────────────────────────────────────────
|
||||||
|
val routeHintHighFees : String,
|
||||||
|
val routeHintElevatedFees : String,
|
||||||
|
val routeHintForcedChannel: (node: String) -> String,
|
||||||
|
val routeHintFeeRate : (effectivePpm: Long, worstPpm: Long) -> String,
|
||||||
|
val routeHintFeeRateBase : (effectivePpm: Long, worstPpm: Long, baseLabel: String) -> String,
|
||||||
|
val routeHintEstimatedFee : (sats: Long) -> String,
|
||||||
|
val routeHintShowDetails : String,
|
||||||
|
val routeHintHideDetails : String,
|
||||||
|
val routeHintHopsHeader : String,
|
||||||
|
val routeHintHopFees : (ppm: Long, baseLabel: String) -> String,
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user