418 lines
22 KiB
Kotlin
418 lines
22 KiB
Kotlin
package com.bitcointxoko.gudariwallet.i18n
|
|
|
|
data class AppStrings(
|
|
// ── WalletScreen ──────────────────────────────────────────────────────────
|
|
val tabReceive : String,
|
|
val tabSend : String,
|
|
val scanContentDescription : String,
|
|
val dismissContentDescription : String,
|
|
val clipboardInvoiceDetected : String,
|
|
val clipboardLnurlDetected : String,
|
|
val clipboardAddressDetected : String,
|
|
val clipboardPaymentDetected : String,
|
|
val clipboardTapToOpen : String,
|
|
val clipboardTapToPay : String,
|
|
val nfcInvoiceDetected : String,
|
|
val nfcLnurlDetected : String,
|
|
val nfcAddressDetected : String,
|
|
val nfcPaymentDetected : String,
|
|
val nfcTapToOpen : String,
|
|
val nfcTapToPay : String,
|
|
|
|
// ── HomeTab ───────────────────────────────────────────────────────────────
|
|
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,
|
|
|
|
// ── 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 — paying ───────────────────────────────────────────────────
|
|
val paymentTakingLong : String,
|
|
val paymentTakingLongDetail: String,
|
|
val dismissPayment : 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,
|
|
|
|
// ── SendViewModel ─────────────────────────────────────────────────────────
|
|
val sendVmLnurlAuthNotSupported : String,
|
|
val sendVmUnrecognisedInput : String,
|
|
val sendVmPaymentFailed : String,
|
|
val sendVmCouldNotFetchInvoice : String,
|
|
val sendVmCouldNotDecodeInvoice : String,
|
|
val sendVmAuthFailed : (msg: CharSequence) -> String,
|
|
val sendVmOnChainNotSupported : String,
|
|
val sendVmChannelRequestNotSupported : String,
|
|
val sendVmCouldNotResolveAddress : String,
|
|
val sendVmEmptyResponse : String,
|
|
val sendVmUnsupportedType : (tag: String) -> String,
|
|
val sendVmPaymentFailedRescan : String,
|
|
|
|
// ── HistoryScreen ─────────────────────────────────────────────────────────
|
|
val historyTitle : String,
|
|
val historyClose : String,
|
|
val historySearchPayments : String,
|
|
val historyFilterPayments : String,
|
|
val historyRetry : String,
|
|
val historyNoPayments : String,
|
|
val historySearchPlaceholder : String,
|
|
val historySearchHelp : String,
|
|
val historySearchPaste : String,
|
|
val historySearchClear : String,
|
|
val historySearchChip : (tail: String) -> String,
|
|
val historyClearSearch : String,
|
|
val filterDirectionOutgoing : String,
|
|
val filterDirectionIncoming : String,
|
|
val filterClearDirection : String,
|
|
val filterStatusCompleted : String,
|
|
val filterStatusPending : String,
|
|
val filterStatusFailed : String,
|
|
val filterRemoveStatus : String,
|
|
val filterRemoveType : String,
|
|
val filterAmountRange : (min: Long, max: Long) -> String,
|
|
val filterAmountMin : (min: Long) -> String,
|
|
val filterAmountMax : (max: Long) -> String,
|
|
val filterClearAmount : String,
|
|
val filterDateThisWeek : String,
|
|
val filterDateThisMonth : String,
|
|
val filterDateThisYear : String,
|
|
val filterDateRange : (from: String, to: String) -> String,
|
|
val filterDateFrom : (from: String) -> String,
|
|
val filterDateUntil : (until: String) -> String,
|
|
val filterClearDate : String,
|
|
|
|
// ── FilterBottomSheet ─────────────────────────────────────────────────────
|
|
val filterSheetTitle : String,
|
|
val filterSectionDirection : String,
|
|
val filterDirectionAll : String,
|
|
val filterSectionStatus : String,
|
|
val filterSectionType : String,
|
|
val filterSectionAmount : String,
|
|
val filterAmountMin_label : String,
|
|
val filterAmountMax_label : String,
|
|
val filterAmountSuffix : String,
|
|
val filterSectionDate : String,
|
|
val filterDateFrom_label : String,
|
|
val filterDateTo_label : String,
|
|
val filterDialogOk : String,
|
|
val filterDialogCancel : String,
|
|
|
|
// ── SearchInfoSheet ───────────────────────────────────────────────────────
|
|
val searchInfoTitle : String,
|
|
val searchInfoSubtitle : String,
|
|
val searchInfoMemoTitle : String,
|
|
val searchInfoMemoDesc : String,
|
|
val searchInfoInvoiceTitle : String,
|
|
val searchInfoInvoiceDesc : String,
|
|
val searchInfoHashTitle : String,
|
|
val searchInfoHashDesc : String,
|
|
val searchInfoPreimageTitle : String,
|
|
val searchInfoPreimageDesc : String,
|
|
val searchInfoNodeAliasTitle : String,
|
|
val searchInfoNodeAliasDesc : String,
|
|
val searchInfoNodeIdTitle : String,
|
|
val searchInfoNodeIdDesc : String,
|
|
val searchInfoFooter : String,
|
|
|
|
// ── PaymentDetailScreen ───────────────────────────────────────────────────
|
|
val statusSuccess : String, // e.g. "Success"
|
|
val statusPending : String, // e.g. "Pending"
|
|
val statusFailed : String, // e.g. "Failed"
|
|
val statusUnknown : String, // e.g. "Unknown"
|
|
val detailOutgoingTitle : String,
|
|
val detailIncomingTitle : String,
|
|
val detailBack : String,
|
|
val detailCouldNotLoad : String,
|
|
val detailFeeLabel : (feeSat: Long, fiatPart: String, ppmPart: String) -> String,
|
|
val detailSectionDetails : String,
|
|
val detailRowDate : String,
|
|
val detailRowMemo : String,
|
|
val detailRowMemoEmpty : String,
|
|
val detailRowType : String,
|
|
val detailRowComment : String,
|
|
val detailSectionSuccessAction: String,
|
|
val detailSuccessMessage : String,
|
|
val detailSuccessUrl : String,
|
|
val detailSuccessDescription : String,
|
|
val detailSectionTechnical : String,
|
|
val detailRowPaymentHash : String,
|
|
val detailRowPreimage : String,
|
|
val detailRowDestination : String,
|
|
val detailCopyNodeId : String,
|
|
val detailRowBolt11 : String,
|
|
|
|
// ── PaymentRow ────────────────────────────────────────────────────────────
|
|
val paymentRowSentCD : String,
|
|
val paymentRowReceivedCD : String,
|
|
val paymentRowNoMemo : String,
|
|
val paymentRowPending : String,
|
|
val paymentRowFailed : String,
|
|
|
|
val onboarding: OnboardingStrings,
|
|
val receive: ReceiveStrings,
|
|
val nwc: NwcStrings
|
|
)
|
|
|
|
data class OnboardingStrings(
|
|
val title: String,
|
|
val subtitle: String,
|
|
val serverUrl: String,
|
|
val serverUrlHint: String,
|
|
val invoiceKey: String,
|
|
val invoiceKeySubtitle: String,
|
|
val pasteInvoiceKey: String,
|
|
val adminKey: String,
|
|
val adminKeySubtitle: String,
|
|
val pasteAdminKey: String,
|
|
val showAdminKey: String,
|
|
val hideAdminKey: String,
|
|
val connect: String,
|
|
val fieldsRequired: String,
|
|
val invalidKeyFormat: String,
|
|
val back: String,
|
|
val next: String,
|
|
val done: String,
|
|
val notificationsTitle: String,
|
|
val notificationsSubtitle: String,
|
|
val notificationsAlreadyGranted: String,
|
|
val allowNotifications: String,
|
|
val notificationsNote: String,
|
|
val notificationsAutoGranted: String,
|
|
val batteryTitle: String,
|
|
val batterySubtitle: String,
|
|
val openSettings: String,
|
|
val batteryNote: String,
|
|
val batteryAlreadyUnrestricted: String,
|
|
val paymentHistory: String,
|
|
val paymentHistorySubtitle: String,
|
|
val syncNow: String,
|
|
val skipForNow: String,
|
|
val syncScheduled: String,
|
|
val continueToApp: String,
|
|
val connecting: String,
|
|
val paymentsFetchedTotal: (fetched: Int, total: Int) -> String,
|
|
val paymentsSynced: (total: Int) -> String,
|
|
val syncComplete: String,
|
|
val syncFailed: String,
|
|
val scheduleForLater: String,
|
|
val scheduleSync: String,
|
|
val schedule: String,
|
|
val cancel: String
|
|
)
|
|
|
|
data class ReceiveStrings(
|
|
// ── 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,
|
|
|
|
// ── AmountDisplay ─────────────────────────────────────────────────────────
|
|
val amountDisplaySats : (amount: Long) -> String,
|
|
|
|
// ── BrightnessToggleButton & QrDisplayCard ────────────────────────────────
|
|
val brightnessReduce : String,
|
|
val brightnessBoost : String,
|
|
val qrShare : String,
|
|
val qrCopy : String,
|
|
val qrNfcStop : String,
|
|
val qrNfcStart : String,
|
|
val openInApp : String,
|
|
val noAppFound : String,
|
|
|
|
// ── ReceiveViewModel ──────────────────────────────────────────────────────
|
|
val receiveVmFailedToCreateInvoice : String,
|
|
val receiveVmWithdrawRejected : String,
|
|
val receiveVmWithdrawFailed : String,
|
|
)
|
|
|
|
data class NwcStrings(
|
|
|
|
// ── Shared / navigation ───────────────────────────────────────────────────
|
|
val back : String,
|
|
val next : String,
|
|
val done : String,
|
|
val cancel : String,
|
|
val schedule : String,
|
|
|
|
// ── Connection detail ─────────────────────────────────────────────────────
|
|
val connectionDetailTitle : String,
|
|
val connectionUnknownWallet : String,
|
|
val connectionSectionDetails : String,
|
|
val connectionRowCreated : String,
|
|
val connectionRowLastUsed : String,
|
|
val connectionRowExpires : String,
|
|
val connectionRowPubkey : String,
|
|
val connectionNeverUsed : String,
|
|
val connectionNoExpiry : String,
|
|
/** "Expired · {date}" */
|
|
val connectionExpired : (date: String) -> String,
|
|
val connectionSectionPermissions : String,
|
|
val connectionSectionBudgets : String,
|
|
/** "{window} budget" e.g. "Daily budget" */
|
|
val connectionBudgetTitle : (window: String) -> String,
|
|
/** "Used: {sats} sats" */
|
|
val connectionBudgetUsed : (sats: Long) -> String,
|
|
/** "of {sats} sats" */
|
|
val connectionBudgetTotal : (sats: Long) -> String,
|
|
val connectionRevoke : String,
|
|
val connectionStatusActive : String,
|
|
val connectionStatusExpired : String,
|
|
|
|
// ── NWC permission labels ─────────────────────────────────────────────────
|
|
val permPayInvoice : String,
|
|
val permGetBalance : String,
|
|
val permGetInfo : String,
|
|
val permMakeInvoice : String,
|
|
val permLookupInvoice : String,
|
|
val permListTransactions : String,
|
|
val permSignMessage : String,
|
|
val permPay : String, // "Send payments"
|
|
val permInvoice : String, // "Create invoices"
|
|
val permLookupHistory: String, // "Lookup status & transaction history"
|
|
val permBalanceInfo : String, // "Read balance & account info"
|
|
val permSendPayments: String,
|
|
val permCreateInvoices: String,
|
|
val permLookupInvoiceStatus: String,
|
|
val permReadTransactionHistory: String,
|
|
val permReadWalletBalance: String,
|
|
val permReadAccountInfo: String,
|
|
val revokeDialogTitle : String,
|
|
val revokeDialogBody : String,
|
|
val revokeDialogConfirm : String,
|
|
val revokeDialogDismiss : String,
|
|
) |