{ "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", "add": "Add", "and": "and", "edit": "Edit", "delete": "Delete", "collapse": "Collapse", "currency": "$", "refresh": "Refresh", "copy": "Copy", "all": "All", "units": { "gb": "GB", "perGb": "/GB" }, "retry": "Retry", "saving": "Saving...", "understand": "Got it" }, "nav": { "dashboard": "Dashboard", "subscription": "Subscription", "balance": "Balance", "referral": "Referrals", "support": "Support", "profile": "Profile", "logout": "Logout", "contests": "Contests", "polls": "Polls", "info": "Info", "wheel": "Fortune Wheel", "menu": "Menu" }, "notifications": { "ticketNotifications": "Ticket Notifications", "markAllRead": "Mark all read", "noNotifications": "No notifications", "justNow": "Just now", "minutesAgo": "{{count}} min ago", "minutesAgo_one": "{{count}} min ago", "minutesAgo_other": "{{count}} min ago", "hoursAgo": "{{count}} h ago", "hoursAgo_one": "{{count}} h ago", "hoursAgo_other": "{{count}} h ago", "daysAgo": "{{count}} d ago", "daysAgo_one": "{{count}} d ago", "daysAgo_other": "{{count}} d ago", "viewAll": "View all tickets", "newNotification": "New notification", "clickToView": "Click to view", "newTicket": "New ticket: {{title}}", "newReply": "New reply in ticket: {{title}}", "newTicketTitle": "New Ticket", "newReplyTitle": "New Reply", "newUserReply": "User replied in ticket: {{title}}", "newUserReplyTitle": "User Reply" }, "wsNotifications": { "balance": { "topupTitle": "Balance topped up", "topupMessage": "Your balance has been topped up by {{amount}} {{currency}}", "changeTitle": "Balance updated", "changeMessage": "Your balance has changed by {{amount}} {{currency}}" }, "subscription": { "activatedTitle": "Subscription activated", "activatedMessage": "Your subscription is now active!", "activatedWithTariff": "Your subscription \"{{tariff}}\" is now active!", "renewedTitle": "Subscription renewed", "renewedMessage": "Your subscription has been renewed!", "renewedWithAmount": "Your subscription has been renewed for {{amount}} {{currency}}", "expiringTitle": "Subscription expiring soon", "expiringMessage": "Your subscription expires in {{days}} days", "expiredTitle": "Subscription expired", "expiredMessage": "Your subscription has expired. Renew to continue using the service.", "dailyDebitTitle": "Daily charge", "dailyDebitMessage": "Daily subscription fee: {{amount}} {{currency}}", "trafficResetTitle": "Traffic reset", "trafficResetMessage": "Your traffic limit has been reset" }, "autopay": { "successTitle": "Auto-renewal successful", "successMessage": "Your subscription was auto-renewed for {{amount}} {{currency}}", "failedTitle": "Auto-renewal failed", "failedMessage": "Failed to auto-renew your subscription", "insufficientTitle": "Insufficient funds", "insufficientMessage": "Need {{required}} {{currency}} for renewal, but balance is {{balance}} {{currency}}" }, "account": { "bannedTitle": "Account blocked", "bannedMessage": "Your account has been blocked", "unbannedTitle": "Account unblocked", "unbannedMessage": "Your account has been unblocked", "warningTitle": "Warning", "warningMessage": "You have received a warning" }, "referral": { "bonusTitle": "Referral bonus", "bonusMessage": "You received {{amount}} {{currency}} referral bonus!", "bonusWithName": "You received {{amount}} {{currency}} bonus from {{name}}!", "registeredTitle": "New referral", "registeredMessage": "Someone joined using your referral link!", "registeredWithName": "{{name}} joined using your referral link!" }, "payment": { "receivedTitle": "Payment received", "receivedMessage": "Payment of {{amount}} {{currency}} received" } }, "successNotification": { "balanceTopup": { "title": "Balance topped up!" }, "subscriptionActivated": { "title": "Subscription activated!" }, "subscriptionRenewed": { "title": "Subscription renewed!" }, "subscriptionPurchased": { "title": "Subscription purchased!" }, "amount": "Amount", "price": "Price", "newBalance": "New balance", "tariff": "Tariff", "validUntil": "Valid until", "goToSubscription": "Go to Subscription", "goToBalance": "Go to Balance" }, "auth": { "login": "Login", "register": "Register", "logout": "Logout", "email": "Email", "password": "Password", "confirmPassword": "Confirm Password", "firstName": "First Name", "firstNamePlaceholder": "Your name (optional)", "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?", "or": "or", "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", "referralInvite": "You've been invited via referral link!", "passwordMismatch": "Passwords do not match", "passwordTooShort": "Password must be at least 8 characters", "invalidEmail": "Please enter a valid email address", "emailAlreadyRegistered": "This email is already registered", "invalidCredentials": "Invalid email or password", "tooManyAttempts": "Too many attempts. Please try again later", "verificationEmailNotice": "After registration, a verification email will be sent to your address", "checkEmail": "Check your email", "verificationSent": "We sent a verification link to:", "clickLinkToVerify": "Click the link in the email to verify your account and log in.", "backToLogin": "Back to login", "emailNotVerified": "Please verify your email first", "forgotPasswordHint": "Enter your email to receive a reset link", "loginSuccess": "Login successful", "passwordResetSent": "Password reset link sent to your email", "sendResetLink": "Send reset link" }, "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.", "redirecting": "Redirecting to dashboard...", "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", "devices_one": "{{count}} device", "devices_other": "{{count}} devices", "serversLabel": "Servers", "servers_one": "{{count}} server", "servers_other": "{{count}} 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", "days_one": "{{count}} day", "days_other": "{{count}} days", "hours": "h", "hours_one": "{{count}} h", "hours_other": "{{count}} h", "minutes": "m", "minutes_one": "{{count}} m", "minutes_other": "{{count}} 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", "daysBeforeExpiry_one": "{{count}} day before expiry", "daysBeforeExpiry_other": "{{count}} days before expiry", "selectPeriod": "Select Period", "selectTraffic": "Select Traffic", "selectServers": "Select Servers", "selectDevices": "Devices", "perDevice": "/ device", "devicesFree": "devices free", "devicesFree_one": "{{count}} device free", "devicesFree_other": "{{count}} devices free", "perExtraDevice": "/ extra device", "extraDevices": "Extra devices", "extraDevicesIncluded": "Incl. {{count}} extra dev.", "extraDevicesIncluded_one": "Incl. {{count}} extra dev.", "extraDevicesIncluded_other": "Incl. {{count}} extra dev.", "baseTariff": "Tariff", "perMonth": "/mo", "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", "titlePaid": "Trial Subscription", "description": "Try our VPN service!", "days": "days", "days_one": "{{count}} day", "days_other": "{{count}} days", "devices": "devices", "devices_one": "{{count}} device", "devices_other": "{{count}} devices", "price": "Price", "activate": "Activate Free", "payAndActivate": "Pay & Activate", "topUpToActivate": "Top Up Balance", "insufficientBalance": "Top up your balance to activate", "unavailable": "Trial is not available" }, "trialBanner": { "title": "Trial period active", "description": "You have {{days}} days left in your trial. Subscribe to continue using the service.", "upgrade": "Choose a plan" }, "trialInfo": { "title": "Trial Period", "description": "You are using a trial version. Choose a plan below for full access.", "remaining": "remaining", "upgradeNow": "Choose a plan" }, "trialUpgrade": { "title": "Choose a plan to continue", "description": "Your trial period is ending soon. Select a plan to continue using VPN without restrictions." }, "expired": { "title": "Subscription expired", "selectTariff": "Your subscription has expired. Choose a plan below to restore access to VPN." }, "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", "instructions": "Instructions", "changeApp": "Change app", "selectPlatform": "Select platform", "app": "app", "apps": "apps" }, "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", "insufficientBalance": "Insufficient balance to resume subscription", "pausedInfo": "Subscription paused", "pausedDescription": "Charges stopped. Subscription will be active until", "nextCharge": "Until next charge", "willBeCharged": "Will be charged", "days_one": "{{count}} day", "days_few": "{{count}} days", "days_many": "{{count}} days", "days": "d.", "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", "dailyPayment": "Daily payment", "dailyChargeDescription": "Charged daily from your balance" }, "switchTraffic": { "title": "Change Traffic", "currentPackage": "Current package", "newPackage": "New package", "switch": "Change", "switched": "Traffic changed" }, "purchasedTraffic": "Purchased Traffic", "trafficResetAt": "Reset", "additionalOptions": { "title": "Additional options", "buyDevices": "Buy more devices", "currentDeviceLimit_one": "Current limit: {{count}} device", "currentDeviceLimit_other": "Current limit: {{count}} devices", "maxDevices": "max {{count}}", "devicesUnavailable": "Device purchase is not available", "devicesUnit": "devices", "buy": "Buy", "reduceDevices": "Reduce devices", "reduceDevicesTitle": "Reduce device limit", "reduceDevicesDescription": "You can reduce the number of devices to the tariff minimum", "minDeviceLimit_one": "Tariff minimum: {{count}} device", "minDeviceLimit_other": "Tariff minimum: {{count}} devices", "connectedDevices_one": "Connected devices: {{count}}", "connectedDevices_other": "Connected devices: {{count}}", "disconnectDevicesFirst_one": "Disconnect devices first to reduce the limit below {{count}} device", "disconnectDevicesFirst_other": "Disconnect devices first to reduce the limit below {{count}} devices", "reduceUnavailable": "Device reduction is not available", "alreadyAtMinDeviceLimit": "Already at minimum device limit for your tariff", "reduce": "Reduce", "reducing": "Reducing...", "newDeviceLimit_one": "New limit: {{count}} device", "newDeviceLimit_other": "New limit: {{count}} devices", "buyTraffic": "Buy more traffic", "currentTrafficLimit": "Current limit: {{limit}} GB (used {{used}} GB)", "buyTrafficTitle": "Buy more traffic", "trafficWarning": "Purchased traffic is added to your current limit and does not carry over to the next period", "trafficUnavailable": "Traffic purchase is not available for your tariff", "unlimited": "Unlimited", "buyTrafficGb": "Buy {{gb}} GB", "manageServers": "Server management", "manageServersTitle": "Server management" }, "serverManagement": { "statusLegend": "✅ — connected • ➕ — will be added (paid) • ➖ — will be disconnected", "discountBanner": "Your server discount: -{{percent}}%", "forDays": "(for {{days}} days)", "perMonth": "/mo", "unavailable": "Unavailable", "toAdd": "Add:", "toDisconnect": "Disconnect:", "paymentProrated": "Payment (prorated for remaining days):", "applyChanges": "Apply changes", "selectServersHint": "Select servers to connect or disconnect", "noServersAvailable": "No servers available to manage" }, "legacy": { "selectTariffTitle": "Select a tariff to renew", "selectTariffDescription": "Your current subscription was created before tariffs were introduced. To renew, please select one of the available tariffs.", "currentSubContinues": "Your current subscription will remain active until it expires." }, "promoGroup": { "yourGroup": "Your group: {{name}}", "personalDiscountsApplied": "Personal discounts applied to prices" }, "tariff": { "perDay": "/ day", "flexiblePayment": "Flexible payment", "selectForRenewal": "Select for renewal" }, "customDays": { "title": "Custom number of days", "perDay": "/day" }, "customTraffic": { "label": "Traffic", "selectVolume": "Select traffic volume", "default": "Default: {{label}}" }, "summary": { "period": "Period: {{label}}", "traffic": "Traffic: {{gb}} GB" } }, "balance": { "title": "Balance", "currentBalance": "Current Balance", "topUp": "Top Up", "topUpBalance": "Top Up Balance", "enterAmount": "Enter amount", "paymentMethod": "Payment Method", "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", "selectPaymentMethod": "Select payment method", "insufficientFunds": "Insufficient funds", "topUpToComplete": "Top up your balance to complete the purchase", "missing": "Missing", "noPaymentMethods": "No payment methods available", "paymentMethods": { "yookassa": { "description": "Pay via YooKassa" }, "cryptobot": { "description": "Pay with cryptocurrency via CryptoBot" }, "telegram_stars": { "description": "Pay with Telegram Stars" }, "heleket": { "description": "Pay with cryptocurrency via Heleket" }, "mulenpay": { "description": "Pay via MulenPay" }, "pal24": { "description": "Pay via PAL24" }, "platega": { "description": "Pay via Platega" }, "wata": { "description": "Pay via Wata" }, "cloudpayments": { "description": "Pay with bank card via CloudPayments" }, "freekassa": { "description": "Pay via FreeKassa" }, "tribute": { "description": "Pay with bank card via Tribute" } }, "pendingPayments": { "title": "Pending Payments", "pay": "Pay", "checkStatus": "Check Status", "checking": "Checking..." }, "paymentReady": "Payment link is ready", "clickToOpenPayment": "Click the button below to open the payment page in a new tab", "openPaymentPage": "Open payment page", "errors": { "noPaymentLink": "Server did not return a payment link", "starsOnlyInTelegram": "Stars payment is only available in Telegram Mini App", "generic": "Error: {{details}}", "invoiceFailed": "Failed to create invoice", "rateLimit": "Please wait {{seconds}} sec.", "selectMethod": "Select a method", "enterAmount": "Enter an amount", "amountRange": "Amount: {{min}} – {{max}} ₽" }, "paymentSuccess": { "title": "Payment Successful", "message": "Your balance has been topped up successfully. The funds are now available." } }, "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" }, "disabled": "Referral program is currently disabled" }, "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", "tooManyRequests": "Too many requests. Please wait {{seconds}} sec.", "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", "days_one": "{{count}} day", "days_other": "{{count}} 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.", "starsPaymentRedirected": "Telegram will open for payment. Refresh the page after payment.", "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": { "groups": { "analytics": "Analytics", "marketing": "Marketing", "system": "System", "tariffs": "Tariffs & Sales", "users": "Users" }, "nav": { "title": "Admin", "dashboard": "Dashboard", "tickets": "Tickets", "settings": "Settings", "apps": "Apps", "wheel": "Wheel", "tariffs": "Tariffs", "servers": "Servers", "banSystem": "Ban Monitoring", "broadcasts": "Broadcasts", "users": "Users", "payments": "Payments", "remnawave": "RemnaWave", "emailTemplates": "Email Templates", "paymentMethods": "Payment Methods", "campaigns": "Campaigns", "promoOffers": "Promo Offers", "promocodes": "Promo Codes", "promoGroups": "Discount Groups" }, "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", "banSystemDesc": "Ban monitoring and violations", "broadcastsDesc": "Mass messaging to users", "usersDesc": "Manage bot users", "paymentsDesc": "Payment verification", "remnawaveDesc": "Panel management and statistics", "emailTemplatesDesc": "Manage email notification templates", "paymentMethodsDesc": "Configure payment methods and order", "campaignsDesc": "Advertising campaigns", "promoOffersDesc": "Personal discounts", "promocodesDesc": "Manage promo codes", "promoGroupsDesc": "Discount groups for users" }, "emailTemplates": { "title": "Email Templates", "description": "Manage email notification templates", "subject": "Subject", "subjectPlaceholder": "Email subject line...", "body": "Body (HTML)", "bodyHint": "HTML content that will be wrapped in the base email template with header and footer.", "preview": "Preview", "sendTest": "Send Test", "resetDefault": "Reset to Default", "resetConfirm": "Reset this template to the default version?", "unsavedWarning": "Unsaved changes will be lost. Continue?", "custom": "Custom", "default": "Default", "saved": "Template saved", "resetted": "Template reset to default", "testSent": "Test email sent", "variables": "Available Variables", "clickToCopy": "Click to copy", "previewDesktopOnly": "Preview is only available in the desktop web version", "previewNotAvailable": "Preview not available" }, "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...", "prev": "Previous", "next": "Next" }, "paymentMethods": { "title": "Payment Methods", "description": "Configure display order and conditions", "enabled": "On", "disabled": "Off", "notConfigured": "Not configured", "dragToReorder": "Drag to reorder", "dragHint": "Drag cards to change order. Click to configure.", "saveOrder": "Save Order", "orderSaved": "Order saved", "saved": "Settings saved", "noMethods": "No payment methods configured", "methodEnabled": "Method enabled", "providerNotConfigured": "Provider not configured in env", "displayName": "Display name", "displayNameHint": "Leave empty for default name", "subOptions": "Payment options", "minAmount": "Min amount (kopeks)", "maxAmount": "Max amount (kopeks)", "conditions": "Display conditions", "userTypeFilter": "User type", "userTypeAll": "All", "userTypeTelegram": "Telegram", "userTypeEmail": "Email", "firstTopupFilter": "First top-up", "firstTopupAny": "Any", "firstTopupYes": "Made", "firstTopupNo": "Not made", "firstTopupWas": "Was", "firstTopupWasNot": "Was not", "promoGroupFilter": "Promo groups", "promoGroupAll": "All groups", "promoGroupSelected": "Selected", "promoGroupsShort": "groups", "noPromoGroups": "No promo groups", "cancelButton": "Cancel", "saveButton": "Save" }, "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", "traffic2days": "2 days", "traffic7days": "7 days", "traffic30days": "30 days", "trafficMonth": "Month", "trafficYear": "Year", "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?", "usersOnline": "online", "usersOnlineCount_one": "{{count}} online", "usersOnlineCount_other": "{{count}} online", "trafficUsed": "used", "uptimeLabel": "Uptime", "stats": { "total": "Total", "online": "Online", "offline": "Offline", "disabled": "Disabled", "users": "Users" } }, "squads": { "synced": "Synced", "notSynced": "Not synced", "noSquads": "No squads found", "syncServers": "Sync Servers", "members": "members", "membersCount_one": "{{count}} member", "membersCount_other": "{{count}} members", "inbounds": "inbounds", "inboundsCount_one": "{{count}} inbound", "inboundsCount_other": "{{count}} inbounds", "available": "Available", "unavailable": "Unavailable", "stats": { "total": "Total", "synced": "Synced", "available": "Available", "members": "Members" }, "detail": "Squad Details", "loadError": "Failed to load squad", "info": "Information", "originalName": "Original Name", "countryCode": "Country", "statsTitle": "Statistics", "inboundsList": "Inbounds", "localSettings": "Local Settings", "trialEligible": "Trial Eligible", "price": "Price", "users": "Users" }, "sync": { "autoSync": "Auto Sync", "runNow": "Run", "run": "Run", "running": "Running...", "schedule": "Schedule", "status": "Status", "lastRun": "Last Run", "nextRun": "Next Run", "enabled": "Enabled", "disabled": "Disabled", "success": "Success", "runAutoSyncNow": "Run Auto Sync Now", "fromPanel": "From Panel", "fromPanelDesc": "Import users from RemnaWave to bot", "toPanel": "To Panel", "toPanelDesc": "Export users from bot to RemnaWave" } }, "wheel": { "title": "Fortune Wheel Settings", "enabled": "Enabled", "disabled": "Disabled", "tabs": { "settings": "Settings", "prizes": "Prizes", "statistics": "Statistics" }, "preview": "Preview", "settings": { "enableWheel": "Enable Wheel", "allowSpins": "Allow users to spin the wheel", "spinCost": "Spin Cost", "costInStars": "Cost in Stars", "costInDays": "Cost in Days", "limitsAndRtp": "Limits & RTP", "rtpPercent": "RTP (Return to Player) %", "dailyLimit": "Daily Spin Limit (0 = unlimited)", "minSubDays": "Min subscription days for day payment", "promocodes": "Promocodes", "promoPrefix": "Promo code prefix" }, "prizes": { "addPrize": "Add Prize", "editPrize": "Edit Prize", "noPrizes": "No prizes configured. Add some prizes to enable the wheel.", "deletePrize": "Delete Prize", "confirmDelete": "Are you sure you want to delete this prize? This action cannot be undone.", "dragToReorder": "Drag to reorder", "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", "times_one": "{{count}} time", "times_other": "{{count}} times", "topWins": "Top Wins" } }, "broadcasts": { "title": "Broadcasts", "subtitle": "History and management", "create": "Create Broadcast", "empty": "No broadcasts", "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", "detail": "Broadcast", "createdBy": "Created by", "notFound": "Broadcast not found", "prev": "Previous", "next": "Next", "status": { "queued": "Queued", "inProgress": "Sending", "completed": "Completed", "partial": "Partial", "failed": "Failed", "cancelled": "Cancelled", "cancelling": "Cancelling" }, "filterGroups": { "basic": "Basic", "subscription": "By subscription", "traffic": "By traffic", "registration": "By registration", "activity": "By activity", "source": "By source", "tariff": "By tariff", "email": "Email users" }, "channel": { "telegram": "Telegram", "email": "Email", "both": "Both" }, "selectChannel": "Broadcast channel", "telegramSection": "Telegram broadcast", "emailSection": "Email broadcast", "selectEmailFilter": "Select email audience", "selectEmailFilterPlaceholder": "Select filter...", "emailSubject": "Email subject", "emailSubjectPlaceholder": "Enter email subject...", "emailContent": "Email content", "emailContentHint": "HTML supported", "emailContentPlaceholder": "
Hello, {{user_name}}!
\nYour message here...
", "emailVariables": "Available variables" }, "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", "analytics": "Analytics", "notConfigured": "Not configured", "counterActive": "Active", "counterInactive": "Inactive", "yandexMetrika": "Yandex Metrika", "yandexMetrikaDesc": "Track visitors and analyze website behavior", "counterId": "Counter ID", "yandexIdPlaceholder": "e.g. 87654321", "yandexIdHint": "Numeric ID from metrika.yandex.ru", "googleAds": "Google Ads", "googleAdsDesc": "Conversion tracking for ad campaigns", "conversionId": "Conversion ID", "googleIdPlaceholder": "e.g. AW-123456789", "googleIdHint": "Conversion ID in AW-XXXXXXXXX format", "conversionLabel": "Conversion Label (optional)", "googleLabelPlaceholder": "e.g. AbCdEfGhIjKl", "googleLabelHint": "Conversion label for event tracking", "analyticsHint": "Counters are automatically embedded on all cabinet pages. After saving an ID, scripts are loaded on the next page load. To remove a counter, clear the field and save.", "inputPlaceholder": "Enter value...", "ctrlEnterHint": "Ctrl+Enter to save", "cancelButton": "Cancel", "saveButton": "Save", "saveHint": "Save (Enter)", "cancelHint": "Cancel (Esc)", "removeFromFavorites": "Remove from favorites", "addToFavorites": "Add to favorites", "enabled": "Enabled", "disabled": "Disabled", "foundCount": "Found: {{count}}", "notFound": "Nothing found", "byQuery": "by query \"{{query}}\"", "accentColor": "Accent color", "animatedBackground": "Animated background", "animatedBackgroundDesc": "Show animated background effects", "autoFullscreen": "Auto fullscreen", "autoFullscreenDesc": "Auto expand in Telegram", "availableThemes": "Available themes", "colors": { "background": "Background", "error": "Error", "success": "Success", "surface": "Surface", "text": "Text", "textSecondary": "Secondary text", "warning": "Warning" }, "customColors": "Custom colors", "darkTheme": "Dark theme", "emailAuth": "Email auth", "emailAuthDesc": "Allow login via email", "favoritesEmpty": "No favorites yet", "favoritesHint": "Star settings to add them here", "interfaceOptions": "Interface options", "lightTheme": "Light theme", "logoAndName": "Logo & name", "notSpecified": "Not specified", "projectName": "Project name", "quickPresets": "Quick presets", "resetAllColors": "Reset all colors", "statusColors": "Status colors" }, "theme": { "accentColor": "Accent color", "customizeColors": "Customize colors", "hexCode": "HEX code", "hue": "Hue", "lightness": "Lightness", "quickPresets": "Quick presets", "saturation": "Saturation" }, "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", "settingsSubtitle": "Configure ticket system and SLA", "settingsLoadError": "Failed to load 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", "copyTelegramId": "Click to copy Telegram ID", "cabinetNotifications": "Cabinet Notifications", "userNotificationsEnabled": "User Notifications", "userNotificationsEnabledDesc": "Send notifications to users about admin replies", "adminNotificationsEnabled": "Admin Notifications", "adminNotificationsEnabledDesc": "Send notifications to admins about new tickets and replies" }, "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", "devices_one": "{{count}} device", "devices_other": "{{count}} devices", "servers": "servers", "servers_one": "{{count}} server", "servers_other": "{{count}} servers", "subscriptions": "subscriptions", "subscriptions_one": "{{count}} subscription", "subscriptions_other": "{{count}} 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.", "confirmDeleteWithSubscriptions": "This tariff has {{count}} active subscriptions. After deletion, users will need to select a new tariff when renewing.", "deleteSuccess": "Tariff deleted successfully", "days": "days", "days_one": "{{count}} day", "days_other": "{{count}} 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", "selectType": "Select tariff type", "selectTypeDesc": "Choose the billing method for your new tariff", "periodTariff": "Period-based tariff", "periodTariffDesc": "Payment for period (7, 30, 90 days, etc.). Flexible periods and prices.", "dailyTariff": "Daily tariff", "dailyTariffDesc": "Daily deduction from balance. Can be paused.", "editTitle": "Edit tariff", "newPeriodTitle": "New period-based tariff", "newDailyTitle": "New daily tariff", "periodPayment": "Payment for period", "dailyDeduction": "Daily deduction", "tabBasic": "Basic", "tabPeriods": "Periods", "tabServers": "Servers", "tabExtra": "Additional", "nameLabel": "Tariff name", "nameExamplePeriod": "E.g.: Standard", "nameExampleDaily": "E.g.: Daily", "nameHint": "2 to 50 characters", "descriptionLabel": "Description", "descriptionPlaceholder2": "Brief tariff description", "trafficLimitLabel": "Traffic limit", "gbUnit": "GB", "trafficLimitHint": "0 = unlimited traffic", "deviceLimitLabel": "Devices in tariff", "tierLevelLabel": "Tariff tier level", "tierLevelHint": "Affects upgrade availability between tariffs", "fieldRequired": "Required field", "periodsTabHint": "Add periods and prices for the tariff. Users will be able to choose from the added periods.", "addPeriodTitle": "Add period", "daysLabel": "Days", "priceLabel": "Price (\u20bd)", "addButton": "Add", "noPeriodsHint": "No added periods. Add at least one period.", "daysShort": "d.", "serversTitle": "Servers", "serversTabHint": "Select servers available on this tariff.", "noServersAvailable": "No servers available", "promoGroupsTitle": "Promo Groups", "promoGroupsHint": "Select promo groups that have access to this tariff. If none selected — available to everyone.", "noPromoGroups": "No promo groups", "extraDeviceTitle": "Additional devices", "devicePriceLabel": "Device price (30 days):", "devicePriceHint": "0 = device purchase unavailable", "maxDeviceLabel": "Max. devices on tariff:", "noLimitHint": "0 = no limits", "extraTrafficTitle": "Additional traffic", "trafficMaxLimitLabel": "Max. limit:", "trafficLimitHint2": "(0 = no limits)", "trafficPackagesLabel": "Traffic packages:", "addPackageTitle": "Add package", "noPackagesHint": "No packages added. Add at least one package.", "gbPackageUnit": "GB:", "customDaysTitle": "Custom number of days", "customDaysDesc": "User selects subscription duration", "pricePerDayLabel": "Price per day:", "minDaysLabel": "Min. days:", "maxDaysLabel": "Max. days:", "customTrafficTitle": "Custom traffic volume", "customTrafficDesc": "User selects traffic volume when purchasing", "pricePerGbLabel": "Price per 1 GB:", "minTrafficLabel": "Min. GB:", "maxTrafficLabel": "Max. GB:", "trafficResetModeTitle": "Traffic reset mode", "trafficResetModeDesc": "Defines when used traffic resets for subscribers of this tariff", "resetModeGlobal": "Global setting", "resetModeGlobalDesc": "Use value from bot config", "resetModeDaily": "Daily", "resetModeDailyDesc": "Reset every day", "resetModeWeekly": "Weekly", "resetModeWeeklyDesc": "Reset every week", "resetModeMonthly": "Monthly", "resetModeMonthlyDesc": "Reset every month", "resetModeNever": "Never", "resetModeNeverDesc": "Traffic is not reset", "cancelButton": "Cancel", "savingButton": "Saving...", "saveButton": "Save", "dailyType": "Daily", "periodType": "Period-based", "dailyPriceLabel": "Price per day", "currencyPerDay": "\u20bd/day", "dailyDeductionDesc": "Charged daily from user's balance", "dailyPriceRequired": "Enter a price per day greater than 0", "cannotSave": "Cannot save tariff:", "statusTitle": "Tariff Status", "isActiveLabel": "Active", "isActiveHint": "Inactive tariffs are not shown to users", "isTrialLabel": "Trial tariff", "isTrialHint": "Available for free trial period", "validation": { "nameRequired": "Enter tariff name", "nameLength": "Name must be 2 to 50 characters", "deviceLimitRequired": "Specify number of devices (minimum 1)", "tierLevelInvalid": "Tier level must be between 1 and 10", "fieldsRequired": "Fill in required fields (devices, tier level)", "periodsRequired": "Add at least one period", "dailyPriceRequired": "Enter a price per day greater than 0", "trafficPackagesRequired": "Add at least one traffic package (or disable traffic topup)" } }, "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", "mainSettings": "Main Settings", "pricingAndLimits": "Pricing & Limits", "updateError": "Failed to save changes" }, "campaigns": { "title": "Ad Campaigns", "subtitle": "Manage advertising links", "createButton": "Create", "noData": "No ad campaigns", "bonusType": { "balance": "Balance", "subscription": "Subscription", "tariff": "Tariff", "none": "Link only" }, "overview": { "totalCampaigns": "Total campaigns", "active": "Active", "registrations": "Registrations", "bonusesIssued": "Bonuses issued" }, "table": { "inactive": "Inactive", "registrations_one": "{{count}} registration", "registrations_other": "{{count}} registrations", "revenue": "{{amount}} revenue", "conversion": "{{rate}}% conversion", "statistics": "Statistics", "deactivate": "Deactivate", "activate": "Activate", "edit": "Edit", "delete": "Delete" }, "modal": { "editTitle": "Edit Campaign", "createTitle": "New Campaign", "close": "Close" }, "form": { "name": "Name", "namePlaceholder": "E.g.: Instagram Ad", "startParameter": "Label (start parameter)", "startParameterHint": "Latin letters, digits, _ and - only", "bonusType": "Bonus type", "balanceBonus": "Balance bonus", "trialSubscription": "Trial subscription", "days": "Days", "trafficGb": "Traffic (GB)", "devices": "Devices", "servers": "Servers", "tariff": "Tariff", "selectTariff": "Select tariff", "notSelected": "Not selected", "tariffOption": "{{traffic}} GB, {{devices}} dev.", "durationDays": "Duration (days)", "noBonusDescription": "Campaign without bonuses — only for tracking clicks and registrations.", "active": "Active", "cancel": "Cancel", "save": "Save", "saving": "Saving..." }, "stats": { "title": "Campaign Statistics", "loadError": "Failed to load statistics", "detailedStats": "Detailed Statistics", "registrations": "Registrations", "revenue": "Revenue", "paidUsers": "Paid", "conversion": "Conversion", "bonusesIssued": "Bonuses issued", "subscriptionsIssued_one": "{{count}} subscription", "subscriptionsIssued_other": "{{count}} subscriptions", "tariffsIssued_one": "{{count}} tariff", "tariffsIssued_other": "{{count}} tariffs", "avgRevenuePerUser": "Avg revenue per user", "avgFirstPayment": "Avg first payment", "trialSubscriptions": "Trial subscriptions", "trialCount": "{{total}} (active: {{active}})", "trialConversion": "Trial conversion", "lastRegistration": "Last registration", "active": "Active", "inactive": "Inactive", "copy": "Copy", "copied": "Copied!", "users": "Users", "noUsers": "No registered users", "paid": "Paid", "hasSub": "Has sub" }, "users": { "title": "Campaign Users", "campaignRegistrations": "{{name}} — {{count}} registrations", "noUsers": "No registered users", "user": "User", "bonus": "Bonus", "balance": "Balance", "status": "Status", "date": "Date", "noName": "No name", "paid": "Paid", "prev": "Prev", "next": "Next", "pageOf": "{{page}} of {{totalPages}}" }, "confirm": { "deleteTitle": "Delete campaign?", "deleteText": "This action cannot be undone. Campaigns with registrations cannot be deleted.", "cancel": "Cancel", "delete": "Delete" }, "loadError": "Failed to load campaign", "updateError": "Failed to save changes" }, "promocodes": { "title": "Promo Codes", "subtitle": "Manage promo codes and discount groups", "addPromocode": "Add promo code", "addGroup": "Add group", "noPromocodes": "No promo codes", "noGroups": "No discount groups", "firstPurchase": "First purchase", "used": "Used", "until": "Until", "discountForHours": "-{{percent}}% for {{hours}}h", "tabs": { "promocodes_one": "Promo codes ({{count}} code)", "promocodes_other": "Promo codes ({{count}} codes)", "groups_one": "Discount groups ({{count}} group)", "groups_other": "Discount groups ({{count}} groups)" }, "type": { "balance": "Balance", "subscriptionDays": "Subscription days", "trialSubscription": "Trial subscription", "promoGroup": "Discount group", "discount": "Discount %" }, "modal": { "editPromocode": "Edit promo code", "newPromocode": "New promo code", "editGroup": "Edit group", "newGroup": "New discount group", "close": "Close", "edit": "Edit" }, "form": { "code": "Promo code", "type": "Promo code type", "typeBalance": "Balance top-up", "typeSubscriptionDays": "Subscription days", "typeTrialSubscription": "Trial subscription", "typePromoGroup": "Discount group", "typeDiscount": "Percentage discount", "bonusAmount": "Bonus amount", "rub": "RUB", "daysCount": "Number of days", "days": "days", "discountGroup": "Discount group", "selectGroup": "Select group...", "discountPercent": "Discount percent", "discountHint": "Discount is applied once at payment", "validityPeriod": "Validity period", "hours": "hours", "validityHint": "How many hours after activation the discount is valid", "maxUses": "Max uses", "unlimitedHint": "0 = unlimited", "validUntil": "Valid until", "validUntilHint": "Leave empty for unlimited promo code", "active": "Active", "firstPurchaseOnly": "First purchase only", "cancel": "Cancel", "saving": "Saving...", "save": "Save" }, "stats": { "title": "Promo code statistics", "notFound": "Promo code not found", "totalUses": "Total uses", "today": "Today", "remaining": "Remaining", "details": "Promo code details", "type": "Type", "bonus": "Bonus", "daysLabel": "Days", "discountLabel": "Discount", "validFor": "Valid for", "hoursValue_one": "{{count}} hour", "hoursValue_other": "{{count}} hours", "limit": "Limit", "status": "Status", "active": "Active", "inactive": "Inactive", "created": "Created", "validUntil": "Valid until", "unlimited": "Unlimited", "restriction": "Restriction", "firstPurchaseOnly": "First purchase only", "usageHistory": "Usage history", "noUsages": "Promo code has not been used yet", "totalPromocodes": "Total promo codes", "activeCount": "Active", "usagesCount": "Uses", "exhausted": "Exhausted" }, "actions": { "stats": "Statistics", "edit": "Edit", "delete": "Delete" }, "groups": { "name": "Group name", "namePlaceholder": "VIP clients", "categoryDiscounts": "Category discounts", "servers": "Servers", "traffic": "Traffic", "devices": "Devices", "periodDiscounts": "Period discounts", "add": "Add", "periodDiscountsHint": "Discount is applied when purchasing a subscription for the specified number of days", "noPeriodDiscounts": "No period discounts", "daysPlaceholder": "Days", "daysArrow": "days →", "autoAssign": "Auto-assign when spending from", "autoAssignHint": "0 = do not assign automatically", "applyToAddons": "Apply to additional services", "default": "Default", "daysShort": "{{days}} d.", "autoFrom": "Auto from {{amount}} RUB", "members_one": "{{count}} member", "members_other": "{{count}} members" }, "confirm": { "deletePromocode": "Delete promo code?", "deleteGroup": "Delete group?", "deletePromocodeText": "The promo code will be permanently deleted.", "deleteGroupText": "The group will be deleted. Users will lose discounts from this group.", "deleteButton": "Delete" }, "validation": { "codeRequired": "Enter promo code", "balanceRequired": "Bonus amount must be greater than 0", "daysRequired": "Number of days must be greater than 0", "groupRequired": "Select a discount group", "discountPercentInvalid": "Discount percent must be between 1 and 100", "discountHoursRequired": "Specify the discount validity period in hours" } }, "promoGroups": { "title": "Discount Groups", "subtitle": "Manage discount groups for users", "addGroup": "Add Group", "noGroups": "No discount groups", "default": "Default", "servers": "Servers", "traffic": "Traffic", "devices": "Devices", "daysShort": "{{days}} days", "autoFrom": "Auto from {{amount}} rub.", "members": "{{count}} members", "createTitle": "Create Discount Group", "editTitle": "Edit Group", "stats": { "total": "Total groups", "members": "Members", "autoAssign": "With auto-assign" }, "actions": { "edit": "Edit", "delete": "Delete" }, "confirm": { "title": "Delete group?", "text": "The group will be deleted. Users will lose discounts from this group.", "cancel": "Cancel", "delete": "Delete" }, "form": { "name": "Group name", "namePlaceholder": "VIP customers", "categoryDiscounts": "Category discounts", "periodDiscounts": "Period discounts", "add": "Add", "periodHint": "Discount is applied when purchasing a subscription for the specified number of days", "noPeriods": "No period discounts", "daysPlaceholder": "Days", "arrow": "days →", "autoAssign": "Auto-assign when spent from", "rub": "rub.", "autoAssignHint": "0 = don't auto-assign", "applyToAddons": "Apply to additional services", "cancel": "Cancel", "saving": "Saving...", "save": "Save" } }, "users": { "title": "Users", "subtitle": "Bot user management", "search": "Search by ID, name, username...", "searchEmail": "Search by email...", "noData": "No users found", "purchaseCount_one": "{{count}} purchase", "purchaseCount_other": "{{count}} purchases", "noPurchases": "No purchases", "stats": { "total": "Total", "active": "Active", "withSubscription": "With subscription", "newToday": "New today", "blocked": "Blocked" }, "status": { "active": "Active", "blocked": "Blocked", "deleted": "Deleted", "subscription": "Subscription", "trial": "Trial", "expired": "Expired" }, "filters": { "allStatuses": "All statuses", "byDate": "By date", "byBalance": "By balance", "byActivity": "By activity", "bySpent": "By spending" }, "pagination": { "showing": "Showing {{from}}-{{to}} of {{total}}" }, "actions": { "block": "Block", "unblock": "Unblock", "apply": "Apply", "applying": "Applying..." }, "confirm": { "block": "Block this user?" }, "userActions": { "delete": "Delete user", "resetTrial": "Reset trial", "resetSubscription": "Reset subscription", "disable": "Disable user", "error": "Failed to perform action", "success": { "delete": "User successfully deleted", "resetTrial": "Trial successfully reset", "resetSubscription": "Subscription successfully reset", "disable": "User successfully disabled" }, "confirmDelete": { "title": "Delete user?", "message": "Are you sure? This action is irreversible. All user data will be deleted." }, "confirmResetTrial": { "title": "Reset trial?", "message": "The user will be able to use the trial period again." }, "confirmResetSubscription": { "title": "Reset subscription?", "message": "The user's current subscription will be cancelled." }, "confirmDisable": { "title": "Disable user?", "message": "The user will not be able to use the service until reactivated." } }, "detail": { "tabs": { "info": "Information", "subscription": "Subscription", "balance": "Balance", "sync": "Synchronization" }, "status": "Status", "language": "Language", "registration": "Registration", "lastActivity": "Last activity", "totalSpent": "Total spent", "purchases": "Purchases", "referral": { "title": "Referral program", "referrals": "Referrals", "earned": "Earned", "commission": "Commission" }, "restrictions": { "title": "Restrictions", "topup": "• Top-up prohibited", "subscription": "• Subscription purchase prohibited", "reason": "Reason" }, "subscription": { "current": "Current subscription", "tariff": "Tariff", "notSpecified": "Not specified", "validUntil": "Valid until", "traffic": "Traffic", "devices": "Devices", "actions": "Actions", "extend": "Extend", "changeTariff": "Change tariff", "cancel": "Cancel", "activate": "Activate", "days": "Days", "selectTariff": "Select tariff", "unavailable": "(unavailable)", "noActive": "No active subscription", "create": "Create subscription", "creating": "Creating..." }, "balance": { "current": "Current balance", "amountPlaceholder": "Amount in rubles", "descriptionPlaceholder": "Description (optional)", "add": "Add", "subtract": "Deduct", "addByAdmin": "Added by admin", "subtractByAdmin": "Deducted by admin", "recentTransactions": "Recent transactions" }, "sync": { "hasDifferences": "Differences found", "synced": "Synchronized", "bot": "Bot", "panel": "Panel", "statusLabel": "Status", "until": "Until", "traffic": "Traffic", "devices": "Devices", "squads": "Squads", "notLinked": "Not linked", "fromPanel": "From panel to bot", "toPanel": "From bot to panel" } } }, "promoOffers": { "title": "Promo Offers", "subtitle": "Templates, broadcasts and offer logs", "sendButton": "Send", "tabs": { "templates_one": "Templates ({{count}} template)", "templates_other": "Templates ({{count}} templates)", "logs": "Logs" }, "noData": { "templates": "No templates", "logs": "No records" }, "status": { "active": "Active", "inactive": "Inactive" }, "table": { "discount": "Discount", "offerDuration": "Offer duration", "hoursShort": "{{hours}}h", "discountDuration": "Discount duration", "testAccess": "Test access" }, "form": { "editTemplate": "Edit template", "templateName": "Template name", "messageText": "Message text", "buttonText": "Button text", "validHours": "Offer duration (hours)", "activationTime": "Time to activate", "discountPercent": "Discount (%)", "testDurationHours": "Access duration (hours)", "defaultZero": "0 = default", "activeDiscountHours": "Discount validity (hours)", "discountDurationHint": "How long the discount lasts after activation", "templateActive": "Template active", "saving": "Saving..." }, "send": { "title": "Send promo offer", "offerTemplate": "Offer template", "discountLabel": "{{percent}}% discount", "hoursToActivate": "{{hours}}h to activate", "sendTo": "Send to", "segment": "Segment", "user": "User", "userIdPlaceholder": "Telegram ID or User ID", "searchUserPlaceholder": "Search by name, username or Telegram ID...", "noUsersFound": "No users found", "hasSubscription": "Sub", "preview": "Preview", "sending": "Sending...", "sendButton": "Send" }, "result": { "sentTitle": "Sent!", "offersCreated_one": "Offer created: {{count}}", "offersCreated_other": "Offers created: {{count}}", "notificationsSent_one": "Notification sent: {{count}}", "notificationsSent_other": "Notifications sent: {{count}}", "notificationsFailed_one": "(failed: {{count}})", "notificationsFailed_other": "(failed: {{count}})", "sendError": "Failed to send offer" }, "notFound": "Template not found", "noActiveTemplates": "No active templates", "backToList": "Back to offers", "sendAnother": "Send another", "actions": { "created": "Created", "claimed": "Claimed", "consumed": "Consumed", "disabled": "Disabled" }, "segments": { "all": "All users", "active": "Active subscribers", "trial": "Trial users", "trialEnding": "Trial ending", "expiring": "Subscription expiring", "expired": "Expired subscription", "zero": "Zero balance", "autopayFailed": "Autopay failed", "lowBalance": "Low balance", "inactive30d": "Inactive 30 days", "inactive60d": "Inactive 60 days", "inactive90d": "Inactive 90 days", "customToday": "Registered today", "customWeek": "Registered this week", "customMonth": "Registered this month", "customActiveToday": "Active today" }, "offerType": { "testAccess": "Test access", "testAccessDesc": "Temporary access to additional servers", "extendDiscount": "Renewal discount", "extendDiscountDesc": "Discount for current subscribers", "purchaseDiscount": "Purchase discount", "purchaseDiscountDesc": "Discount for new users" } } }, "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", "hide": "Hide ({{count}})", "showMore_one": "Show {{count}} more node", "showMore_other": "Show {{count}} more nodes" }, "topReferrers": { "title": "Top referrers", "stats": "ref., {{count}} invites", "byEarnings": "By earnings", "byInvited": "By invites", "invites": "invites", "people": "people" }, "period": { "today": "Today", "week": "Week", "month": "Month" }, "topCampaigns": { "title": "Top campaign links", "stats": "camp., {{count}} reg.", "total": "Total from campaigns" }, "recentPayments": { "title": "Recent payments", "today": "Today: {{amount}}", "week": "For the week: {{amount}}" }, "table": { "user": "User", "type": "Type", "amount": "Amount", "method": "Method", "date": "Date" }, "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" } }, "banSystem": { "title": "Ban Monitoring", "subtitle": "BedolagaBan system management", "contactTelegram": "Write in Telegram", "notConfigured": "Ban system is not configured", "configureHint": "Set BAN_SYSTEM_API_URL and BAN_SYSTEM_API_TOKEN in configuration", "loadError": "Failed to load data", "tabs": { "dashboard": "Dashboard", "users": "Users", "punishments": "Bans", "nodes": "Nodes", "agents": "Agents", "violations": "Violations", "traffic": "Traffic", "reports": "Reports", "settings": "Settings", "health": "Health" }, "stats": { "activeUsers": "Active Users", "total": "Total", "usersOverLimit": "Over Limit", "activeBans": "Active Bans", "nodesOnline": "Nodes Online", "agentsOnline": "Agents Online", "totalRequests": "Total Requests", "panelStatus": "Panel Status", "connected": "Connected", "disconnected": "Disconnected", "uptime": "Uptime" }, "dashboard": { "totalUsers": "Total Users", "activeUsers": "Active Users", "usersOverLimit": "Over Limit", "totalRequests": "Total Requests", "totalPunishments": "Total Punishments", "activePunishments": "Active Bans", "nodesOnline": "Nodes Online", "agentsOnline": "Agents Online", "panelConnected": "Panel Connected", "panelDisconnected": "Panel Disconnected", "uptime": "Uptime" }, "users": { "title": "Users", "searchPlaceholder": "Search by email...", "email": "Email", "uniqueIps": "Unique IPs", "ipCount": "IPs", "requests": "Requests", "limit": "Limit", "status": "Status", "bans": "Bans", "lastSeen": "Last Seen", "overLimit": "Over Limit", "ok": "OK", "normal": "Normal", "noLimit": "No Limit", "noUsers": "No users found", "viewDetails": "View Details", "networkType": "Network Type", "filter": { "all": "All", "overLimit": "Over Limit", "normal": "Normal" } }, "userDetail": { "title": "User Details", "email": "Email", "uniqueIps": "Unique IPs", "totalRequests": "Total Requests", "limit": "Device Limit", "status": "Status", "networkType": "Network Type", "ipHistory": "IP History", "recentRequests": "Recent Requests", "ip": "IP Address", "firstSeen": "First Seen", "lastSeen": "Last Seen", "node": "Node", "requestCount": "Requests", "requests": "Requests", "country": "Country", "city": "City", "timestamp": "Timestamp", "sourceIp": "Source IP", "destination": "Destination", "port": "Port", "protocol": "Protocol", "action": "Action", "noIps": "No IP data", "noRequests": "No request data", "ban": "Ban", "close": "Close" }, "punishments": { "title": "Active Bans", "user": "User", "username": "User", "reason": "Reason", "punishedAt": "Banned At", "bannedAt": "Banned At", "enableAt": "Unban At", "ipCount": "IPs", "limit": "Limit", "node": "Node", "actions": "Actions", "unban": "Unban", "noPunishments": "No active bans", "noBans": "No active bans", "unbanConfirm": "Unban user {{username}}?", "unbanSuccess": "User unbanned", "unbanError": "Unban failed", "history": "Ban History", "searchHistory": "Search history...", "noHistory": "No history found" }, "banModal": { "title": "Ban User", "username": "Username", "usernamePlaceholder": "Enter username", "duration": "Duration (minutes)", "durationPlaceholder": "Enter duration in minutes", "reason": "Reason", "reasonPlaceholder": "Enter ban reason (optional)", "cancel": "Cancel", "ban": "Ban", "success": "User banned", "error": "Ban failed" }, "nodes": { "title": "Nodes", "name": "Name", "address": "Address", "status": "Status", "lastSeen": "Last Seen", "usersCount": "Users", "users": "Users", "online": "Online", "offline": "Offline", "noNodes": "No nodes found", "total": "Total", "onlineCount": "Online" }, "agents": { "title": "Agents", "nodeName": "Node", "node": "Node", "status": "Status", "health": "Health", "sent": "Sent", "dropped": "Dropped", "totalSent": "Total Sent", "totalDropped": "Total Dropped", "batches": "Batches", "reconnects": "Reconnects", "failures": "Failures", "queue": "Queue", "dedup": "Deduplication", "filter": "Filtering", "lastReport": "Last Report", "online": "Online", "offline": "Offline", "healthy": "Healthy", "warning": "Warning", "critical": "Critical", "noAgents": "No agents found", "summary": { "title": "Summary", "totalAgents": "Total Agents", "onlineAgents": "Online", "totalSent": "Total Sent", "totalDropped": "Total Dropped", "avgQueueSize": "Avg Queue Size", "healthyCount": "Healthy", "warningCount": "Warning", "criticalCount": "Critical" } }, "violations": { "title": "Traffic Violations", "user": "User", "username": "User", "email": "Email", "type": "Type", "description": "Description", "bytesUsed": "Used", "bytesLimit": "Limit", "detectedAt": "Detected At", "status": "Status", "resolved": "Resolved", "active": "Active", "noViolations": "No violations found", "yes": "Yes", "no": "No" }, "traffic": { "title": "Traffic Statistics", "enabled": "Traffic Monitoring", "topUsers": "Top by Traffic", "username": "User", "bytesTotal": "Total", "bytesLimit": "Limit", "status": "Status", "overLimit": "Over Limit", "ok": "OK", "recentViolations": "Recent Violations" }, "reports": { "title": "Period Reports", "period": "Period", "currentUsers": "Active Users", "currentIps": "Unique IPs", "topViolators": "Top Violators", "username": "User", "count": "Violations" }, "settings": { "title": "System Settings", "general": "General", "limits": "Limits", "notifications": "Notifications", "whitelist": "Whitelist", "saved": "Setting saved", "error": "Error saving", "categories": { "general": "General Settings", "punishment": "Punishments", "progressive_bans": "Progressive Bans", "traffic": "Traffic Monitoring", "network": "Network Detection", "notifications": "Notifications", "rate_limit": "Rate Limits" }, "punishment_enabled": "Enable auto-ban", "punishment_minutes": "Ban duration (minutes)", "ip_window_seconds": "IP counting window (seconds)", "notify_on_punishment": "Notify on bans", "notify_on_node_status": "Notify on node status", "daily_report_enabled": "Daily report", "daily_report_hour": "Report hour", "rate_limit_max": "Max requests", "rate_limit_window": "Rate limit window (sec)", "heartbeat_timeout": "Heartbeat timeout (sec)", "progressive_bans_enabled": "Progressive bans", "progressive_ban_1": "1st ban (minutes)", "progressive_ban_2": "2nd ban (minutes)", "progressive_ban_3": "3rd ban (minutes)", "progressive_ban_window_hours": "Reset window (hours)", "traffic_monitor_enabled": "Traffic monitoring", "traffic_limit_gb": "Traffic limit (GB)", "traffic_window_minutes": "Check window (min)", "traffic_check_interval": "Check interval (min)", "traffic_ban_minutes": "Traffic ban (min)", "network_detection_enabled": "Network type detection", "network_detection_nodes": "Detection nodes", "network_detection_monitor_all": "Monitor all nodes", "network_detection_collect_all": "Collect from all nodes", "network_notify_mobile": "Notify on mobile", "network_block_mobile": "Block mobile", "network_block_mobile_minutes": "Block mobile (min)", "network_notify_wifi": "Notify on WiFi", "network_block_wifi": "Block WiFi", "network_block_wifi_minutes": "Block WiFi (min)" }, "health": { "title": "System Health", "systemStatus": "System Status", "healthy": "Healthy", "degraded": "Degraded", "unhealthy": "Unhealthy", "components": "Components", "uptime": "Uptime" } }, "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", "invalidEmail": "Please enter a valid email address", "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.", "emailAlreadyRegistered": "This email is already linked to another account. If this is your email, log in with it or contact support.", "alreadyHaveEmail": "You already have a verified email linked.", "changeEmail": { "button": "Change email", "title": "Change Email", "description": "Enter your new email address. A verification code will be sent to it.", "currentEmail": "Current email", "newEmail": "New email", "sendCode": "Send code", "enterCode": "Enter code", "enterCodeDescription": "Enter the verification code sent to your new email.", "verificationCode": "Verification code", "codeSentTo": "Code sent to {{email}}", "verify": "Verify", "resendCode": "Resend code", "resendIn": "Resend in {{seconds}} sec.", "success": "Email changed successfully!", "successDescription": "Your email has been successfully updated.", "emailAlreadyUsed": "This email is already used by another account.", "sameEmail": "New email is the same as current.", "invalidCode": "Invalid verification code.", "codeExpired": "Code has expired. Please request a new one.", "tooManyRequests": "Too many requests. Please try again later." }, "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", "quickPresets": "Quick Presets", "quickPresetsDescription": "Choose a ready-made color scheme", "customColors": "Custom Colors", "customColorsDescription": "Customize each color individually", "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", "days_one": "{{count}} day", "days_other": "{{count}} 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", "questions_one": "{{count}} question", "questions_other": "{{count}} 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", "loyalty": "Loyalty", "noFaq": "No FAQ available", "noContent": "No content available", "updatedAt": "Updated", "noLoyaltyTiers": "Loyalty program is not available yet", "yourProgress": "Your Progress", "totalSpent": "Total spent", "currentStatus": "Current status", "nextStatus": "Next status", "toNextStatus": "To next status", "allStatusesAchieved": "You have achieved the maximum status!", "statusAchieved": "Achieved", "statusCurrent": "Current", "statusLocked": "Locked", "threshold": "Threshold", "discounts": "Discounts", "serverDiscount": "Servers", "trafficDiscount": "Traffic", "deviceDiscount": "Devices", "periodDiscount": "{{days}} days", "noDiscounts": "No discounts" }, "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." } } }, "promo": { "activeDiscount": "Active discount", "discountActive": "Discount active!", "discountDescription": "Your personal discount is applied to subscription purchases", "expiresIn": "Expires in", "source": "Source", "useNow": "Use discount now", "discountApplied": "Discount applied", "time": { "days": "d", "hours": "h", "minutes": "m" }, "offers": { "expired": "Expired", "testAccess": "Test access", "discountPercent": "{{percent}}% off", "specialOffer": "Special offer", "serverAccess_one": "Access to {{count}} server", "serverAccess_other": "Access to {{count}} servers", "additionalServers": "Access to additional servers", "activateDiscountHint": "Activate discount on subscription purchase", "activationFailed": "Failed to activate offer", "discountActiveTitle": "{{percent}}% discount active", "statusActive": "Active", "expires": "Expires: {{time}}", "remaining": "Remaining: {{time}}", "test": "Test", "activating": "Activating...", "activate": "Activate", "serverAccess": "Server access" } }, "telegramRedirect": { "maxRetries": "Maximum retry attempts exceeded. Please try again later.", "redirecting": "Redirecting...", "loginAlternative": "Sign in another way", "openInTelegram": "Open in Telegram", "openInTelegramDesc": "To sign in automatically, open this app through the Telegram bot", "redirectToLogin": "Redirecting to login page..." }, "deepLink": { "connecting": "Connecting to", "redirecting": "Redirecting in", "seconds": "sec", "manual": "If nothing happens, click the button below.", "openApp": "Open App", "copyLink": "Copy subscription link", "copied": "Copied!", "tryAgain": "Try again", "backToCabinet": "Back to cabinet", "errorTitle": "Error", "errorDesc": "Connection link is missing", "goToSubscription": "Go to subscription", "howToAdd": "How to add manually:", "step1": "Copy the link using the button above", "step2": "Open the app", "step3": "Find \"+\" or \"Add subscription\"", "step4": "Select \"From clipboard\" or \"Paste link\"" }, "blocking": { "maintenance": { "title": "Maintenance", "defaultMessage": "Service is temporarily unavailable. Maintenance in progress.", "reason": "Reason", "waitMessage": "Please wait..." }, "channel": { "title": "Channel Subscription", "defaultMessage": "Please subscribe to our channel to continue", "openChannel": "Open Channel", "checkSubscription": "Check Subscription", "checking": "Checking...", "waitSeconds": "Wait {{seconds}} sec.", "hint": "Click check button after subscribing", "notSubscribed": "You haven't subscribed to the channel yet", "checkError": "Check failed. Please try again later." } } }