feat: localisation with lyricist

This commit is contained in:
2026-06-05 23:57:05 +02:00
parent 890dd0004a
commit 5af1dc32ca
3 changed files with 441 additions and 0 deletions
@@ -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" },
)