- Add pricing API functions to admin.ts - Create admin pricing page with form and validation - Add MANAGE_PRICING permission to auth context - Add pricing to admin navigation - Add translations for pricing page (en, ca, es) - Update PageLayout and Header types for new page
139 lines
4.3 KiB
JSON
139 lines
4.3 KiB
JSON
{
|
|
"invites": {
|
|
"title": "Invites",
|
|
"createInvite": "Create Invite",
|
|
"godfatherLabel": "Godfather (user who can share this invite)",
|
|
"selectUser": "Select a user...",
|
|
"noUsersHint": "No users loaded yet. Create at least one invite to populate the list.",
|
|
"creating": "Creating...",
|
|
"allInvites": "All Invites",
|
|
"allStatuses": "All statuses",
|
|
"statusReady": "Ready",
|
|
"statusSpent": "Spent",
|
|
"statusRevoked": "Revoked",
|
|
"invitesCount": "{count} invites",
|
|
"tableHeaders": {
|
|
"code": "Code",
|
|
"godfather": "Godfather",
|
|
"status": "Status",
|
|
"usedBy": "Used By",
|
|
"created": "Created",
|
|
"actions": "Actions"
|
|
},
|
|
"noInvites": "No invites yet",
|
|
"revoke": "Revoke",
|
|
"errors": {
|
|
"loadFailed": "Failed to load invites",
|
|
"revokeFailed": "Failed to revoke invite"
|
|
}
|
|
},
|
|
"trades": {
|
|
"title": "Trades",
|
|
"subtitle": "Manage Bitcoin exchange trades",
|
|
"tabs": {
|
|
"upcoming": "Upcoming ({count})",
|
|
"history": "History ({count})"
|
|
},
|
|
"filters": {
|
|
"allStatuses": "All Statuses",
|
|
"completed": "Completed",
|
|
"noShow": "No Show",
|
|
"userCancelled": "User Cancelled",
|
|
"adminCancelled": "Admin Cancelled"
|
|
},
|
|
"searchPlaceholder": "Search by email...",
|
|
"loading": "Loading trades...",
|
|
"emptyStates": {
|
|
"upcoming": "No upcoming trades.",
|
|
"past": "No trades found."
|
|
},
|
|
"tradeDetails": {
|
|
"rate": "Rate:",
|
|
"market": "Market:",
|
|
"sellBtc": "SELL BTC",
|
|
"buyBtc": "BUY BTC",
|
|
"sendVia": "Send via {method}",
|
|
"receiveVia": "Receive via {method}",
|
|
"onchain": "Onchain",
|
|
"lightning": "Lightning",
|
|
"signal": "Signal: {value}"
|
|
},
|
|
"actions": {
|
|
"complete": "Complete",
|
|
"noShow": "No Show",
|
|
"cancel": "Cancel"
|
|
},
|
|
"errors": {
|
|
"loadUpcomingFailed": "Failed to load upcoming trades",
|
|
"loadPastFailed": "Failed to load past trades",
|
|
"actionFailed": "Failed to {action} trade"
|
|
}
|
|
},
|
|
"priceHistory": {
|
|
"title": "Bitcoin Price History",
|
|
"recordsCount": "{count} records",
|
|
"refresh": "Refresh",
|
|
"fetching": "Fetching...",
|
|
"fetchNow": "Fetch Now",
|
|
"tableHeaders": {
|
|
"source": "Source",
|
|
"pair": "Pair",
|
|
"price": "Price",
|
|
"timestamp": "Timestamp"
|
|
},
|
|
"loading": "Loading...",
|
|
"emptyState": "No price records yet. Click \"Fetch Now\" to get the current price."
|
|
},
|
|
"availability": {
|
|
"title": "Availability",
|
|
"subtitle": "Configure your available time slots for the next {days} days",
|
|
"copyMode": {
|
|
"hint": "Select days to copy to, then click Copy",
|
|
"copyTo": "Copy to {count} day(s)",
|
|
"copying": "Copying...",
|
|
"cancel": "Cancel"
|
|
},
|
|
"modal": {
|
|
"title": "Edit Time Slots",
|
|
"startTime": "Start Time",
|
|
"endTime": "End Time",
|
|
"addSlot": "Add Slot",
|
|
"removeSlot": "Remove",
|
|
"save": "Save",
|
|
"clear": "Clear",
|
|
"close": "Close",
|
|
"noAvailability": "No availability"
|
|
},
|
|
"errors": {
|
|
"saveFailed": "Failed to save",
|
|
"clearFailed": "Failed to clear",
|
|
"copyFailed": "Failed to copy"
|
|
}
|
|
},
|
|
"pricing": {
|
|
"title": "Pricing Configuration",
|
|
"subtitle": "Configure premium pricing and trade amount limits",
|
|
"premiumSettings": "Premium Settings",
|
|
"premiumBuy": "Premium for BUY",
|
|
"premiumSell": "Premium for SELL",
|
|
"smallTradeThreshold": "Small Trade Threshold",
|
|
"smallTradeExtraPremium": "Extra Premium for Small Trades",
|
|
"tradeLimitsBuy": "Trade Amount Limits (BUY)",
|
|
"tradeLimitsSell": "Trade Amount Limits (SELL)",
|
|
"minAmount": "Minimum Amount",
|
|
"maxAmount": "Maximum Amount",
|
|
"save": "Save Changes",
|
|
"success": "Pricing configuration saved successfully",
|
|
"confirmSave": "Are you sure you want to save these pricing changes? This will affect all new trades immediately.",
|
|
"validation": {
|
|
"premiumRange": "Premium must be between -100% and 100%",
|
|
"positive": "Amount must be positive",
|
|
"minMaxBuy": "Minimum must be less than maximum for BUY",
|
|
"minMaxSell": "Minimum must be less than maximum for SELL"
|
|
},
|
|
"errors": {
|
|
"loadFailed": "Failed to load pricing configuration",
|
|
"saveFailed": "Failed to save pricing configuration"
|
|
}
|
|
}
|
|
}
|