mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
- Added branding API integration to fetch branding details. - Updated share link functionality to include branding name in the share message.
990 lines
30 KiB
JSON
990 lines
30 KiB
JSON
{
|
|
"common": {
|
|
"loading": "Loading...",
|
|
"error": "Error",
|
|
"success": "Success",
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"confirm": "Confirm",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"close": "Close",
|
|
"search": "Search",
|
|
"noData": "No data",
|
|
"actions": "Actions",
|
|
"yes": "Yes",
|
|
"no": "No",
|
|
"or": "or",
|
|
"and": "and",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"currency": "$"
|
|
},
|
|
"nav": {
|
|
"dashboard": "Dashboard",
|
|
"subscription": "Subscription",
|
|
"balance": "Balance",
|
|
"referral": "Referrals",
|
|
"support": "Support",
|
|
"profile": "Profile",
|
|
"logout": "Logout",
|
|
"contests": "Contests",
|
|
"polls": "Polls",
|
|
"info": "Info",
|
|
"wheel": "Fortune Wheel"
|
|
},
|
|
"auth": {
|
|
"login": "Login",
|
|
"register": "Register",
|
|
"logout": "Logout",
|
|
"email": "Email",
|
|
"password": "Password",
|
|
"confirmPassword": "Confirm password",
|
|
"forgotPassword": "Forgot password?",
|
|
"resetPassword": "Reset password",
|
|
"loginWithTelegram": "Login with Telegram",
|
|
"loginWithEmail": "Login with Email",
|
|
"noAccount": "Don't have an account?",
|
|
"hasAccount": "Already have an account?",
|
|
"registerHint": "To register with email, first log in via Telegram, then link your email in settings.",
|
|
"telegramRequired": "Telegram authorization required",
|
|
"telegramNotConfigured": "Telegram bot is not configured",
|
|
"authenticating": "Authenticating...",
|
|
"orOpenInApp": "Or open the bot in the app",
|
|
"loginFailed": "Login Failed",
|
|
"tryAgain": "Try Again",
|
|
"welcomeBack": "Welcome back!",
|
|
"loginTitle": "Login to Cabinet",
|
|
"loginSubtitle": "Sign in with Telegram or use your email"
|
|
},
|
|
"emailVerification": {
|
|
"title": "Email Verification",
|
|
"verifying": "Verifying email...",
|
|
"pleaseWait": "Please wait while we verify your email address.",
|
|
"success": "Email Verified!",
|
|
"successMessage": "Your email has been successfully verified. You can now log in with your email and password.",
|
|
"failed": "Verification Failed",
|
|
"goToLogin": "Go to Login"
|
|
},
|
|
"dashboard": {
|
|
"title": "Dashboard",
|
|
"welcome": "Welcome, {{name}}!",
|
|
"yourSubscription": "Your Subscription",
|
|
"quickActions": "Quick Actions",
|
|
"viewSubscription": "Manage Subscription",
|
|
"topUpBalance": "Top Up Balance",
|
|
"inviteFriends": "Invite Friends",
|
|
"getSupport": "Get Support",
|
|
"currentBalance": "Current Balance",
|
|
"activeUntil": "Active until",
|
|
"noActiveSubscription": "No active subscription",
|
|
"devicesUsed": "Devices: {{used}} of {{total}}",
|
|
"trafficUsed": "Traffic: {{used}} of {{total}} GB",
|
|
"unlimitedTraffic": "Unlimited traffic"
|
|
},
|
|
"subscription": {
|
|
"title": "Subscription",
|
|
"currentPlan": "Current Plan",
|
|
"status": "Status",
|
|
"active": "Active",
|
|
"inactive": "Inactive",
|
|
"trialStatus": "Trial",
|
|
"expired": "Expired",
|
|
"expiresAt": "Expires at",
|
|
"daysLeft": "Days left",
|
|
"devices": "Devices",
|
|
"servers": "Servers",
|
|
"traffic": "Traffic",
|
|
"unlimited": "Unlimited",
|
|
"used": "Used",
|
|
"of": "of",
|
|
"renew": "Renew",
|
|
"extend": "Extend Subscription",
|
|
"buyTraffic": "Buy Traffic",
|
|
"buyDevices": "Buy Devices",
|
|
"renewalOptions": "Renewal Options",
|
|
"days": "days",
|
|
"hours": "h",
|
|
"minutes": "m",
|
|
"price": "Price",
|
|
"noSubscription": "You don't have an active subscription",
|
|
"getSubscription": "Get Subscription",
|
|
"connectionInfo": "Connection Info",
|
|
"copyLink": "Copy Link",
|
|
"copied": "Copied!",
|
|
"showQR": "Show QR Code",
|
|
"downloadConfig": "Download Config",
|
|
"trafficUsed": "Traffic used",
|
|
"timeLeft": "Time left",
|
|
"getConfig": "Connect Devices",
|
|
"autoRenewal": "Auto-renewal",
|
|
"daysBeforeExpiry": "days before expiry",
|
|
"selectPeriod": "Select Period",
|
|
"selectTraffic": "Select Traffic",
|
|
"selectServers": "Select Servers",
|
|
"selectDevices": "Devices",
|
|
"perDevice": "/ device",
|
|
"summary": "Summary",
|
|
"total": "Total",
|
|
"purchase": "Purchase",
|
|
"step": "Step {{current}} of {{total}}",
|
|
"stepPeriod": "Period",
|
|
"stepTraffic": "Traffic",
|
|
"stepServers": "Servers",
|
|
"stepDevices": "Devices",
|
|
"stepConfirm": "Confirm",
|
|
"currentTariff": "Current",
|
|
"from": "from",
|
|
"month": "mo",
|
|
"insufficientBalance": "Insufficient balance. Missing {{missing}} ₽",
|
|
"trial": {
|
|
"title": "Free Trial",
|
|
"description": "Try our VPN service for free!",
|
|
"days": "days",
|
|
"devices": "devices",
|
|
"price": "Activation price",
|
|
"activate": "Activate Free Trial",
|
|
"unavailable": "Trial is not available"
|
|
},
|
|
"connection": {
|
|
"title": "Connect VPN",
|
|
"selectDevice": "Select your device",
|
|
"selectApp": "Select app",
|
|
"installApp": "1. Install the app",
|
|
"addSubscription": "2. Add subscription",
|
|
"connectVpn": "3. Connect VPN",
|
|
"addToApp": "Add to {{appName}}",
|
|
"connect": "Connect",
|
|
"noApps": "No apps available for this platform",
|
|
"noSubscription": "You need an active subscription to connect",
|
|
"featured": "Recommended",
|
|
"yourDevice": "Your device",
|
|
"copyLink": "Copy subscription link",
|
|
"copied": "Link copied!",
|
|
"openLink": "Open link"
|
|
},
|
|
"myDevices": "My Devices",
|
|
"noDevices": "No connected devices",
|
|
"deleteDevice": "Delete device",
|
|
"deleteAllDevices": "Delete all",
|
|
"confirmDeleteDevice": "Delete this device?",
|
|
"confirmDeleteAllDevices": "Delete all devices?",
|
|
"deviceDeleted": "Device deleted",
|
|
"allDevicesDeleted": "All devices deleted",
|
|
"platform": "Platform",
|
|
"model": "Model",
|
|
"connectedAt": "Connected",
|
|
"pause": {
|
|
"title": "Subscription Pause",
|
|
"paused": "Paused",
|
|
"active": "Active",
|
|
"pauseBtn": "Pause",
|
|
"resumeBtn": "Resume",
|
|
"pausedMessage": "Subscription paused",
|
|
"resumedMessage": "Subscription resumed",
|
|
"dailyOnly": "Pause is only available for daily tariffs",
|
|
"pausedInfo": "Subscription paused",
|
|
"pausedDescription": "Charges stopped. Subscription will be active until",
|
|
"nextCharge": "Until next charge",
|
|
"willBeCharged": "Will be charged",
|
|
"days_one": "day",
|
|
"days_few": "days",
|
|
"days_many": "days",
|
|
"hours": "h",
|
|
"minutes": "m"
|
|
},
|
|
"dailyPurchase": {
|
|
"costPerDay": "Cost per day",
|
|
"chargedDaily": "Payment is charged daily from balance",
|
|
"canPause": "Can be paused at any time",
|
|
"pausedOnLowBalance": "Subscription will be paused if balance is insufficient",
|
|
"activate": "Activate for {{price}}"
|
|
},
|
|
"switchTariff": {
|
|
"title": "Switch Tariff",
|
|
"preview": "Preview",
|
|
"currentTariff": "Current tariff",
|
|
"newTariff": "New tariff",
|
|
"remainingDays": "Days remaining",
|
|
"upgradeCost": "Upgrade cost",
|
|
"free": "Free",
|
|
"switch": "Switch",
|
|
"switched": "Tariff switched",
|
|
"notEnoughBalance": "Insufficient balance"
|
|
},
|
|
"switchTraffic": {
|
|
"title": "Change Traffic",
|
|
"currentPackage": "Current package",
|
|
"newPackage": "New package",
|
|
"switch": "Change",
|
|
"switched": "Traffic changed"
|
|
},
|
|
"purchasedTraffic": "Purchased Traffic",
|
|
"trafficResetAt": "Reset"
|
|
},
|
|
"balance": {
|
|
"title": "Balance",
|
|
"currentBalance": "Current Balance",
|
|
"topUp": "Top Up",
|
|
"topUpBalance": "Top Up Balance",
|
|
"paymentMethods": "Payment Methods",
|
|
"transactionHistory": "Transaction History",
|
|
"noTransactions": "No transactions",
|
|
"date": "Date",
|
|
"type": "Type",
|
|
"description": "Description",
|
|
"amount": "Amount",
|
|
"deposit": "Deposit",
|
|
"withdrawal": "Withdrawal",
|
|
"subscriptionPayment": "Subscription Payment",
|
|
"referralReward": "Referral Reward",
|
|
"minAmount": "Min.",
|
|
"maxAmount": "Max.",
|
|
"notAvailable": "Not available",
|
|
"useBot": "Please use the Telegram bot to top up your balance.",
|
|
"page": "Page {{current}} of {{total}}",
|
|
"invalidAmount": "Invalid amount",
|
|
"promocode": {
|
|
"title": "Promo Code",
|
|
"placeholder": "Enter promo code",
|
|
"activate": "Activate",
|
|
"activating": "Activating...",
|
|
"success": "Promo code activated successfully!",
|
|
"balanceAdded": "Balance added: {{amount}} ₽",
|
|
"errors": {
|
|
"not_found": "Promo code not found",
|
|
"expired": "Promo code has expired",
|
|
"used": "Promo code has already been used",
|
|
"already_used_by_user": "You have already used this promo code",
|
|
"user_not_found": "User not found",
|
|
"server_error": "Server error"
|
|
}
|
|
},
|
|
"minAmountError": "Minimum amount: {{amount}} ₽",
|
|
"maxAmountError": "Maximum amount: {{amount}} ₽",
|
|
"paymentOption": "Payment option",
|
|
"selectPaymentOption": "Select payment option",
|
|
"paymentMethods": {
|
|
"yookassa": {
|
|
"name": "YooKassa",
|
|
"description": "Pay via YooKassa"
|
|
},
|
|
"cryptobot": {
|
|
"name": "CryptoBot",
|
|
"description": "Pay with cryptocurrency via CryptoBot"
|
|
},
|
|
"telegram_stars": {
|
|
"name": "Telegram Stars",
|
|
"description": "Pay with Telegram Stars"
|
|
},
|
|
"heleket": {
|
|
"name": "Heleket Crypto",
|
|
"description": "Pay with cryptocurrency via Heleket"
|
|
},
|
|
"mulenpay": {
|
|
"name": "MulenPay",
|
|
"description": "Pay via MulenPay"
|
|
},
|
|
"pal24": {
|
|
"name": "PAL24",
|
|
"description": "Pay via PAL24"
|
|
},
|
|
"platega": {
|
|
"name": "Platega",
|
|
"description": "Pay via Platega"
|
|
},
|
|
"wata": {
|
|
"name": "Wata",
|
|
"description": "Pay via Wata"
|
|
},
|
|
"cloudpayments": {
|
|
"name": "CloudPayments",
|
|
"description": "Pay with bank card via CloudPayments"
|
|
},
|
|
"freekassa": {
|
|
"name": "FreeKassa",
|
|
"description": "Pay via FreeKassa"
|
|
}
|
|
},
|
|
"pendingPayments": {
|
|
"title": "Pending Payments",
|
|
"pay": "Pay",
|
|
"checkStatus": "Check Status",
|
|
"checking": "Checking..."
|
|
}
|
|
},
|
|
"referral": {
|
|
"title": "Referral Program",
|
|
"yourLink": "Your Referral Link",
|
|
"copyLink": "Copy Link",
|
|
"copied": "Copied!",
|
|
"shareButton": "Share",
|
|
"shareMessage": "Join me on {{botName}} and earn up to {{percent}}% cashback!",
|
|
"shareHint": "Share this link with friends. When they sign up and make a purchase, you'll earn {{percent}}% commission!",
|
|
"stats": {
|
|
"totalReferrals": "Total Referrals",
|
|
"activeReferrals": "Active",
|
|
"totalEarnings": "Total Earnings",
|
|
"commissionRate": "Commission Rate"
|
|
},
|
|
"terms": {
|
|
"title": "Program Terms",
|
|
"commission": "Commission",
|
|
"minTopup": "Min. Top-up",
|
|
"newUserBonus": "New User Bonus",
|
|
"inviterBonus": "Inviter Bonus"
|
|
},
|
|
"yourReferrals": "Your Referrals",
|
|
"noReferrals": "No referrals yet. Share your link to invite friends!",
|
|
"user": "User",
|
|
"joined": "Joined",
|
|
"hasPaid": "Has Paid",
|
|
"status": {
|
|
"pending": "Pending",
|
|
"paid": "Paid"
|
|
},
|
|
"earningsHistory": "Earnings History",
|
|
"reason": "Reason",
|
|
"reasons": {
|
|
"referral_registration_pending": "Referral Registration",
|
|
"referral_registration": "Referral Registration",
|
|
"referral_first_payment": "Referral First Payment",
|
|
"referral_subscription_renewal": "Referral Subscription Renewal",
|
|
"referral_bonus": "Referral Bonus"
|
|
}
|
|
},
|
|
"support": {
|
|
"title": "Support",
|
|
"newTicket": "New Ticket",
|
|
"yourTickets": "Your Tickets",
|
|
"noTickets": "No tickets yet",
|
|
"createTicket": "Create New Ticket",
|
|
"subject": "Subject",
|
|
"subjectPlaceholder": "Brief description of your issue",
|
|
"message": "Message",
|
|
"messagePlaceholder": "Describe your issue in detail...",
|
|
"send": "Send",
|
|
"sending": "Sending...",
|
|
"creating": "Creating...",
|
|
"reply": "Reply",
|
|
"replyPlaceholder": "Type your reply...",
|
|
"sendReply": "Send Reply",
|
|
"you": "You",
|
|
"supportTeam": "Support",
|
|
"selectTicket": "Select a ticket or create a new one",
|
|
"created": "Created",
|
|
"repliesDisabled": "Replies to this ticket are disabled",
|
|
"status": {
|
|
"open": "Open",
|
|
"answered": "Answered",
|
|
"pending": "Pending",
|
|
"closed": "Closed"
|
|
},
|
|
"attachImage": "Attach image",
|
|
"invalidFileType": "Invalid file type. Use JPEG, PNG, GIF or WebP.",
|
|
"fileTooLarge": "File is too large. Maximum size is 10MB.",
|
|
"uploadFailed": "Failed to upload image",
|
|
"imageLoadFailed": "Failed to load image",
|
|
"ticketsDisabled": "Tickets Disabled",
|
|
"useProfile": "Please go to the bot profile to get support",
|
|
"goToProfile": "Go to Profile",
|
|
"useExternalLink": "Please use the external link to get support",
|
|
"openSupport": "Open Support",
|
|
"contactSupport": "Please contact {{username}} for support",
|
|
"contactUs": "Contact Support"
|
|
},
|
|
"wheel": {
|
|
"title": "Fortune Wheel",
|
|
"disabled": "Fortune Wheel is currently unavailable",
|
|
"spinsRemaining": "Spins remaining today",
|
|
"choosePayment": "Choose payment method",
|
|
"stars": "Stars",
|
|
"telegramStars": "Telegram Stars",
|
|
"days": "days",
|
|
"subscriptionDays": "Subscription days",
|
|
"day": "Day",
|
|
"spin": "SPIN!",
|
|
"spinning": "Spinning...",
|
|
"history": "History",
|
|
"recentSpins": "Recent spins",
|
|
"congratulations": "Congratulations!",
|
|
"noLuck": "No luck!",
|
|
"oops": "Oops!",
|
|
"yourPromoCode": "Your promo code:",
|
|
"close": "Close",
|
|
"errors": {
|
|
"networkError": "A network error occurred",
|
|
"loadFailed": "Failed to load wheel configuration",
|
|
"dailyLimitReached": "Daily spin limit reached",
|
|
"cannotSpin": "Cannot spin right now",
|
|
"insufficientBalance": "Insufficient balance",
|
|
"topUpRequired": "Top up your balance to pay for spin",
|
|
"starsNotAvailable": "Stars payment not available. Open the app via Telegram."
|
|
},
|
|
"payWithStars": "Pay with Stars",
|
|
"payWithDays": "Pay with days",
|
|
"processingPayment": "Processing...",
|
|
"starsPaymentSuccess": "Payment successful! Spin result sent to Telegram.",
|
|
"starsPaymentSuccessCheckHistory": "Payment successful! Check history or Telegram for the result.",
|
|
"starsPaymentFailed": "Payment failed. Please try again.",
|
|
"youWon": "You won",
|
|
"noPrize": "No luck this time...",
|
|
"noHistory": "No spin history yet",
|
|
"banner": {
|
|
"title": "Try your luck!",
|
|
"description": "Spin the wheel and win prizes: subscription days, balance, traffic and more!",
|
|
"button": "Go to wheel"
|
|
}
|
|
},
|
|
"admin": {
|
|
"nav": {
|
|
"title": "Admin",
|
|
"dashboard": "Dashboard",
|
|
"tickets": "Tickets",
|
|
"settings": "Settings",
|
|
"apps": "Apps",
|
|
"wheel": "Wheel",
|
|
"tariffs": "Tariffs",
|
|
"servers": "Servers",
|
|
"broadcasts": "Broadcasts",
|
|
"users": "Users",
|
|
"payments": "Payments",
|
|
"remnawave": "RemnaWave"
|
|
},
|
|
"panel": {
|
|
"title": "Admin Panel",
|
|
"subtitle": "System management",
|
|
"dashboardDesc": "Statistics and system monitoring",
|
|
"ticketsDesc": "Handle user support tickets",
|
|
"settingsDesc": "System settings and parameters",
|
|
"appsDesc": "Manage connection apps",
|
|
"wheelDesc": "Configure fortune wheel and prizes",
|
|
"tariffsDesc": "Manage tariff plans",
|
|
"serversDesc": "Configure VPN servers",
|
|
"broadcastsDesc": "Mass messaging to users",
|
|
"usersDesc": "Manage bot users",
|
|
"paymentsDesc": "Payment verification",
|
|
"remnawaveDesc": "Panel management and statistics"
|
|
},
|
|
"payments": {
|
|
"title": "Payment Verification",
|
|
"description": "Pending payments in the last 24 hours",
|
|
"totalPending": "Total Pending",
|
|
"filterByMethod": "Filter by method",
|
|
"noPayments": "No pending payments",
|
|
"paid": "Paid",
|
|
"user": "User",
|
|
"openLink": "Open Link",
|
|
"checkStatus": "Check Status",
|
|
"checking": "Checking..."
|
|
},
|
|
"remnawave": {
|
|
"title": "RemnaWave",
|
|
"subtitle": "Panel management and statistics",
|
|
"connected": "Connected",
|
|
"disconnected": "Not configured",
|
|
"noData": "Failed to load data",
|
|
"tabs": {
|
|
"overview": "Overview",
|
|
"nodes": "Nodes",
|
|
"squads": "Squads",
|
|
"sync": "Sync"
|
|
},
|
|
"overview": {
|
|
"system": "System",
|
|
"usersOnline": "Online",
|
|
"totalUsers": "Total Users",
|
|
"nodesOnline": "Nodes Online",
|
|
"connections": "Connections",
|
|
"bandwidth": "Realtime Bandwidth",
|
|
"download": "Download",
|
|
"upload": "Upload",
|
|
"total": "Total",
|
|
"server": "Server",
|
|
"cpu": "CPU Cores",
|
|
"memory": "Memory",
|
|
"uptime": "Uptime",
|
|
"traffic": "Traffic Statistics",
|
|
"usersByStatus": "Users by Status"
|
|
},
|
|
"nodes": {
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"disabled": "Disabled",
|
|
"noNodes": "No nodes found",
|
|
"restart": "Restart",
|
|
"enable": "Enable",
|
|
"disable": "Disable",
|
|
"restartAll": "Restart All",
|
|
"confirmRestartAll": "Are you sure you want to restart all nodes?"
|
|
},
|
|
"squads": {
|
|
"synced": "Synced",
|
|
"notSynced": "Not synced",
|
|
"noSquads": "No squads found",
|
|
"syncServers": "Sync Servers"
|
|
},
|
|
"sync": {
|
|
"autoSync": "Auto Sync",
|
|
"runNow": "Run Now",
|
|
"manual": "Manual Sync",
|
|
"fromPanel": "Sync from Panel",
|
|
"fromPanelDesc": "Import users from RemnaWave panel to bot database",
|
|
"toPanel": "Sync to Panel",
|
|
"toPanelDesc": "Export users from bot database to RemnaWave panel",
|
|
"subscriptions": "Subscriptions",
|
|
"validate": "Validate",
|
|
"validateDesc": "Check and fix subscription inconsistencies",
|
|
"cleanup": "Cleanup",
|
|
"cleanupDesc": "Remove orphaned subscriptions without users",
|
|
"statuses": "Sync Statuses",
|
|
"statusesDesc": "Synchronize subscription statuses with panel"
|
|
}
|
|
},
|
|
"wheel": {
|
|
"title": "Fortune Wheel Settings",
|
|
"enabled": "Enabled",
|
|
"disabled": "Disabled",
|
|
"tabs": {
|
|
"settings": "Settings",
|
|
"prizes": "Prizes",
|
|
"statistics": "Statistics"
|
|
},
|
|
"settings": {
|
|
"enableWheel": "Enable Wheel",
|
|
"allowSpins": "Allow users to spin the wheel",
|
|
"costInStars": "Cost in Stars",
|
|
"costInDays": "Cost in Days",
|
|
"rtpPercent": "RTP (Return to Player) %",
|
|
"dailyLimit": "Daily Spin Limit (0 = unlimited)",
|
|
"minSubDays": "Min subscription days for day payment",
|
|
"promoPrefix": "Promo code prefix"
|
|
},
|
|
"prizes": {
|
|
"addPrize": "Add Prize",
|
|
"editPrize": "Edit Prize",
|
|
"noPrizes": "No prizes configured. Add some prizes to enable the wheel.",
|
|
"deletePrize": "Delete this prize?",
|
|
"types": {
|
|
"subscription_days": "Subscription Days",
|
|
"balance_bonus": "Balance Bonus",
|
|
"traffic_gb": "Traffic GB",
|
|
"promocode": "Promo Code",
|
|
"nothing": "Nothing (Empty)"
|
|
},
|
|
"fields": {
|
|
"type": "Type",
|
|
"displayName": "Display Name",
|
|
"value": "Value",
|
|
"valueKopeks": "Value in Kopeks (for RTP)",
|
|
"emoji": "Emoji",
|
|
"color": "Color",
|
|
"active": "Active",
|
|
"worth": "Worth"
|
|
},
|
|
"promo": {
|
|
"title": "Promo Code Settings",
|
|
"balanceBonus": "Balance bonus (kopeks)",
|
|
"subscriptionDays": "Subscription days"
|
|
}
|
|
},
|
|
"statistics": {
|
|
"totalSpins": "Total Spins",
|
|
"revenue": "Revenue",
|
|
"payouts": "Payouts",
|
|
"actualRtp": "Actual RTP",
|
|
"targetRtp": "target",
|
|
"prizeDistribution": "Prize Distribution",
|
|
"times": "times",
|
|
"topWins": "Top Wins"
|
|
}
|
|
},
|
|
"broadcasts": {
|
|
"title": "Broadcasts",
|
|
"subtitle": "Mass messaging to users",
|
|
"create": "Create Broadcast",
|
|
"empty": "No broadcasts yet",
|
|
"selectFilter": "Select audience",
|
|
"selectFilterPlaceholder": "Select filter...",
|
|
"recipients": "recip.",
|
|
"messageText": "Message text",
|
|
"messageTextPlaceholder": "Enter broadcast message...",
|
|
"media": "Media file",
|
|
"addMedia": "Add media",
|
|
"uploading": "Uploading...",
|
|
"buttons": "Buttons",
|
|
"willBeSent": "Will be sent to",
|
|
"users": "users",
|
|
"send": "Send",
|
|
"stop": "Stop",
|
|
"progress": "Progress",
|
|
"total": "Total",
|
|
"sent": "Sent",
|
|
"failed": "Failed",
|
|
"filter": "Filter",
|
|
"message": "Message",
|
|
"unknownAdmin": "Unknown admin"
|
|
},
|
|
"settings": {
|
|
"title": "System Settings",
|
|
"allCategories": "All categories",
|
|
"noSettings": "No settings found",
|
|
"modified": "Modified",
|
|
"readOnly": "Read only",
|
|
"reset": "Reset",
|
|
"categoriesCount": "categories",
|
|
"settingsCount": "settings",
|
|
"expandAll": "Expand all",
|
|
"collapseAll": "Collapse all",
|
|
"searchPlaceholder": "Search settings...",
|
|
"searchCategoriesPlaceholder": "Search categories...",
|
|
"noSearchResults": "Nothing found",
|
|
"example": "Example"
|
|
},
|
|
"apps": {
|
|
"title": "App Management",
|
|
"addApp": "Add App",
|
|
"addFirstApp": "Add First App",
|
|
"noApps": "No apps for this platform",
|
|
"createApp": "Create App",
|
|
"editApp": "Edit App",
|
|
"confirmDelete": "Are you sure you want to delete this app?",
|
|
"copyTo": "Copy to...",
|
|
"appId": "App ID",
|
|
"appName": "Name",
|
|
"urlScheme": "URL Scheme",
|
|
"featured": "Featured",
|
|
"base64Encoding": "Base64 Encoding",
|
|
"buttons": "Buttons",
|
|
"button": "Button",
|
|
"addButton": "Add Button",
|
|
"buttonText": "Button Text",
|
|
"installDescription": "Installation Description",
|
|
"subscriptionDescription": "Add Subscription Description",
|
|
"connectDescription": "Connect Description",
|
|
"beforeSubscription": "Before Add Subscription",
|
|
"afterSubscription": "After Add Subscription",
|
|
"stepTitle": "Title",
|
|
"stepDescription": "Description",
|
|
"tabs": {
|
|
"basic": "Basic",
|
|
"installation": "Installation",
|
|
"subscription": "Subscription",
|
|
"connect": "Connect",
|
|
"additional": "Additional"
|
|
},
|
|
"import": "Import",
|
|
"export": "Export",
|
|
"importApps": "Import apps from JSON",
|
|
"exportApps": "Export apps to JSON",
|
|
"importPreview": "Import Preview",
|
|
"confirmImport": "Import Apps",
|
|
"importError": "Invalid JSON file format",
|
|
"importCreateError": "Failed to create some apps",
|
|
"noAppsToImport": "No apps to import",
|
|
"remnaWaveToggle": "Toggle RemnaWave source",
|
|
"refreshRemnaWave": "Refresh from RemnaWave",
|
|
"remnaWaveMode": "Showing apps from RemnaWave panel. Read-only mode.",
|
|
"remnaWaveSettings": "RemnaWave Settings",
|
|
"remnaWaveConfigUuid": "Config UUID",
|
|
"remnaWaveConfigUuidHint": "UUID of subscription page config from RemnaWave panel",
|
|
"availableConfigs": "Available configs"
|
|
},
|
|
"tickets": {
|
|
"title": "Ticket Management",
|
|
"total": "Total",
|
|
"list": "Tickets",
|
|
"noTickets": "No tickets",
|
|
"selectTicket": "Select a ticket from the list",
|
|
"allStatuses": "All statuses",
|
|
"statusOpen": "Open",
|
|
"statusPending": "Pending",
|
|
"statusAnswered": "Answered",
|
|
"statusClosed": "Closed",
|
|
"from": "From",
|
|
"created": "Created",
|
|
"user": "User",
|
|
"you": "You",
|
|
"userLabel": "User",
|
|
"adminLabel": "Admin",
|
|
"replyPlaceholder": "Type your reply...",
|
|
"sendReply": "Send Reply",
|
|
"settings": "Settings",
|
|
"supportMode": "Support mode",
|
|
"supportModeDesc": "Choose how users can contact support",
|
|
"modeBoth": "Tickets and contact",
|
|
"modeTickets": "Tickets only",
|
|
"modeContact": "Contact only",
|
|
"slaSettings": "SLA Settings",
|
|
"slaEnabled": "Enable SLA (response time monitoring)",
|
|
"slaEnabledDesc": "Automatic notifications for overdue tickets",
|
|
"slaMinutes": "Response time (minutes)",
|
|
"slaMinutesDesc": "Maximum time to respond to a ticket (1-1440 minutes)",
|
|
"checkInterval": "Check interval (seconds)",
|
|
"checkIntervalDesc": "How often to check for overdue tickets (30-600 seconds)",
|
|
"reminderCooldown": "Reminder interval (minutes)",
|
|
"reminderCooldownDesc": "Minimum time between reminders (1-120 minutes)",
|
|
"settingsUpdateError": "Error saving settings"
|
|
},
|
|
"tariffs": {
|
|
"title": "Tariff Management",
|
|
"subtitle": "Configure tariff plans",
|
|
"create": "Create Tariff",
|
|
"edit": "Edit Tariff",
|
|
"noTariffs": "No tariffs",
|
|
"name": "Name",
|
|
"namePlaceholder": "Enter tariff name",
|
|
"description": "Description",
|
|
"descriptionPlaceholder": "Enter tariff description",
|
|
"trafficLimit": "Traffic Limit",
|
|
"trafficHint": "0 = unlimited traffic",
|
|
"deviceLimit": "Device Limit",
|
|
"tierLevel": "Tier Level",
|
|
"tierHint": "1-10, affects priority during upgrade",
|
|
"unlimited": "Unlimited",
|
|
"devices": "devices",
|
|
"servers": "servers",
|
|
"subscriptions": "subscriptions",
|
|
"trial": "Trial",
|
|
"inactive": "Inactive",
|
|
"activate": "Activate",
|
|
"deactivate": "Deactivate",
|
|
"toggleTrial": "Toggle Trial",
|
|
"delete": "Delete",
|
|
"confirmDelete": "Delete tariff?",
|
|
"confirmDeleteText": "This action cannot be undone. The tariff will be permanently deleted.",
|
|
"days": "days",
|
|
"tabs": {
|
|
"basic": "Basic",
|
|
"prices": "Prices",
|
|
"servers": "Servers"
|
|
},
|
|
"pricesHint": "Enable required periods and set prices (in rubles)",
|
|
"periodDisabled": "Disabled",
|
|
"serversHint": "Select servers available for this tariff. You can set individual traffic limits for each server.",
|
|
"noServers": "No servers available",
|
|
"serverTrafficLimit": "Traffic limit",
|
|
"useDefault": "default"
|
|
},
|
|
"servers": {
|
|
"title": "Server Management",
|
|
"subtitle": "Configure VPN servers",
|
|
"sync": "Sync",
|
|
"syncing": "Syncing...",
|
|
"syncNow": "Sync now",
|
|
"noServers": "No servers. Sync with RemnaWave.",
|
|
"edit": "Edit Server",
|
|
"originalName": "Original Name",
|
|
"displayName": "Display Name",
|
|
"displayNamePlaceholder": "Enter display name",
|
|
"description": "Description",
|
|
"descriptionPlaceholder": "Enter server description",
|
|
"countryCode": "Country Code",
|
|
"price": "Price",
|
|
"priceHint": "Additional server cost",
|
|
"maxUsers": "Max Users",
|
|
"sortOrder": "Sort Order",
|
|
"unlimited": "Unlimited",
|
|
"stats": "Statistics",
|
|
"currentUsers": "Current Users",
|
|
"activeSubscriptions": "Active Subscriptions",
|
|
"usedByTariffs": "Used by Tariffs",
|
|
"trial": "Trial",
|
|
"unavailable": "Unavailable",
|
|
"full": "Full",
|
|
"enable": "Enable",
|
|
"disable": "Disable",
|
|
"toggleTrial": "Toggle Trial",
|
|
"loadError": "Failed to load server"
|
|
}
|
|
},
|
|
"adminDashboard": {
|
|
"title": "Statistics Dashboard",
|
|
"subtitle": "Real-time system overview",
|
|
"refresh": "Refresh",
|
|
"loadError": "Failed to load statistics",
|
|
"stats": {
|
|
"usersOnline": "Users Online",
|
|
"activeSubscriptions": "Active Subscriptions",
|
|
"incomeToday": "Today's Income",
|
|
"incomeMonth": "Monthly Income",
|
|
"incomeTotal": "Total Income",
|
|
"subscriptionIncome": "Subscription Income",
|
|
"total": "total"
|
|
},
|
|
"nodes": {
|
|
"title": "Nodes",
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"disabled": "Disabled",
|
|
"noNodes": "No nodes available",
|
|
"usersOnline": "Online",
|
|
"traffic": "Traffic",
|
|
"enable": "Enable",
|
|
"disable": "Disable"
|
|
},
|
|
"revenue": {
|
|
"title": "Revenue",
|
|
"last7Days": "Last 7 days"
|
|
},
|
|
"subscriptions": {
|
|
"title": "Subscriptions",
|
|
"subtitle": "Subscription statistics",
|
|
"active": "Active",
|
|
"trial": "Trial",
|
|
"paid": "Paid",
|
|
"expired": "Expired",
|
|
"newSubscriptions": "New Subscriptions",
|
|
"today": "Today",
|
|
"week": "Week",
|
|
"month": "Month",
|
|
"conversion": "Trial to Paid Conversion"
|
|
},
|
|
"servers": {
|
|
"title": "Servers",
|
|
"total": "Total Servers",
|
|
"available": "Available",
|
|
"withConnections": "With Connections",
|
|
"revenue": "Revenue"
|
|
},
|
|
"tariffs": {
|
|
"title": "Tariff Statistics",
|
|
"subtitle": "Subscription distribution by tariffs",
|
|
"tariffName": "Tariff",
|
|
"activeSubscriptions": "Active",
|
|
"trialSubscriptions": "Trial",
|
|
"purchasedToday": "Today",
|
|
"purchasedWeek": "Week",
|
|
"purchasedMonth": "Month",
|
|
"noTariffs": "No tariffs"
|
|
}
|
|
},
|
|
"profile": {
|
|
"title": "Profile",
|
|
"accountInfo": "Account Information",
|
|
"telegramId": "Telegram ID",
|
|
"username": "Username",
|
|
"name": "Name",
|
|
"registeredAt": "Registered",
|
|
"emailAuth": "Email Authentication",
|
|
"linkEmailDescription": "Link your email to log in without Telegram. After linking, you'll receive a verification email.",
|
|
"linkEmail": "Link Email",
|
|
"emailRequired": "Email is required",
|
|
"passwordMinLength": "Password must be at least 8 characters",
|
|
"passwordsMismatch": "Passwords do not match",
|
|
"passwordPlaceholder": "Enter password",
|
|
"confirmPasswordPlaceholder": "Confirm password",
|
|
"passwordHint": "Minimum 8 characters",
|
|
"emailSent": "Verification email sent! Please check your inbox.",
|
|
"verified": "Verified",
|
|
"notVerified": "Not verified",
|
|
"verificationRequired": "Please verify your email to use email login.",
|
|
"resendVerification": "Resend Verification Email",
|
|
"verificationResent": "Verification email resent!",
|
|
"canLoginWithEmail": "You can now log in using your email and password.",
|
|
"notifications": {
|
|
"title": "Notification Settings",
|
|
"subscriptionExpiry": "Subscription Expiry",
|
|
"subscriptionExpiryDesc": "Notify about expiring subscription",
|
|
"daysBeforeExpiry": "Days before expiry",
|
|
"trafficWarning": "Traffic Warning",
|
|
"trafficWarningDesc": "Notify when approaching traffic limit",
|
|
"atPercent": "At usage",
|
|
"balanceLow": "Low Balance",
|
|
"balanceLowDesc": "Notify about low balance",
|
|
"threshold": "Threshold",
|
|
"news": "News",
|
|
"newsDesc": "Receive news and service updates",
|
|
"promoOffers": "Promo Offers",
|
|
"promoOffersDesc": "Receive special offers and discounts",
|
|
"unavailable": "Notification settings unavailable"
|
|
}
|
|
},
|
|
"theme": {
|
|
"colors": "Theme Colors",
|
|
"reset": "Reset",
|
|
"accent": "Accent Color",
|
|
"accentDescription": "Main brand color for buttons, links and interactive elements",
|
|
"darkTheme": "Dark Theme",
|
|
"lightTheme": "Light Theme",
|
|
"background": "Background",
|
|
"surface": "Surface",
|
|
"text": "Text",
|
|
"textSecondary": "Secondary Text",
|
|
"statusColors": "Status Colors",
|
|
"success": "Success",
|
|
"warning": "Warning",
|
|
"error": "Error",
|
|
"preview": "Preview",
|
|
"previewButton": "Primary Button",
|
|
"previewSecondary": "Secondary Button",
|
|
"light": "Light Theme",
|
|
"dark": "Dark Theme"
|
|
},
|
|
"languages": {
|
|
"ru": "Русский",
|
|
"en": "English",
|
|
"zh": "中文",
|
|
"fa": "فارسی"
|
|
},
|
|
"contests": {
|
|
"title": "Contests",
|
|
"error": "Failed to load contests",
|
|
"noContests": "No contests available",
|
|
"days": "days",
|
|
"play": "Play",
|
|
"alreadyPlayed": "Already played",
|
|
"enterAnswer": "Enter your answer",
|
|
"submit": "Submit",
|
|
"imHere": "I'm here!"
|
|
},
|
|
"polls": {
|
|
"title": "Polls",
|
|
"error": "Failed to load polls",
|
|
"noPolls": "No polls available",
|
|
"questions": "questions",
|
|
"question": "Question",
|
|
"of": "of",
|
|
"start": "Start",
|
|
"continue": "Continue",
|
|
"completed": "Completed",
|
|
"reward": "$"
|
|
},
|
|
"info": {
|
|
"title": "Information",
|
|
"faq": "FAQ",
|
|
"rules": "Rules",
|
|
"privacy": "Privacy Policy",
|
|
"offer": "Public Offer",
|
|
"noFaq": "No FAQ available",
|
|
"noContent": "No content available",
|
|
"updatedAt": "Updated"
|
|
},
|
|
"onboarding": {
|
|
"skip": "Skip",
|
|
"finish": "Finish",
|
|
"steps": {
|
|
"welcome": {
|
|
"title": "Welcome!",
|
|
"description": "This is your personal cabinet. Here you can manage your subscription, top up balance and connect devices."
|
|
},
|
|
"connectDevices": {
|
|
"title": "Connect Devices",
|
|
"description": "Click this button to get instructions on how to connect VPN on your devices."
|
|
},
|
|
"balance": {
|
|
"title": "Your Balance",
|
|
"description": "Your current balance is displayed here. Click to top it up."
|
|
},
|
|
"subscription": {
|
|
"title": "Subscription Status",
|
|
"description": "Here you can see how many days are left until your subscription expires."
|
|
},
|
|
"quickActions": {
|
|
"title": "Quick Actions",
|
|
"description": "Use these buttons for quick access to main features: top up balance, extend subscription, and invite friends."
|
|
}
|
|
}
|
|
}
|
|
}
|