{ "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", "days": "days", "mo": "mo" }, "retry": "Retry", "saving": "Saving...", "understand": "Got it", "balance": "Balance", "copied": "Copied", "no_results": "No results", "ok": "OK", "processing": "Processing…", "rangeTo": "to" }, "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", "gift": "Gift", "navigation": "Navigation" }, "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" }, "campaignBonus": { "title": "Bonus activated!", "balance": "You received {{amount}} RUB from campaign \"{{name}}\"", "subscription": "You received a {{days}}-day subscription from campaign \"{{name}}\"", "tariff": "You received tariff \"{{tariff}}\" from campaign \"{{name}}\"" }, "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", "devicesAdded": "+{{count}} devices", "devicesPurchased": { "title": "Devices added" }, "totalDevices": "Total devices: {{count}}", "totalTraffic": "Total traffic: {{value}}", "trafficAdded": "+{{value}} traffic", "trafficPurchased": { "title": "Traffic added" } }, "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", "telegramRetryFailed": "Authorization failed. Close the app and try again.", "telegramReopenHint": "If the problem persists, close and reopen the app", "telegramNotConfigured": "Telegram bot is not configured", "telegramUnavailable": "Telegram login is temporarily unavailable", "authenticating": "Authenticating...", "orOpenInApp": "Or open the bot in the app", "loginFailed": "Login Failed", "telegramWidgetBlocked": "Telegram login widget is unavailable. Use the bot to sign in:", "openBotToLogin": "Open bot to sign in", "waitingForConfirmation": "Waiting for confirmation...", "deepLinkExpired": "Link expired. Please try again.", "tryAgain": "Try Again", "scanQrToLogin": "Scan QR code with your phone camera", "orSendCommand": "Or send the bot this command:", "commandCopied": "Command copied", "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", "continueWithGoogle": "Continue with Google", "continueWithYandex": "Continue with Yandex", "continueWithDiscord": "Continue with Discord", "continueWithVk": "Continue with VK", "oauthError": "Authorization was denied or failed", "oauthExpired": "OAuth session expired. Please try again." }, "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", "zone": { "normal": "Normal", "warning": "Moderate", "danger": "High", "critical": "Critical" }, "connectDevice": "Connect Device", "devicesConnected": "{{count}} connected", "devicesOfMax": "{{used}} of {{max}} connected", "devicesConnectedUnlimited": "{{used}} connected · unlimited", "devicesShort": "dev.", "trafficUsage": "{{used}} / {{limit}} GB", "trafficUsageTitle": "Traffic Usage", "usedTraffic": "used {{amount}}", "usedSuffix": "used", "unlimited": "Unlimited", "tariff": "Tariff", "validUntil": "until {{date}}", "remaining": "Remaining", "daysRemaining": "Days left", "usageLast14Days": "Usage last 14 days", "maxUsage": "max {{amount}}", "deviceLimitReached": "Disconnect devices to add new ones", "expired": { "title": "Subscription Expired", "trialTitle": "Trial Expired", "trialSubtitle": "Trial period ended", "paidSubtitle": "Subscription has expired", "renew": "Renew Subscription", "quickRenew": "Quick Renew", "insufficientFunds": "Insufficient balance", "renewError": "Renewal error, try again", "topUp": "Top up balance", "balance": "Balance", "tariffs": "Tariffs", "traffic": "Traffic", "devices": "Devices", "expiredDate": "Expired", "activeUntil": "Active until" }, "suspended": { "title": "Subscription Suspended", "resume": "Resume" }, "trialOffer": { "freeTitle": "Free Trial Available", "paidTitle": "Trial Subscription", "freeDesc": "Try our VPN for free, no commitment required", "paidDesc": "Get started with a trial subscription" }, "stats": { "balance": "Balance", "subscription": "Subscription", "referrals": "Referrals", "earnings": "Earnings" }, "manageAll": "Manage all", "showAll": "Show all", "subscriptions": "Subscriptions" }, "subscription": { "title": "Subscription", "currentPlan": "Current Plan", "status": "Status", "active": "Active", "inactive": "Inactive", "trialStatus": "Trial", "expired": "Expired", "trafficLimited": "Traffic Exhausted", "trafficLimitedTitle": "Traffic Limit Reached", "trafficLimitedDescription": "Your traffic has been exhausted. Purchase additional traffic below to continue using VPN.", "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", "locationsLabel": "Locations", "locations_one": "{{count}} location", "locations_other": "{{count}} locations", "trafficReset": { "DAY": "Resets daily", "WEEK": "Resets weekly", "MONTH": "Resets monthly", "MONTH_ROLLING": "Resets every 30 days" }, "traffic": "Traffic", "unlimited": "Unlimited", "used": "Used", "of": "of", "renew": "Renew", "free": "Free", "extend": "Extend Subscription", "buyTraffic": "Buy Traffic", "buyDevices": "Buy Devices", "renewalOptions": "Renewal Options", "days": "days", "daysShort": "d.", "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", "cta": { "expiredHint": "Choose a plan and pay", "trialHint": "More traffic and devices", "activeHint": "Renewal and plan change", "renewHint": "Subscription expired — renew to continue using" }, "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", "noPeriodsAvailable": "No available periods for renewal", "noPeriodsAvailableHint": "The administrator has changed this plan's settings. Please choose a different plan to renew your subscription.", "chooseDifferentTariff": "Choose a different plan", "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": { "period": "Period: {{label}}", "traffic": "Traffic: {{gb}} GB" }, "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." }, "expiredBanner": { "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", "tutorial": "Tutorial", "notConfigured": "Connection methods are not configured yet", "notConfiguredUser": "Connection setup is in progress. Please check back later.", "notConfiguredAdmin": "No connection apps have been configured. Set them up in the Apps settings.", "goToApps": "Go to Apps settings", "qrTitle": "Subscription QR Code", "qrScanHint": "Scan to connect", "qrButton": "QR Code", "openQr": "Open QR code" }, "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", "renameDevice": "Rename", "renameDeviceSave": "Save", "renameDeviceCancel": "Cancel", "renameDevicePlaceholder": "Device name", "deviceRenamed": "Device name updated", "platform": "Platform", "model": "Model", "connectedAt": "Connected", "pause": { "title": "Subscription Pause", "paused": "Paused", "suspended": "Suspended (insufficient funds)", "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", "buyUnlimited": "Buy Unlimited", "manageServers": "Squad management", "manageServersTitle": "Squad management", "connectedDevices": "Connected devices", "currentDeviceLimit": "Current device limit", "decrementDevices": "Decrease devices", "disconnectDevicesFirst": "Disconnect extra devices first", "incrementDevices": "Add devices", "minDeviceLimit": "Minimum device limit", "newDeviceLimit": "New device limit" }, "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" }, "revoke": { "title": "Reissue Subscription", "button": "Reissue Subscription", "description": "New link, device reset", "warning": "This will generate a new connection link, reset all connected devices, and invalidate the old link. Continue?", "confirmBtn": "Reissue", "cooldown": "Available in {{minutes}} min {{seconds}} sec" }, "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}}" }, "tvQuickConnect": { "title": "Connect TV", "description": "Enter the 5-character code from your TV screen", "sendBtn": "Send to TV", "badCode": "Enter a 5-character code (letters and digits)", "sent": "Sent to TV!", "error": "Failed to send to TV", "scanTitle": "Scan QR Code", "scanDescription": "Scan the QR code from your TV screen", "scanBtn": "Scan QR from TV", "stopScan": "Close camera", "noCamera": "Camera access denied", "codeFound": "Code found" }, "allTariffsPurchased": "All tariffs already purchased", "autopay": "Auto-renew", "backToList": "Back to subscriptions", "confirmDelete": "Delete subscription?", "dailyAutoCharge": "Daily auto-charge", "defaultName": "Subscription", "delete": "Delete", "deleteTitle": "Delete subscription", "get_config": "Get config", "loadError": "Failed to load subscription", "newTariff": "New tariff", "noOptionsAvailable": "No options available", "noRenewalOptions": "No renewal options", "notFound": "Subscription not found", "notFoundDesc": "It may have been deleted or not yet activated", "servers": "Servers", "statusActive": "Active", "statusExpired": "Expired", "statusLimited": "Limited", "statusTrial": "Trial" }, "balance": { "title": "Balance", "currentBalance": "Current Balance", "topUp": "Top Up", "topUpBalance": "Top Up Balance", "enterAmount": "Enter amount", "paymentMethod": "Payment Method", "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" }, "freekassa_sbp": { "description": "Pay via SBP (QR code)" }, "freekassa_card": { "description": "Pay with Russian bank card" }, "tribute": { "description": "Pay with bank card via Tribute" }, "severpay": { "description": "Pay via SeverPay" }, "riopay": { "description": "Pay via RioPay" }, "kassa_ai": { "description": "Pay via Kassa AI" }, "paypear": { "description": "Pay via PayPear" }, "rollypay": { "description": "Pay via RollyPay (SBP)" }, "aurapay": { "description": "Pay via AuraPay" }, "etoplatezhi": { "description": "Pay via Etoplatezhi" }, "antilopay": { "description": "Pay via Antilopay" }, "jupiter": { "description": "Pay via SBP through Jupiter (FPGate P2P)" }, "donut": { "description": "Pay by card or SBP through Donut P2P" }, "lava": { "description": "Pay by card or SBP through Lava Business" }, "apple_iap": { "description": "Pay via Apple In-App Purchase" } }, "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", "inactive": "Promo code is deactivated", "not_yet_valid": "Promo code is not yet active", "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" }, "daysLeft": "Days left: {{count}}", "selectSubscription": "Select a subscription" }, "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", "pendingPayments": { "title": "Pending Payments", "pay": "Pay", "checkStatus": "Check Status", "checking": "Checking..." }, "savedCards": { "title": "Saved Cards", "card": "Card", "unlink": "Unlink", "confirmUnlink": "Are you sure you want to unlink this card? Automatic balance top-up will no longer be possible.", "unlinkSuccess": "Card unlinked successfully", "unlinkError": "Failed to unlink card", "linkedAt": "Linked {{date}}", "noCards": "Card will be saved automatically on next top-up", "pageTitle": "Saved Cards", "backToBalance": "Back", "empty": "No saved cards. A card will be saved automatically on your next top-up.", "loadError": "Failed to load saved cards. Please try again later." }, "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." }, "topUpResult": { "awaitingPayment": "Awaiting Payment", "awaitingPaymentDesc": "We are waiting for your payment confirmation. This may take a few minutes.", "topUpAmount": "Top-up amount", "success": "Balance Topped Up!", "successDesc": "Your balance has been topped up successfully. The funds are now available.", "failed": "Payment Failed", "failedDesc": "Unfortunately, the payment was not completed. Please try again or choose a different payment method.", "timeout": "Taking Longer Than Expected", "timeoutDesc": "Payment processing is taking longer than usual. You can try checking the status again.", "goToBalance": "Go to Balance", "tryAgain": "Try Again" }, "top_up": "Top up balance" }, "referral": { "title": "Referral Program", "yourLink": "Your Referral Links", "botLink": "Bot link", "cabinetLink": "Cabinet link", "copyLink": "Copy", "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!", "anonymousUser": "User #{{id}}", "anonymousReferral": "Referral", "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", "partner": { "becomePartner": "Become a Partner", "becomePartnerDesc": "Apply for the partner program to get higher commission rates and the ability to withdraw your earnings.", "applyButton": "Apply", "applyTitle": "Partner Application", "applyDesc": "Fill out the form below to apply for our partner program. All fields are optional.", "underReview": "Application Under Review", "underReviewDesc": "Your partner application is being reviewed. We'll notify you once a decision is made.", "submittedAt": "Submitted on {{date}}", "partnerStatus": "Partner", "active": "Active", "commissionInfo": "Your partner commission rate is {{percent}}%", "rejected": "Application Rejected", "reapplyButton": "Reapply", "applying": "Submitting...", "submitApplication": "Submit Application", "applyError": "Failed to submit application. Please try again.", "yourCampaigns": "Your campaigns", "campaignLinks": { "bot": "Bot link", "web": "Cabinet link" }, "campaignBonus": { "title": "Referral bonus", "balance": "+{{amount}} to balance", "balanceDesc": "{{amount}} credited on signup", "subscription": "{{days}} days subscription", "subscriptionDesc": "{{days}} days free subscription", "tariff": "Bonus tariff", "tariffDesc": "Free tariff plan" }, "stats": { "registrations": "Registrations", "referrals": "Referrals", "earnings": "Earnings", "conversionRate": "Conversion", "today": "Today", "week": "Week", "month": "Month", "showDetails": "Details", "hideDetails": "Collapse", "vsLastWeek": "vs last week", "topReferrals": "Top Referrals", "noData": "No data", "dailyChart": "30-day trends", "periodComparison": "Period comparison", "noReferrals": "No referrals yet", "paid": "Paid", "pending": "Pending", "active": "Active", "referralsCount": "Referrals", "earningsAmount": "Earned" }, "fields": { "companyName": "Company Name", "companyNamePlaceholder": "Your company or brand name", "telegramChannel": "Telegram Channel", "telegramChannelPlaceholder": "@yourchannel", "websiteUrl": "Website URL", "websiteUrlPlaceholder": "https://example.com", "description": "Description", "descriptionPlaceholder": "Tell us about your audience and how you plan to promote...", "expectedReferrals": "Expected Monthly Referrals", "expectedReferralsPlaceholder": "Estimated number per month", "desiredCommission": "Desired Commission (%)", "desiredCommissionPlaceholder": "From 1 to 100%" } }, "withdrawal": { "title": "Withdrawal", "goToWithdrawal": "Withdraw", "available": "Available", "totalEarned": "Total Earned", "withdrawn": "Withdrawn", "spent": "Spent on Services", "pending": "Pending", "requestButton": "Request Withdrawal", "minAmount": "Minimum withdrawal amount: {{amount}}", "history": "Withdrawal History", "noHistory": "No withdrawal requests yet", "requestTitle": "Request Withdrawal", "requestDesc": "Available for withdrawal: {{available}}", "requesting": "Submitting...", "submitRequest": "Submit Request", "requestError": "Failed to create withdrawal request. Please try again.", "fields": { "amount": "Amount", "amountPlaceholder": "Enter amount in {{currency}}", "amountHint": "Minimum: {{min}} {{currency}}", "paymentDetails": "Payment Details", "paymentDetailsPlaceholder": "Card number, wallet address, or other payment info..." }, "status": { "pending": "Pending", "approved": "Approved", "completed": "Completed", "rejected": "Rejected", "cancelled": "Cancelled" } } }, "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", "create_ticket": "Create ticket" }, "wheel": { "title": "Fortune Wheel", "disabled": "Fortune Wheel is currently unavailable", "prizes": "Prizes", "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", "spinCost": "Spin cost", "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.", "noSubscription": "An active subscription is required to spin the wheel. Activate your subscription first.", "selectSubscription": "Select a subscription first" }, "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.", "starsNotAvailable": "Star payments are currently unavailable. Contact support.", "confirmStarsPayment": "You will be redirected to Telegram to pay for one wheel spin.", "payStars": "Pay {{count}} ⭐", "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" }, "selectSubscription": "Select subscription" }, "admin": { "backgrounds": { "title": "Animated Background", "description": "Choose a type and configure animation settings", "selectType": "Background Type", "preview": "Preview", "settings": "Settings", "save": "Save", "saved": "Saved", "saving": "Saving...", "enabled": "Background enabled", "disabled": "Background disabled", "reducedOnMobile": "Reduced mode on mobile", "reducedOnMobileDesc": "Reduces particle count and disables interactivity", "globalOpacity": "Opacity", "globalBlur": "Blur", "categoryCSS": "CSS", "categoryCanvas": "Canvas", "categorySVG": "SVG", "aurora": "Aurora", "auroraDesc": "Northern lights with smooth gradients", "sparkles": "Sparkles", "sparklesDesc": "Twinkling particles on the background", "vortex": "Vortex", "vortexDesc": "Spinning particle vortex", "shootingStars": "Shooting Stars", "shootingStarsDesc": "Falling stars on a starry sky", "beams": "Beams", "beamsDesc": "Light beams along SVG paths", "beamsCollision": "Beams Collision", "beamsCollisionDesc": "Exploding light beams", "gradientAnimation": "Gradient Animation", "gradientAnimationDesc": "Smoothly moving gradient blobs", "wavy": "Wavy", "wavyDesc": "Waves based on simplex noise", "lines": "Lines", "linesDesc": "Animated SVG waves", "boxes": "Boxes", "boxesDesc": "Grid of interactive blocks", "meteors": "Meteors", "meteorsDesc": "Flying meteors", "grid": "Grid", "gridDesc": "Minimalist grid pattern", "dots": "Dots", "dotsDesc": "Dot pattern", "spotlight": "Spotlight", "spotlightDesc": "Spotlight beam", "noise": "Noise", "noiseDesc": "Noise gradients with motion", "ripple": "Ripple", "rippleDesc": "Ripple wave effect", "geminiEffect": "Gemini Effect", "geminiEffectDesc": "SVG effect like Google Gemini", "speed": "Speed", "density": "Particle Density", "particles": "Particle Count", "count": "Count", "hue": "Hue", "rangeY": "Y Range", "minSize": "Min Size", "maxSize": "Max Size", "minSpeed": "Min Speed", "maxSpeed": "Max Speed", "particleColor": "Particle Color", "starColor": "Star Color", "trailColor": "Trail Color", "bgColor": "Background Color", "fillColor": "Fill Color", "color1": "Color 1", "color2": "Color 2", "color3": "Color 3", "color4": "Color 4", "color5": "Color 5", "interactive": "Interactive (mouse)", "size": "Size", "radialGradient": "Radial Gradient", "waveWidth": "Wave Width", "blurAmount": "Blur", "waveOpacity": "Wave Opacity", "duration": "Duration", "intensity": "Intensity", "rows": "Rows", "cols": "Columns", "gridSize": "Grid Size", "small": "Small", "normal": "Normal", "slow": "Slow", "fast": "Fast", "none": "No Background", "noneDesc": "Disable animated background" }, "groups": { "analytics": "Analytics", "marketing": "Marketing", "system": "System", "tariffs": "Tariffs & Sales", "users": "Users", "security": "Security" }, "nav": { "title": "Admin", "dashboard": "Dashboard", "tickets": "Tickets", "settings": "Settings", "apps": "Apps", "wheel": "Wheel", "tariffs": "Tariffs", "servers": "Squads", "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", "trafficUsage": "Traffic Usage", "updates": "Updates", "pinnedMessages": "Pinned Messages", "partners": "Partners", "withdrawals": "Withdrawals", "channelSubscriptions": "Required Channels", "roles": "Roles", "roleAssign": "Role Assignment", "policies": "Access Policies", "auditLog": "Audit Log", "salesStats": "Sales Statistics", "landings": "Landings", "referralNetwork": "Referral Network", "news": "News", "bulkActions": "Bulk Actions", "infoPages": "Info Pages" }, "panel": { "title": "Admin Panel", "subtitle": "System management", "statsUptime": "Uptime", "statsBot": "Bot", "statsCabinet": "Cabinet", "statsTrials": "Trials", "statsPaid": "Paid", "statsOnline": "Online", "statsToday": "today", "searchPlaceholder": "Search...", "searchEmpty": "Nothing found", "searchEmptyHint": "Try a different query", "searchClear": "Clear search", "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", "trafficUsageDesc": "Per-user traffic by nodes", "updatesDesc": "Bot & cabinet versions", "pinnedMessagesDesc": "Manage pinned messages for users", "partnersDesc": "Manage partner applications and commissions", "withdrawalsDesc": "Review and process withdrawal requests", "channelSubscriptionsDesc": "Manage required channel subscriptions", "rolesDesc": "Manage admin roles and permissions", "roleAssignDesc": "Assign and revoke user roles", "policiesDesc": "Configure ABAC access policies", "auditLogDesc": "Review system activity and access history", "salesStatsDesc": "Sales analytics and trends", "landingsDesc": "Quick purchase landing pages", "referralNetworkDesc": "Referral graph and campaign visualization", "newsDesc": "Manage news articles and publications" }, "salesStats": { "title": "Sales Statistics", "subtitle": "Revenue, trials, subscriptions, and renewals", "period": { "thisMonth": "This month", "from": "From", "to": "To", "week": "7 days", "month": "30 days", "quarter": "90 days", "all": "All time", "custom": "Custom" }, "tabs": { "trials": "Trials", "sales": "Sales", "renewals": "Renewals", "addons": "Add-ons", "deposits": "Deposits" }, "summary": { "revenue": "Revenue", "activeSubs": "Active Subs", "activeTrials": "Active Trials", "newTrials": "New Trials", "conversion": "Conversion", "renewals": "Renewals", "addonRevenue": "Add-on Revenue", "manualTopup": "Manual Top-ups" }, "trials": { "total": "Total Trials", "totalRegistrations": "Registrations", "trialsIssued": "Trials Issued", "conversion": "Conversion Rate", "avgDuration": "Avg Duration", "byProvider": "By Registration Source", "dailyChart": "Daily Registrations & Trials", "registrations": "Registrations" }, "sales": { "totalSales": "Total Sales", "totalRevenue": "Subscription turnover", "avgOrder": "Avg Order", "topTariff": "Top Tariff", "byTariff": "Sales by Tariff", "byPeriod": "By Subscription Period", "dailyChart": "Daily Sales", "dailyByTariff": "Sales by Tariff per Day", "subscriptions": "Subscriptions" }, "renewals": { "total": "Total Renewals", "rate": "Renewal Rate", "revenue": "Revenue", "comparison": "Period Comparison", "currentPeriod": "Current Period", "previousPeriod": "Previous Period", "dailyChart": "Daily Renewals", "renewals": "Renewals" }, "addons": { "totalPurchases": "Total Purchases", "totalGb": "Total Traffic", "revenue": "Revenue", "devicePurchases": "Device Purchases", "deviceRevenue": "Device Revenue", "trafficPurchases": "Traffic", "devicePurchasesDaily": "Devices", "byPackage": "By Package Size", "dailyChart": "Daily Add-on Purchases", "purchases": "Purchases" }, "deposits": { "totalDeposits": "Total Deposits", "totalAmount": "Total Amount", "avgDeposit": "Avg Deposit", "byMethod": "By Payment Method", "dailyChart": "Daily Deposits", "dailyByMethod": "Daily Deposits by Payment Method", "revenue": "Revenue" }, "loadError": "Failed to load statistics" }, "referralNetwork": { "title": "Referral Network", "subtitle": "Referral graph and advertising campaign visualization", "search": { "placeholder": "Search by TG ID, @username, email, campaign...", "noResults": "Nothing found", "resultsCount": "Found: {{count}}", "clear": "Clear search" }, "filters": { "title": "Filters", "campaigns": "Campaigns", "partnersOnly": "Partners only", "minReferrals": "Min referrals", "reset": "Reset" }, "stats": { "totalUsers": "Users", "totalReferrers": "Referrers", "totalCampaigns": "Campaigns", "subscriptionRevenue": "Subscription revenue", "totalEarnings": "Ref. earnings" }, "legend": { "title": "Legend", "fillTitle": "Subscription", "borderTitle": "Referral role", "regularUser": "No subscription", "activeReferrer": "Active referrer", "partner": "Partner", "topReferrer": "Top referrer (10+)", "campaignUser": "From campaign", "partnerCampaignEdge": "Partner → Campaign", "campaignNode": "Ad campaign", "paidActive": "Paid subscription", "trialActive": "Trial", "paidExpired": "Paid expired", "trialExpired": "Trial expired" }, "user": { "tgId": "TG ID", "email": "Email", "partner": "Partner", "subscription": "Subscription", "validUntil": "until {{date}}", "noSubscription": "No subscription", "personalStats": "Personal statistics", "totalSpent": "Total spent", "referralEarnings": "Referral earnings", "referralBranch": "Referral branch", "directReferrals": "Direct referrals", "branchSize": "Total in branch", "branchRevenue": "Branch revenue", "source": "Source", "referredBy": "Referred by", "fromCampaign": "Campaign", "organic": "Organic", "subscriptionStatus": { "trial_active": "Trial", "paid_active": "Paid", "trial_expired": "Trial expired", "paid_expired": "Paid expired" } }, "campaign": { "startParam": "Parameter", "active": "Active", "inactive": "Inactive", "directUsers": "Direct", "totalNetwork": "Total network", "totalRevenue": "Total revenue", "conversionRate": "Conversion", "avgCheck": "Avg check", "topReferrers": "Top referrers from campaign" }, "controls": { "zoomIn": "Zoom in", "zoomOut": "Zoom out", "resetZoom": "Reset zoom", "fullscreen": "Fullscreen" }, "scope": { "title": "Scope", "campaign": "Campaign", "partner": "Partner", "user": "User", "searchPlaceholder": "Search...", "selectCampaign": "Select campaign", "selectPartner": "Select partner", "selectUser": "Search user", "emptyState": "Select a campaign, partner, or user to view their network", "users": "users", "campaigns": "campaigns", "active": "Active", "inactive": "Inactive", "noResults": "Nothing found", "removeItem": "Remove {{label}}", "clearAll": "Clear all selections", "addScope": "Add scope", "maxReached": "Maximum {{max}} items" }, "loading": "Loading graph...", "error": "Failed to load network data", "empty": "No data to display" }, "trafficUsage": { "title": "Traffic Usage", "subtitle": "Per-user traffic statistics by nodes", "period": "Period", "days": "d", "exportCsv": "Export CSV", "exportSuccess": "CSV sent to your Telegram", "exportError": "Failed to export", "user": "User", "tariff": "Tariff", "devices": "Devices", "trafficLimit": "Limit", "total": "Total", "noData": "No traffic data", "loading": "Loading traffic data...", "noTariff": "—", "search": "Search by name or username", "allTariffs": "All tariffs", "nodes": "Nodes", "allNodes": "All nodes", "status": "Status", "allStatuses": "All", "statusActive": "Active", "statusTrial": "Trial", "statusExpired": "Expired", "statusDisabled": "Disabled", "customDates": "Custom dates", "dateFrom": "From", "dateTo": "To", "totalThreshold": "Total GB/d", "nodeThreshold": "Node GB/d", "risk": "Risk", "riskLow": "Low", "riskMedium": "Medium", "riskHigh": "High", "riskCritical": "Critical", "connected": "Conn.", "totalSpent": "Spent", "subStart": "Start", "subEnd": "End", "lastNode": "Last Node" }, "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": "Payments", "description": "Search and manage payments", "searchPlaceholder": "Search: invoice, TG ID, @username, email...", "searchHint": "Examples: SP-78291, @username, 123456789, user@mail.ru", "searchResults": "Results for: {{query}}. Found {{count}}", "resetSearch": "Reset", "statusAll": "All", "statusPending": "Pending", "statusPaid": "Paid", "statusCancelled": "Cancelled", "period24h": "24h", "period7d": "7d", "period30d": "30d", "periodAll": "All", "periodCustom": "Range", "dateFrom": "From", "dateTo": "To", "applyDate": "Apply", "allMethods": "All methods", "totalCount": "Total", "pendingCount": "Pending", "paidCount": "Paid", "cancelledCount": "Cancelled", "totalPending": "Total pending", "filterByMethod": "Filter by method", "noPayments": "No payments found", "paid": "Paid", "user": "User", "openLink": "Open link", "checkStatus": "Check status", "checking": "Checking...", "prev": "Prev", "next": "Next", "checkError": "Status check failed" }, "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", "openUrlDirect": "Open payment page directly", "openUrlDirectHint": "Skip the link panel: the provider opens inside the MiniApp/tab right after the click. After payment the user returns to /balance/top-up/result. Ignored for Stars/CryptoBot and other t.me/ links.", "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", "notFound": "Payment method not found" }, "remnawave": { "title": "Remnawave", "subtitle": "Panel management and statistics", "connected": "Connected", "disconnected": "Not configured", "noData": "Failed to load data", "tabs": { "overview": "Overview", "nodes": "Nodes", "traffic": "Traffic", "squads": "Squads", "sync": "Sync" }, "traffic": { "noData": "No traffic data available", "totalDownload": "Download", "totalUpload": "Upload", "totalTraffic": "Total", "online": "online", "inbounds": "Inbounds", "outbounds": "Outbounds" }, "overview": { "system": "System", "usersOnline": "Online", "totalUsers": "Total Users", "nodesOnline": "Nodes Online", "connections": "Connections", "bandwidth": "Inbound Traffic", "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" }, "usersOnlineCount": "{{count}} online" }, "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", "inboundsCount": "{{count}} inbounds", "membersCount": "{{count}} members" }, "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" }, "starsNotEnabledGlobally": "Star payments are not enabled in Payment Methods. Enable \"Telegram Stars\" in the Payment Methods section.", "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", "unsavedOrder": "Unsaved order changes", "unsavedOrderHint": "Save or discard your changes", "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", "blocked": "Blocked", "blockedShort": "blocked", "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}}!

\n

Your message here...

", "emailVariables": "Available variables", "enableTelegram": "Telegram", "enableEmail": "Email", "sendingBoth": "2 broadcasts will be created", "bothCreated": "Broadcasts created", "atLeastOneChannel": "Select at least one channel", "customButtons": "Custom buttons", "addCustomButton": "Add button", "customButtonLabelPlaceholder": "Button text", "customButtonTypeCallback": "Callback", "customButtonTypeUrl": "URL", "customButtonCallbackPlaceholder": "callback_data (e.g. back_to_menu)", "customButtonUrlPlaceholder": "https://example.com", "preview": "Preview", "previewEmpty": "— empty —", "emailSubjectLabel": "Subject", "btnBalance": "Top up balance", "btnPartners": "Referral program", "btnPromocode": "Promo code", "btnConnect": "Connect", "btnSubscription": "Subscription", "btnSupport": "Support", "btnHome": "Home", "category": "Category", "categoryNews": "News", "categoryPromo": "Promo", "categorySystem": "System", "stopping": "Stopping…" }, "pinnedMessages": { "title": "Pinned Messages", "subtitle": "Manage pinned messages for users", "create": "Create", "empty": "No pinned messages", "content": "Message text", "contentPlaceholder": "Enter pinned message text...", "noContent": "No text", "media": "Media file", "addMedia": "Add media", "uploading": "Uploading...", "settings": "Settings", "sendBeforeMenu": "Send before menu", "sendOnEveryStart": "Send on every start", "broadcast": "Broadcast", "broadcastOnCreate": "Broadcast on create", "broadcastConfirm": "Broadcast pinned message to all active users?", "broadcastToAll": "Broadcast to all", "activate": "Activate", "deactivate": "Deactivate", "unpin": "Unpin", "unpinAll": "Unpin for everyone", "unpinConfirm": "Unpin message for all users?", "delete": "Delete", "deleteConfirm": "Delete this pinned message?", "active": "Active", "inactive": "Inactive", "prev": "Previous", "next": "Next", "createSuccess": "Pinned message created", "updateSuccess": "Message updated", "deleteSuccess": "Message deleted", "activateSuccess": "Message activated", "deactivateSuccess": "Message deactivated", "broadcastSuccess": "Broadcast completed", "unpinSuccess": "Messages unpinned", "sentCount": "Sent", "failedCount": "Failed", "unpinnedCount": "Unpinned", "editMessage": "Edit", "cantDeleteActive": "Cannot delete active message" }, "channelSubscriptions": { "title": "Required Channels", "subtitle": "Users must subscribe to these channels", "addChannel": "Add Channel", "empty": "No channels configured", "enabled": "Enabled", "disabled": "Disabled", "enable": "Enable", "disable": "Disable", "edit": "Edit", "editing": "Editing", "delete": "Delete", "deleteConfirm": "Delete this channel?", "sortOrder": "Order", "form": { "title": "Display Name", "channelId": "Channel ID", "channelIdHint": "-100XXXXXXXXXX", "channelLink": "Channel Link", "channelLinkHint": "https://t.me/channel", "submit": "Add", "save": "Save", "cancel": "Cancel" }, "globalSettings": { "title": "Channel Settings", "channelRequired": "Require subscription", "channelRequiredDesc": "Users must subscribe to channels to use the bot", "disableTrialOnUnsub": "Disable trial on unsubscribe", "disableTrialOnUnsubDesc": "Revoke trial access when user unsubscribes from any channel", "requiredForAll": "Required for all users", "requiredForAllDesc": "Apply channel subscription check to all users, including paid" }, "perChannel": { "disableTrial": "Disable trial on leave", "disableTrialDesc": "Revoke trial when user leaves this channel", "disablePaid": "Disable paid on leave", "disablePaidDesc": "Revoke paid access when user leaves this channel" } }, "settings": { "title": "System Settings", "allCategories": "All categories", "noSettings": "No settings found", "quickToggles": "Quick Toggles", "modified": "Modified", "readOnly": "Read only", "badgeDb": "DB", "badgeEnv": "ENV", "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", "buttons": "Buttons", "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", "giftEnabled": "Gift subscription", "giftEnabledDesc": "Allow users to gift a subscription to another user", "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", "favorites": "Favorites", "branding": "Branding", "theme": "Theme", "payments": "Payments", "subscriptions": "Subscriptions", "interface": "Interface", "notifications": "Notifications", "database": "Database", "system": "System", "users": "Users", "customization": "Customization", "settingsLabel": "Settings", "backToAdmin": "Back to admin", "totalCount": "{{count}} total", "modifiedCount": "{{count}} modified", "groups": { "payments": "Payments", "subscriptions": "Subscriptions", "interface": "Interface", "users": "Users", "notifications": "Notifications", "database": "Database", "system": "System" }, "tree": { "payments_general": "General", "payments_stars": "Telegram Stars", "payments_yookassa": "YooKassa", "payments_cryptobot": "CryptoBot", "payments_cloudpayments": "CloudPayments", "payments_freekassa": "FreeKassa", "payments_kassa_ai": "Kassa AI", "payments_platega": "Platega", "payments_pal24": "PAL24", "payments_heleket": "Heleket", "payments_mulenpay": "MulenPay", "payments_tribute": "Tribute", "payments_wata": "Wata", "payments_riopay": "RioPay", "payments_severpay": "SeverPay", "payments_paypear": "PayPear", "payments_rollypay": "RollyPay", "payments_aurapay": "AuraPay", "payments_etoplatezhi": "Etoplatezhi", "payments_antilopay": "Antilopay", "payments_jupiter": "Jupiter", "payments_donut": "Donut", "payments_lava": "Lava", "payments_apple_iap": "Apple IAP", "subs_core": "Core", "subs_trial": "Trial", "subs_pricing": "Pricing", "subs_periods": "Periods", "subs_traffic": "Traffic", "subs_simple": "Simple subscription", "subs_autopay": "Auto-pay", "iface_general": "General", "iface_connect": "Connect button", "iface_miniapp": "MiniApp", "iface_happ": "HAPP", "iface_widget": "Login Widget", "iface_oidc": "OIDC", "iface_skip": "Skip steps", "iface_additional": "Additional", "users_support": "Support", "users_referral": "Referral", "users_channel": "Channel", "users_localization": "Localization", "users_moderation": "Moderation", "notif_user": "User notifications", "notif_admin": "Admin notifications", "notif_reports": "Reports", "db_general": "General", "db_postgres": "PostgreSQL", "db_sqlite": "SQLite", "db_redis": "Redis", "sys_core": "Core & Debug", "sys_remnawave": "Remnawave", "sys_webapi": "Web API", "sys_webhook": "Webhook", "sys_server": "Server status", "sys_monitoring": "Monitoring", "sys_maintenance": "Maintenance", "sys_backup": "Backup", "sys_version": "Version", "sys_logging": "Logging" }, "categories": { "TELEGRAM_WIDGET": "Telegram Login Widget", "TELEGRAM_OIDC": "Telegram Login (OIDC)" }, "settingNames": { "Telegram Widget Size": "Widget Size", "Telegram Widget Radius": "Corner Radius", "Telegram Widget Userpic": "Show User Photo", "Telegram Widget Request Access": "Request Access", "telegramOidcEnabled": "OIDC Enabled", "telegramOidcClientId": "Client ID (Bot ID)", "telegramOidcClientSecret": "Client Secret" }, "offlineConv": "Offline Conversions", "apiKey": "API Key" }, "bulkActions": { "title": "Bulk Actions", "subtitle": "User management", "selectedCount": "Selected: {{count}}", "selectAll": "Select all", "deselectAll": "Deselect all", "selectUser": "Select user {{name}}", "deselectUser": "Deselect user {{name}}", "noResults": "No users found", "perPage": "Per page", "actions": { "extend": "Extend subscription", "cancel": "Deactivate subscriptions", "activate": "Activate subscriptions", "changeTariff": "Change tariff", "addTraffic": "Add traffic", "addBalance": "Add balance", "assignPromoGroup": "Assign promo group", "grantSubscription": "Grant subscription", "setDevices": "Set devices", "deleteSubscription": "Delete subscriptions", "deleteUser": "Delete users" }, "deleteSubscription": { "warning": "Selected subscriptions will be permanently deleted from the bot and Remnawave panel!", "hint": "Users will lose VPN access for deleted subscriptions. This action cannot be undone.", "activePaidWarning": "{{count}} of {{total}} selected subscriptions are active paid", "forceDeleteConfirm": "I confirm deletion of active paid subscriptions" }, "deleteUser": { "warning": "Selected users will be permanently deleted from the bot! All their subscriptions, balance, and data will be lost!", "hint": "This action cannot be undone. Users will need to restart the bot to create a new account.", "deleteFromPanel": "Also delete from Remnawave panel" }, "params": { "days": "Number of days", "tariff": "Select tariff", "trafficGb": "Traffic amount (GB)", "balanceRub": "Amount (RUB)", "promoGroup": "Promo group", "removePromoGroup": "Remove promo group", "deviceLimit": "Device count" }, "grantSubscription": { "warning": "Users who already have a subscription on the selected tariff will be skipped" }, "confirm": "Apply", "cancel": "Cancel", "executing": "Executing...", "complete": "Complete", "successCount": "Succeeded: {{count}}", "errorCount": "Errors: {{count}}", "progress": { "processed": "Processed: {{current}} / {{total}}", "succeeded": "succeeded", "failed": "failed", "ok": "OK", "errorGeneric": "Error", "doNotClose": "Please do not close this window while the operation is in progress", "summarySuccess": "{{count}} succeeded", "summaryErrors": "{{count}} errors" }, "errors": { "title": "{{count}} errors. Show details" }, "filters": { "search": "Search by ID, username, email", "status": "Subscription status", "tariff": "Tariff", "promoGroup": "Promo group", "allStatuses": "All statuses", "allTariffs": "All tariffs", "allGroups": "All groups", "allCampaigns": "All campaigns", "allPartners": "All partners", "trialOnly": "Trial only", "tariffsSelected": "{{count}} tariffs", "selectAll": "Select all", "deselectAll": "Deselect all" }, "statuses": { "active": "Active", "expired": "Expired", "trial": "Trial", "limited": "Limited", "disabled": "Disabled" }, "columns": { "user": "User", "status": "Status", "tariff": "Tariff", "balance": "Balance", "daysRemaining": "Days", "promoGroup": "Group", "spent": "Spent" }, "subscriptionsSelected": "{{count}} subscriptions selected", "usersSelected": "{{count}} users selected", "expandSubscriptions": "Show subscriptions", "collapseSubscriptions": "Hide subscriptions", "noSubscriptions": "No subscriptions", "subscriptionTarget": "Target: subscriptions", "userTarget": "Target: users", "daysUnit": "d", "trafficOf": "of", "trafficGbUnit": "GB", "selectAllSubs": "Select all subscriptions", "deselectAllSubs": "Deselect all subscriptions" }, "theme": { "accentColor": "Accent color", "customizeColors": "Customize colors", "hexCode": "HEX code", "hue": "Hue", "lightness": "Lightness", "quickPresets": "Quick presets", "saturation": "Saturation" }, "buttons": { "color": "Button color", "emojiId": "Custom Emoji ID", "emojiPlaceholder": "Custom emoji ID (optional)", "resetAll": "Reset all styles", "resetConfirm": "Reset all button styles to defaults?", "hidden": "Hidden", "customLabels": "Button labels", "labelPlaceholder": "Custom button text", "labelsHint": "Empty = default label", "sections": { "home": "Home", "subscription": "Subscription", "balance": "Balance", "referral": "Referrals", "support": "Support", "info": "Info", "admin": "Admin Panel", "language": "Language" }, "descriptions": { "home": "Personal cabinet button", "subscription": "Subscription management", "balance": "Top-up and balance", "referral": "Referral program", "support": "Support tickets", "info": "Information section", "admin": "Web admin panel", "language": "Language selection" }, "styles": { "default": "No color", "primary": "Blue", "success": "Green", "danger": "Red" } }, "menuEditor": { "dragHint": "Drag rows to reorder them", "dragToReorder": "Drag to reorder", "row": "Row", "addRow": "Add row", "addButton": "Add button", "addUrlButton": "URL button (link)", "builtinButtons": "Built-in buttons", "resetConfirm": "Reset menu layout to defaults?", "buttonTextPlaceholder": "Custom button text", "customLabelsHint": "Empty = default label", "moveUp": "Move up", "moveDown": "Move down", "openIn": "Open in", "openMode": { "external": "External browser", "webapp": "Telegram miniapp" }, "invalidUrl": "Please provide a valid URL (http:// or https://) for all custom buttons" }, "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", "noConfigs": "No configs", "remnaWaveConnected": "Remnawave connected", "remnaWaveDisconnected": "Remnawave disconnected" }, "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", "attachMedia": "Attach media", "invalidFileType": "Invalid file type. Use images, videos (MP4, WebM) or documents (PDF, DOC, TXT, ZIP).", "fileTooLarge": "File is too large. Maximum size is 10MB.", "uploadFailed": "Failed to upload file", "uploading": "Uploading...", "uploadComplete": "Uploaded", "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", "viewUser": "Profile", "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", "replyFailed": "Failed to send reply", "validation": { "checkIntervalRange": "Check interval must be between 1 and 1440 minutes", "reminderCooldownRange": "Reminder cooldown must be between 0 and 1440 minutes", "slaMinutesRange": "SLA must be between 1 and 10080 minutes" } }, "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", "deleteSuccessWithSubscriptions": "Tariff deleted. {{count}} subscriptions reset. Users will choose a new tariff on renewal.", "saveOrder": "Save order", "orderSaved": "Order saved", "dragToReorder": "Drag to reorder", "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 (₽)", "addButton": "Add", "noPeriodsHint": "No added periods. Add at least one period.", "daysShort": "d.", "serversTitle": "Servers", "externalSquadTitle": "External Squad", "externalSquadHint": "Assign a Remnawave external squad for users on this tariff. When a subscription is created, the user will be automatically added to the selected squad.", "noExternalSquad": "No external squad", "externalSquadUsers": "users", "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", "resetModeMonthRolling": "Rolling month", "resetModeMonthRollingDesc": "Reset every 30 days from first connection", "resetModeNever": "Never", "resetModeNeverDesc": "Traffic is not reset", "cancelButton": "Cancel", "savingButton": "Saving...", "saveButton": "Save", "dailyType": "Daily", "periodType": "Period-based", "dailyPriceLabel": "Price per day", "currencyPerDay": "₽/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", "showInGiftLabel": "Show in gifts", "showInGiftHint": "Tariff will be available for purchase in the gifts section", "giftBadge": "Gift", "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": "Squad Management", "subtitle": "Configure squads", "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", "loadMore": "Load more", "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", "registrations": "Registrations" }, "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...", "partner": "Partner", "noPartner": "No partner", "selectPartner": "Select partner", "partnerAutoAssign": "Campaign will be automatically assigned to partner {{name}}" }, "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!", "botLink": "Bot link", "webLink": "Web link", "users": "Users", "noUsers": "No registered users", "paid": "Paid", "hasSub": "Has sub", "dailyChart": "30-day trends", "chartRegistrations": "Registrations", "chartRevenue": "Revenue", "totalDeposits": "Total Deposits", "totalSpending": "Subscription Spending", "periodComparison": "Period comparison", "vsLastWeek": "vs last week", "topRegistrations": "Top registrations", "subscriptionsIssued": "Subscriptions issued", "tariffsIssued": "Tariffs issued" }, "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", "validation": { "nameRequired": "Name is required" } }, "withdrawals": { "title": "Withdrawals", "subtitle": "Manage withdrawal requests", "noData": "No withdrawal requests", "risk": "Risk:", "overview": { "pendingCount": "Pending", "pendingAmount": "Pending amount", "approvedCount": "Approved", "completedCount": "Completed" }, "filter": { "all": "All", "pending": "Pending", "approved": "Approved", "rejected": "Rejected", "completed": "Completed", "cancelled": "Cancelled" }, "status": { "pending": "Pending", "approved": "Approved", "rejected": "Rejected", "completed": "Completed", "cancelled": "Cancelled", "unknown": "Unknown" }, "detail": { "title": "Withdrawal", "loadError": "Failed to load withdrawal details", "userInfo": "User Information", "username": "Username", "telegramId": "Telegram ID", "balance": "Balance", "totalReferrals": "Total referrals", "totalEarnings": "Total earnings", "requestedAmount": "Requested Amount", "createdAt": "Created", "paymentDetails": "Payment Details", "noPaymentDetails": "No payment details provided", "riskAnalysis": "Risk Analysis", "riskScore": "Risk score", "riskLevel": { "low": "Low", "medium": "Medium", "high": "High", "critical": "Critical" }, "flags": "Flags", "balanceStats": "Balance Statistics", "referralDeposits": "Referral Deposits", "suspiciousReferrals": "Suspicious Referrals", "earningsByReason": "Earnings by Reason", "adminComment": "Admin Comment", "processedAt": "Processed at", "approve": "Approve", "approving": "Approving...", "reject": "Reject", "rejecting": "Rejecting...", "complete": "Mark as Completed", "completing": "Completing...", "rejectTitle": "Reject withdrawal?", "rejectDescription": "Optionally add a comment explaining the reason for rejection.", "commentPlaceholder": "Reason for rejection (optional)...", "confirmReject": "Confirm Rejection" } }, "partners": { "title": "Partners", "subtitle": "Partner management and applications", "totalPartners": "Total partners", "pendingApplications": "Pending applications", "totalReferrals": "Total referrals", "totalEarnings": "Total earnings", "tabs": { "partners": "Partners", "applications": "Applications" }, "noPartners": "No partners yet", "noApplications": "No pending applications", "commission": "{{percent}}% commission", "referrals": "{{count}} referrals", "actions": { "approve": "Approve", "reject": "Reject", "review": "Review" }, "applicationFields": { "companyName": "Company", "website": "Website", "channel": "Channel", "description": "Description", "expectedReferrals": "Expected referrals/mo", "desiredCommission": "Desired commission" }, "approveDialog": { "title": "Approve Application", "description": "Approve partner application from {{name}}", "commissionLabel": "Commission (%)" }, "rejectDialog": { "title": "Reject Application", "description": "Reject partner application from {{name}}", "commentLabel": "Comment (optional)", "commentPlaceholder": "Reason for rejection..." }, "settings": "Settings", "settingsSubtitle": "Partner program and withdrawal settings", "settingsLoadError": "Failed to load settings", "settingsUpdateError": "Failed to save settings", "settingsSection": { "referralProgram": "Referral Program", "withdrawalSettings": "Withdrawal Settings" }, "settingsFields": { "programEnabled": "Referral program enabled", "programEnabledDesc": "Enable/disable referral program for all users", "partnerVisible": "Partner section visible in cabinet", "partnerVisibleDesc": "Show/hide partner application and withdrawal sections for users", "withdrawalEnabled": "Withdrawal enabled", "withdrawalEnabledDesc": "Allow partners to request withdrawal of referral balance", "minAmount": "Min. withdrawal amount (kopeks)", "minAmountDesc": "Minimum amount for a withdrawal request (100 kopeks = 1 ₽)", "cooldownDays": "Cooldown between withdrawals (days)", "cooldownDaysDesc": "How many days must pass between withdrawal requests", "requisitesText": "Requisites field prompt", "requisitesTextDesc": "Custom text shown to users to describe what payment details to provide", "requisitesTextPlaceholder": "E.g.: Provide your bank card number or USDT TRC-20 address" } }, "partnerDetail": { "title": "Partner Details", "loadError": "Failed to load partner details", "status": { "approved": "Active", "pending": "Pending", "rejected": "Rejected", "none": "Not a partner" }, "stats": { "totalReferrals": "Total referrals", "paidReferrals": "Paid referrals", "activeReferrals": "Active referrals", "conversionRate": "Conversion" }, "earnings": { "title": "Earnings", "allTime": "All time", "today": "Today", "week": "This week", "month": "This month" }, "commission": { "title": "Commission", "update": "Update" }, "campaigns": { "title": "Assigned Campaigns", "noCampaigns": "No campaigns assigned", "active": "Active", "inactive": "Inactive", "assign": "Assign", "unassign": "Unassign", "createNew": "Create", "assignTitle": "Assign Campaign", "noAvailable": "No available campaigns to assign", "createTitle": "Create Campaign", "createSubtitle": "Campaign will be auto-assigned to the partner", "autoAssignNote": "Campaign will be automatically assigned to partner {{name}}", "createAndAssign": "Create & Assign", "earnings": "Earnings", "referrals": "Referrals", "registrations": "Registrations" }, "dangerZone": { "title": "Danger Zone", "revokeButton": "Revoke Partner Status" }, "commissionDialog": { "title": "Update Commission", "description": "Set a new commission percentage for this partner.", "label": "Commission (%)" }, "revokeDialog": { "title": "Revoke Partner Status?", "description": "This will remove partner privileges. The partner will no longer earn commissions from referrals." } }, "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", "defaultTrialTariff": "Default trial tariff", "selectTariff": "Select tariff", "tariff": "Tariff" }, "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", "hoursValue": "{{count}}h" }, "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", "nameRequired": "Enter group name", "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", "isDefault": "Default group", "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. The user will be fully deleted from the bot and from the Remnawave panel." }, "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", "tickets": "Tickets", "gifts": "Gifts", "referrals": "Referrals" }, "noTickets": "No tickets from this user", "ticketsCount": "tickets", "messagesCount": "messages", "status": "Status", "language": "Language", "registration": "Registration", "lastActivity": "Last activity", "botActivity": "Bot activity", "cabinetLastLogin": "Last cabinet login", "vpnConnection": "VPN connection", "lastConnection": "Last connection", "firstConnection": "First connection", "online": "Online", "noVpnData": "No connection data available", "requestHistory": "Subscription request history", "requestHistoryTotal": "Total requests", "requestAt": "Date", "requestIp": "IP address", "requestUserAgent": "Device", "loadMore": "Show more", "noRequests": "No requests", "totalSpent": "Total spent", "purchases": "Purchases", "campaign": "Advertising campaign", "referralsList": "Referrals list", "referralEarnings": "Referral earnings", "noReferrals": "No referrals", "panelConfig": "Panel configuration", "trojanPassword": "Trojan password", "vlessUuid": "VLESS UUID", "ssPassword": "SS password", "subscriptionUrl": "Subscription URL", "happLink": "HAPP link", "firstConnected": "First connected", "lastOnline": "Last online", "lastNode": "Last node", "liveTraffic": "Current traffic", "lifetime": "Lifetime", "nodeUsage": "Node usage", "copied": "Copied", "panelNotFound": "User not found in panel", "devices": { "title": "Devices", "none": "No connected devices", "resetAll": "Reset all", "deleted": "Device removed", "allDeleted": "All devices reset", "rename": "Rename", "renameSave": "Save", "renamed": "Device name updated" }, "referral": { "title": "Referral program", "referrals": "Referrals", "earned": "Earned", "commission": "Commission", "default": "Default", "invalidPercent": "Commission must be between 0 and 100" }, "restrictions": { "title": "Restrictions", "topup": "• Top-up prohibited", "subscription": "• Subscription purchase prohibited", "reason": "Reason" }, "actions": { "title": "Actions", "areYouSure": "Are you sure?" }, "promoGroup": "Promo group", "noPromoGroup": "Not set", "changePromoGroup": "Change", "selectPromoGroup": "Select group", "removePromoGroup": "Remove", "activePromoOffer": "Active promo offer", "discount": "Discount", "source": "Source", "expiresAt": "Expires", "deactivateOffer": "Deactivate", "sendOffer": "Send offer", "discountPercent": "Discount %", "validHours": "Valid hours", "offerSent": "Offer sent", "offerSendError": "Failed to send offer", "offerDeactivated": "Offer deactivated", "subscription": { "current": "Current subscription", "tariff": "Tariff", "notSpecified": "Not specified", "validUntil": "Valid until", "traffic": "Traffic", "devices": "Devices", "actions": "Actions", "extend": "Extend", "shorten": "Deduct days", "changeTariff": "Change tariff", "cancel": "Cancel", "activate": "Activate", "days": "Days", "selectTariff": "Select tariff", "unavailable": "(unavailable)", "noActive": "No active subscription", "create": "Create subscription", "creating": "Creating...", "trafficPackages": "Traffic packages", "addTraffic": "Add traffic", "selectPackage": "Select package", "addButton": "Add", "addTrafficNote": "Admin: free, valid 30 days", "trafficRemoved": "Traffic package removed", "trafficAdded": "Traffic package added", "expired": "expired", "daysLeft": "d left", "deviceLimitUpdated": "Device limit updated", "invalidDays": "Please enter a valid number of days (greater than 0)", "backToList": "Back to subscriptions", "createNew": "Create new" }, "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": { "selectSubscription": "Select subscription", "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" }, "gifts": { "title": "User Gifts", "sentTitle": "Sent Gifts", "receivedTitle": "Received Gifts", "noSent": "No gifts sent by this user", "noReceived": "No gifts received by this user", "noGifts": "No gifts", "token": "Code", "tariff": "Tariff", "period": "Period", "devices": "Devices", "amount": "Amount", "paymentMethod": "Payment method", "recipient": "Recipient", "sender": "Sender", "message": "Message", "createdAt": "Created", "paidAt": "Paid", "deliveredAt": "Activated", "status": { "pending": "Pending", "paid": "Paid", "delivered": "Delivered", "pending_activation": "Pending activation", "failed": "Failed", "expired": "Expired" }, "days": "d", "codeOnly": "Code only", "via": "via", "balance": "balance", "unknownUser": "Unknown", "totalSent": "Total sent", "totalReceived": "Total received" }, "referrals": { "referredBy": "Referred By", "noReferrer": "No referrer assigned", "assignReferrer": "Assign Referrer", "removeReferrer": "Remove", "referrerAssigned": "Referrer assigned successfully", "referrerRemoved": "Referrer removed successfully", "totalReferrals": "Total Referrals", "totalEarnings": "Total Earnings", "commission": "Commission", "referralCode": "Referral Code", "default": "default", "referralsList": "Referrals", "noReferrals": "No referrals yet", "removeReferral": "Remove referral", "referralRemoved": "Referral removed successfully", "addReferral": "Add Referral", "referralAdded": "Referral added successfully", "searchPlaceholder": "Search by name, email, or Telegram ID...", "alreadyReferred": "already has referrer", "noUsersFound": "No users found" } }, "notFound": "User not found", "purchaseCount": "Purchases: {{count}}" }, "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", "templates": "Templates" }, "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...", "noServers": "No servers", "testSquads": "Test squads" }, "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", "notificationsSent": "Notifications sent", "offersCreated": "Offers created", "notificationsFailed": "(failed: {{count}})" }, "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" } }, "roles": { "title": "Roles & Permissions", "subtitle": "Manage admin roles and their permissions", "createRole": "Create Role", "noRoles": "No roles found", "systemBadge": "System", "inactiveBadge": "Inactive", "levelLabel": "Level", "usersCount_one": "{{count}} user", "usersCount_other": "{{count}} users", "permissionsCount_one": "{{count}} permission", "permissionsCount_other": "{{count}} permissions", "stats": { "totalRoles": "Total roles", "active": "Active", "system": "System" }, "actions": { "edit": "Edit", "delete": "Delete" }, "modal": { "createTitle": "Create Role", "editTitle": "Edit Role", "close": "Close" }, "form": { "name": "Role name", "namePlaceholder": "e.g. Moderator", "description": "Description", "descriptionPlaceholder": "What this role is for...", "level": "Priority level", "levelValue": "Level value", "levelHint": "Higher level = more authority. Users can only manage roles with a lower level than their own.", "color": "Color", "presets": "Permission presets", "permissions": "Permissions", "permissionSections": { "users": "Users", "tickets": "Tickets", "stats": "Statistics", "sales_stats": "Sales statistics", "broadcasts": "Broadcasts", "tariffs": "Tariffs", "promocodes": "Promo codes", "promo_groups": "Promo groups", "promo_offers": "Promo offers", "campaigns": "Campaigns", "partners": "Partners", "withdrawals": "Withdrawals", "payments": "Payments", "payment_methods": "Payment methods", "servers": "Servers", "remnawave": "Remnawave", "traffic": "Traffic", "settings": "Settings", "roles": "Roles", "audit_log": "Audit log", "channels": "Channels", "ban_system": "Ban system", "wheel": "Lucky wheel", "apps": "Apps", "email_templates": "Email templates", "pinned_messages": "Pinned messages", "landings": "Landing pages", "updates": "Updates" }, "permissionActions": { "read": "Read", "edit": "Edit", "create": "Create", "delete": "Delete", "block": "Block", "sync": "Sync", "reply": "Reply", "close": "Close", "settings": "Settings", "export": "Export", "send": "Send", "stats": "Stats", "approve": "Approve", "revoke": "Revoke", "reject": "Reject", "manage": "Manage", "ban": "Ban", "unban": "Unban", "assign": "Assign", "promo_group": "Promo group", "balance": "Balance", "subscription": "Subscription", "send_offer": "Send offer", "referral": "Referral %" }, "toggleSection": "Toggle all {{section}} permissions", "selectedPermissions_one": "{{count}} permission selected", "selectedPermissions_other": "{{count}} permissions selected", "cancel": "Cancel", "saving": "Saving...", "save": "Save", "selectedPermissions": "Selected permissions" }, "presets": { "moderator": "Moderator", "marketer": "Marketer", "support": "Support" }, "confirm": { "title": "Delete role?", "text": "This role will be permanently deleted. Users with this role will lose its permissions.", "cancel": "Cancel", "delete": "Delete", "deleting": "Deleting..." }, "errors": { "loadFailed": "Failed to load roles", "createFailed": "Failed to create role", "updateFailed": "Failed to update role", "nameRequired": "Role name is required", "deleteFailed": "Failed to delete role" }, "permissionsCount": "{{count}} permissions", "usersCount": "{{count}} users" }, "roleAssign": { "title": "Role Assignment", "subtitle": "Assign and manage user roles", "assignSection": "Assign Role", "userLabel": "User", "searchPlaceholder": "Search by name, username, Telegram ID, or email...", "clearUser": "Clear selected user", "noUsersFound": "No users found", "roleLabel": "Role", "selectRole": "Select a role...", "expiresLabel": "Expires at (optional)", "expiresHint": "Leave empty for permanent assignment", "assignButton": "Assign", "assigning": "Assigning...", "assignSuccess": "Role assigned successfully", "currentAssignments": "Current Assignments", "totalAssignments_one": "{{count}} assignment total", "totalAssignments_other": "{{count}} assignments total", "noAssignments": "No role assignments found", "unknownUser": "Unknown user", "system": "System", "permanent": "Permanent", "expired": "expired", "envManaged": "Managed via ADMIN_IDS / ADMIN_EMAILS in env", "revoke": "Revoke", "revokeAriaLabel": "Revoke role {{role}} from {{user}}", "table": { "user": "User", "role": "Role", "assignedBy": "Assigned by", "assignedAt": "Assigned at", "expires": "Expires", "actions": "Actions" }, "pagination": { "showing": "{{from}}-{{to}} of {{total}}", "prev": "Previous page", "next": "Next page" }, "confirm": { "title": "Revoke role?", "text": "This user will immediately lose all permissions associated with this role.", "cancel": "Cancel", "revoke": "Revoke", "revoking": "Revoking..." }, "errors": { "userRequired": "Please select a user", "roleRequired": "Please select a role", "assignFailed": "Failed to assign role", "revokeFailed": "Failed to revoke role" }, "totalAssignments": "Total assignments: {{count}}" }, "policies": { "title": "Access Policies", "subtitle": "Manage ABAC access control policies", "createPolicy": "Create Policy", "noPolicies": "No policies found", "inactiveBadge": "Inactive", "effectAllow": "Allow", "effectDeny": "Deny", "global": "Global", "unknownRole": "Unknown role", "roleLabel": "Role", "priorityLabel": "Priority", "stats": { "total": "Total policies", "allow": "Allow", "deny": "Deny", "active": "Active" }, "actions": { "edit": "Edit", "delete": "Delete" }, "modal": { "createTitle": "Create Policy", "editTitle": "Edit Policy", "close": "Close" }, "form": { "name": "Policy name", "namePlaceholder": "e.g. Block night access", "description": "Description", "descriptionPlaceholder": "What this policy does...", "effect": "Effect", "resource": "Resource", "selectResource": "Select a resource...", "actions": "Actions", "role": "Role (optional)", "globalOption": "Global (all roles)", "roleHint": "Leave as Global to apply the policy to all roles.", "priority": "Priority", "priorityHint": "Higher priority policies are evaluated first. Deny overrides Allow at equal priority.", "conditions": "Conditions", "cancel": "Cancel", "saving": "Saving...", "save": "Save" }, "conditions": { "timeRange": "Time range", "timeStart": "Start time", "timeEnd": "End time", "ipWhitelist": "IP whitelist", "ipPlaceholder": "Enter IP and press Enter...", "removeIp": "Remove {{ip}}", "ipCount_one": "{{count}} IP", "ipCount_other": "{{count}} IPs", "rateLimit": "Rate limit", "rateLimitValue": "Rate limit value", "rateValue": "{{count}}/hr", "perHour": "actions per hour", "weekdays": "Days of week", "day0": "Sun", "day1": "Mon", "day2": "Tue", "day3": "Wed", "day4": "Thu", "day5": "Fri", "day6": "Sat", "ipCount": "IP count" }, "confirm": { "title": "Delete policy?", "text": "This policy will be permanently deleted. Access control rules will be recalculated.", "cancel": "Cancel", "delete": "Delete", "deleting": "Deleting..." }, "errors": { "loadFailed": "Failed to load policies", "createFailed": "Failed to create policy", "updateFailed": "Failed to update policy", "nameRequired": "Policy name is required", "resourceRequired": "Please select a resource", "actionsRequired": "Please select at least one action", "deleteFailed": "Failed to delete policy" } }, "auditLog": { "title": "Audit Log", "subtitle": "Review system activity and access history", "back": "Back", "exportCsv": "Export CSV", "exportError": "Failed to export", "exporting": "Exporting...", "refresh": "Refresh", "unknownUser": "Unknown user", "noEntries": "No audit log entries found", "totalEntries_one": "{{count}} entry", "totalEntries_other": "{{count}} entries", "autoRefresh": { "label": "Auto-refresh", "tooltip": "Auto-refresh every 30 seconds" }, "filters": { "title": "Filters", "active": "Active", "user": "User", "action": "Action", "actionPlaceholder": "Search by action...", "resource": "Resource type", "allResources": "All resources", "status": "Status", "allStatuses": "All statuses", "dateFrom": "Date from", "dateTo": "Date to", "apply": "Apply", "clear": "Clear" }, "status": { "success": "Success", "denied": "Denied", "error": "Error" }, "resourceTypes": { "users": "Users", "tickets": "Tickets", "roles": "Roles", "policies": "Policies", "settings": "Settings", "broadcasts": "Broadcasts", "tariffs": "Tariffs", "servers": "Servers", "payments": "Payments", "campaigns": "Campaigns", "promocodes": "Promo Codes" }, "details": { "userAgent": "User Agent", "requestPath": "Request Path", "ipAddress": "IP Address", "timestamp": "Timestamp", "before": "Before", "after": "After", "queryParams": "Query Parameters", "requestBody": "Request Body", "fullDetails": "Full Details" }, "time": { "justNow": "Just now", "minutesAgo_one": "{{count}} min ago", "minutesAgo_other": "{{count}} min ago", "hoursAgo_one": "{{count}} hr ago", "hoursAgo_other": "{{count}} hrs ago", "daysAgo_one": "{{count}} day ago", "daysAgo_other": "{{count}} days ago", "daysAgo": "{{count}}d ago", "hoursAgo": "{{count}}h ago", "minutesAgo": "{{count}}m ago" }, "pagination": { "pageSize": "Per page:", "pageOf": "{{current}} / {{total}}", "first": "First page", "previous": "Previous page", "next": "Next page", "last": "Last page" }, "errors": { "loadFailed": "Failed to load audit log", "retry": "Try again" }, "totalEntries": "Total entries: {{count}}" }, "landings": { "title": "Landing Pages", "create": "Create Landing", "edit": "Edit", "slug": "URL Identifier", "slugHint": "Lowercase, numbers and hyphens", "pageTitle": "Title", "subtitle": "Subtitle", "footerText": "Footer (HTML)", "features": "Features", "addFeature": "Add", "featureIcon": "Icon", "featureTitle": "Title", "featureDesc": "Description", "tariffs": "Plans", "selectTariffs": "Select plans", "periods": "Periods", "paymentMethods": "Payment Methods", "addMethod": "Add method", "methodId": "Method ID", "methodName": "Name", "methodDesc": "Description", "methodIcon": "Icon URL", "gifts": "Gifts", "giftEnabled": "Gift purchases", "customCss": "CSS", "seo": "SEO", "metaTitle": "Meta Title", "metaDesc": "Meta Description", "active": "Active", "inactive": "Inactive", "purchaseCount": "purchases", "copyUrl": "Copy URL", "urlCopied": "URL copied", "deleteConfirm": "Delete landing \"{{title}}\"?", "created": "Landing created", "updated": "Landing updated", "deleted": "Landing deleted", "saveOrder": "Save order", "orderSaved": "Order saved", "general": "General", "content": "Content", "save": "Save", "back": "Back", "invalidSlug": "Slug can only contain lowercase letters, numbers, and hyphens", "titleRequired": "Title is required", "noTariffs": "Select at least one tariff", "noPaymentMethods": "Add at least one payment method", "selectMethods": "Select available methods", "noSystemMethods": "No payment methods configured in the system", "methodOrder": "Drag to reorder", "methodSubOptions": "Payment sub-options", "loadingPeriods": "Loading...", "periodDaySuffix": "d", "localeTab": "Language", "localeHint": "Switch language to edit text in that language", "discount": "Discount", "discountEnabled": "Enable discount", "discountPercent": "Discount %", "discountStartsAt": "Start date", "discountEndsAt": "End date", "discountBadge": "Banner text (optional)", "discountBadgePlaceholder": "e.g. Spring sale!", "discountOverrides": "Per-tariff overrides", "discountOverridesHint": "Leave empty to use global discount", "discountPreview": "Preview", "discountActive": "Discount", "background": "Animated background", "analytics": "Analytics", "viewGoal": "View goal", "clickGoal": "Payment click goal", "statistics": "Statistics", "stats": { "title": "Landing Statistics", "totalPurchases": "Purchases", "revenue": "Revenue", "giftPurchases": "Gifts", "regularPurchases": "Regular", "conversionRate": "Conversion", "avgPurchase": "Avg. Check", "dailyChart": "Purchases & Revenue by Day", "tariffChart": "Tariff Distribution", "giftBreakdown": "Gifts vs Regular", "purchases": "Purchases", "revenueLabel": "Revenue", "gifts": "Gifts", "regular": "Regular", "created": "Created", "successful": "Successful", "funnel": "Funnel", "loadError": "Failed to load statistics", "noPurchases": "No purchases", "paid": "paid", "dailyPurchases": "Purchases per day" }, "purchases": { "title": "Purchases", "contact": "Contact", "recipient": "Recipient", "tariff": "Tariff", "period": "Period", "days": "days", "price": "Price", "method": "Method", "date": "Date", "gift": "Gift", "forSelf": "For self", "allStatuses": "All statuses", "status_pending": "Pending", "status_paid": "Paid", "status_delivered": "Delivered", "status_pending_activation": "Pending activation", "status_failed": "Failed", "status_expired": "Expired", "noPurchases": "No purchases", "showing": "Showing {{from}}–{{to}} of {{total}}", "page": "Page {{current}} of {{total}}", "prev": "Previous", "next": "Next" }, "methodCurrency": "Currency", "methodDescPlaceholder": "Short description shown to the user", "methodDescription": "Method description", "methodDisplayName": "Display name", "methodIconUrl": "Icon URL", "methodMaxAmount": "Maximum amount", "methodMinAmount": "Minimum amount", "methodReturnUrl": "Return URL", "stickyPayButton": "Sticky pay button" }, "infoPages": { "title": "Information Pages", "subtitle": "Manage static information pages", "create": "Create Page", "createFaq": "Create FAQ", "edit": "Edit", "save": "Save", "saving": "Saving...", "saved": "Page saved", "delete": "Delete", "confirmDelete": "Delete this page?", "saveError": "Failed to save page. Please try again.", "noPages": "No information pages yet", "notFound": "Page not found", "active": "Active", "inactive": "Inactive", "typePage": "Page", "localeLabel": "Content Language", "fields": { "slug": "URL Slug", "title": "Title", "content": "Content", "isActive": "Active", "sortOrder": "Sort Order", "icon": "Icon (emoji)", "pageType": "Page Type", "replacesTab": "Replaces Tab" }, "replacesTabNone": "None", "replacesTabOptions": { "faq": "FAQ", "rules": "Rules", "privacy": "Privacy", "offer": "Offer" }, "replacesTabConflict": "already assigned", "replacesTabWarning": "Another page already replaces this tab. It will be unassigned on save.", "filter": { "all": "All", "page": "Pages", "faq": "FAQ" }, "pageTypes": { "page": "Page", "faq": "FAQ" }, "faq": { "questions": "Questions & Answers", "questionsCount": "questions", "noQuestions": "No questions yet. Click the button below to add one.", "questionNumber": "Question #{{n}}", "question": "Question", "answer": "Answer", "questionPlaceholder": "Enter question...", "answerPlaceholder": "Enter answer (HTML supported)...", "htmlHint": "HTML markup is supported", "addQuestion": "Add Question", "removeQuestion": "Remove question", "moveUp": "Move up", "moveDown": "Move down", "searchPlaceholder": "Search questions...", "noResults": "No results found" }, "locales": { "ru": "Russian", "en": "English", "zh": "Chinese", "fa": "Persian" } } }, "adminUpdates": { "title": "Updates", "subtitle": "Bot and cabinet release history", "bot": "Bot", "cabinet": "Cabinet", "currentVersion": "Current version", "upToDate": "Up to date", "updateAvailable": "Update available", "published": "Published", "prerelease": "Pre-release", "refresh": "Check for updates", "noReleases": "No release data" }, "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", "showMore": "Show more" }, "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" }, "systemInfo": { "title": "System", "cabinet": "Cabinet", "bot": "Bot", "python": "Python", "uptime": "Uptime", "users": "Users", "activeSubs": "Active Subs" } }, "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", "resendIn": "Resend in {{seconds}} sec.", "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" }, "accounts": { "title": "Connected Accounts", "subtitle": "Manage your sign-in methods", "linked": "Connected", "notLinked": "Not connected", "link": "Connect", "unlink": "Disconnect", "unlinkConfirm": "Are you sure? You won't be able to sign in with this service after disconnecting.", "unlinkConfirmBtn": "Confirm disconnect?", "cannotUnlinkLast": "Cannot disconnect the last sign-in method", "linkSuccess": "Account connected successfully", "unlinkSuccess": "Account disconnected successfully", "linkError": "Failed to connect account", "telegramLinkUnavailable": "Telegram linking is temporarily unavailable. Use the bot:", "unlinkError": "Failed to disconnect account", "goToAccounts": "Connected Accounts", "linking": "Linking account...", "linkingTelegram": "Connecting Telegram...", "returnToTelegram": "Return to Telegram to continue", "openTelegram": "Open Telegram", "continueInBrowser": "Continue authorization in the opened browser", "pollingTimeout": "Authorization check timed out. Refresh the page if you completed linking.", "providers": { "telegram": "Telegram", "email": "Email", "google": "Google", "yandex": "Yandex", "discord": "Discord", "vk": "VK" }, "backToAccounts": "Back to accounts" } }, "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" }, "deactivate": { "button": "Cancel promo code", "confirmTitle": "Cancel promo code?", "confirmDescription": "Are you sure you want to cancel the {{percent}}% discount? After cancellation, you will be able to activate another promo code.", "warning": "A cancelled promo code cannot be reused. The discount will stop working immediately.", "confirm": "Cancel discount", "deactivating": "Cancelling...", "error": "Failed to cancel promo code. Please try again later.", "success": "Offer deactivated" } }, "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.", "subscribed": "Subscribed", "channelsRequired": "Subscribe to all channels below to continue" }, "blacklisted": { "title": "Access Denied", "defaultMessage": "Your account has been blocked.", "reason": "Reason", "contactSupport": "If you believe this is an error, please contact support." }, "accountDeleted": { "title": "Account deactivated", "description": "Your account was deactivated after a long period of inactivity. To restore access, open the bot in Telegram and send /start.", "openBot": "Open the bot", "retry": "I pressed /start, retry", "hint": "After running /start, return here and tap «Retry»." } }, "merge": { "title": "Merge Accounts", "description": "This sign-in method is already linked to another account. You can merge both accounts into one.", "currentAccount": "Your current account", "foundAccount": "Found account", "authMethods": "Sign-in methods", "subscription": "Subscription", "noSubscription": "No subscription", "traffic": "Traffic", "devices": "Devices", "balance": "Balance", "until": "until {{date}}", "keepThisSubscription": "Keep this subscription", "chooseSubscription": "Choose which subscription to keep", "afterMerge": "After merging", "allAuthMethodsMerged": "All sign-in methods will be combined", "balanceSummed": "Balance: {{amount}} ₽ (combined)", "unselectedSubscriptionDeleted": "The unselected subscription will be deleted", "historyPreserved": "Transaction history will be preserved", "confirm": "Merge Accounts", "cancel": "Cancel", "expired": "The merge link has expired. Please try again.", "success": "Accounts merged successfully!", "error": "Failed to merge accounts. Please try again later.", "expiresIn": "Expires in {{minutes}}", "merging": "Merging..." }, "landing": { "notFound": "Page not found", "forMe": "For me", "asGift": "As a gift", "contactLabel": "Your email or @username", "yourContact": "Your email or @username", "contactPlaceholder": "email@example.com or @username", "contactHint": "Enter email or Telegram @username", "recipientLabel": "Gift recipient", "recipientPlaceholder": "Recipient email or @username", "giftMessageLabel": "Greeting (optional)", "giftMessagePlaceholder": "Write a greeting...", "chooseTariff": "Choose a plan", "devices": "devices", "paymentMethod": "Payment method", "processing": "Processing...", "payButton": "Pay {{price}}", "accessFor": "Access for {{period}}", "purchaseError": "Failed to create payment", "purchaseNotFound": "Purchase not found", "awaitingPayment": "Awaiting payment", "awaitingPaymentDesc": "Complete the payment in the opened window", "purchaseSuccess": "Payment successful!", "keySentTo": "Subscription key sent to {{contact}}", "giftSentTo": "Gift sent to {{contact}}", "purchaseFailed": "Payment failed", "purchaseFailedDesc": "Payment was unsuccessful. Try again.", "subscriptionLink": "Subscription link", "daysAccess": "days of access", "error": "Error", "gb": "GB", "selectedTariff": "Tariff", "period": "Period", "total": "Total", "pay": "Pay", "choosePeriod": "Choose period", "copy": "Copy", "copied": "Copied!", "copyLink": "Copy link", "giftToggleLabel": "Purchase type", "pollTimedOut": "Taking longer than expected", "pollTimedOutDesc": "Payment processing is taking longer than usual. You can try checking again.", "pendingActivation": "Subscription ready to activate", "pendingActivationDesc": "You already have an active subscription. Activating will replace it.", "activateNow": "Activate now", "activating": "Activating...", "activationFailed": "Activation failed", "giftMessage": "Message", "cabinetReady": "Your account is ready", "cabinetEmail": "Email", "cabinetPassword": "Password", "goToCabinet": "Go to Cabinet", "saveCredentials": "Save these login credentials", "credentialsSentToEmail": "Login credentials sent to your email", "giftSentSuccess": "Gift sent!", "giftSentDesc": "Recipient will be notified by email", "giftPendingActivationDesc": "The recipient already has an active subscription. They will receive a link to activate the gift.", "giftTelegramSent": "Gift notification sent to recipient via Telegram", "giftTelegramNotInBot": "Recipient hasn't started the bot yet. Send them this link:", "giftTelegramPendingSent": "Activation request sent to recipient via Telegram", "giftTelegramPendingNotInBot": "Recipient hasn't started the bot yet. Send them the bot link so they can activate the gift:", "openBot": "Open bot", "autoLoginFailed": "Auto-login failed", "autoLoginProcessing": "Signing in...", "discount": { "days": "d", "hours": "h", "minutes": "m", "seconds": "s" }, "periodLabels": { "d1": "1 day", "d2": "2 days", "d3": "3 days", "d5": "5 days", "d7": "1 week", "d14": "2 weeks", "d30": "1 month", "d60": "2 months", "d90": "3 months", "d180": "6 months", "d365": "1 year", "d456": "1 year + 3 mo.", "nDays_one": "{{count}} day", "nDays_other": "{{count}} days", "nMonths_one": "{{count}} month", "nMonths_other": "{{count}} months", "nDays": "{{count}} days", "nMonths": "{{count}} months" } }, "gift": { "title": "Gift Subscription", "subtitle": "Send a VPN subscription as a gift", "choosePeriod": "Choose period", "chooseTariff": "Choose tariff", "recipient": "Recipient", "recipientPlaceholder": "Email or @telegram", "recipientHint": "Enter email or Telegram username", "giftMessage": "Greeting", "giftMessagePlaceholder": "Add a personal message (optional)", "paymentMode": "Payment method", "fromBalance": "From balance", "viaGateway": "Via payment gateway", "yourBalance": "Your balance", "insufficientBalance": "Insufficient funds", "topUpBalance": "Top up balance", "total": "Total", "giftButton": "Send Gift", "sending": "Sending gift...", "gb": "GB", "devices": "devices", "paymentMethod": "Payment method", "processing": "Processing...", "successTitle": "Gift sent!", "successDesc": "Recipient {{contact}} will be notified", "pendingTitle": "Awaiting payment", "pendingDesc": "Complete the payment in the payment system", "pendingActivationTitle": "Pending activation", "pendingActivationDesc": "Recipient has an active subscription. Gift is pending activation.", "failedTitle": "Error", "failedDesc": "Failed to send gift. Please try again.", "backToGift": "Go back", "backToDashboard": "Back to dashboard", "tryAgain": "Try again", "pollTimeout": "Processing is taking longer than usual", "pollTimeoutDesc": "Try checking the status later", "pollErrorTitle": "Could not check gift status", "pollErrorDesc": "Your purchase was successful. Check your dashboard for details.", "retry": "Check again", "notFound": "Gift configuration not found", "noToken": "Invalid link", "noTokenDesc": "This gift link is invalid or has expired.", "days": "days", "tariff": "Tariff", "period": "Period", "giftMessageLabel": "Message", "recipientLabel": "Recipient", "featureDisabled": "Gift feature is temporarily unavailable", "redirecting": "Redirecting...", "pending": { "title": "You received a gift!", "from": "from {{sender}}", "activate": "Activate" }, "warning": { "telegram_unresolvable": "Could not verify this Telegram username. The recipient may not receive a notification about the gift." }, "pageTitle": "Gifts", "tabBuy": "Buy", "tabActivate": "Activate", "tabMyGifts": "My Gifts", "selectTariff": "SELECT TARIFF", "selectPeriod": "SUBSCRIPTION PERIOD", "deviceCount": "{{count}} device", "deviceCount_other": "{{count}} devices", "activateTitle": "Enter gift code", "activateDescription": "Enter the gift code you received from a friend", "activateCodePlaceholder": "GIFT-XXXXXXXXXXXX", "activateButton": "Activate gift", "activating": "Activating...", "activateSuccess": "Gift activated!", "activateSuccessDesc": "{{tariff}}: {{days}} days added to your subscription", "activateError": "Failed to activate gift", "activateSelfError": "You cannot activate your own gift", "myGiftsEmpty": "No gifts yet", "myGiftsEmptyDesc": "Buy a gift for a friend or activate a received code", "sentGiftsTitle": "Sent", "activeGiftsTitle": "Active gifts", "activatedGiftsTitle": "Activated", "receivedGiftsTitle": "Received", "statusAvailable": "AVAILABLE", "statusActivated": "ACTIVATED", "statusPending": "PENDING", "statusDelivered": "DELIVERED", "statusFailed": "FAILED", "statusExpired": "EXPIRED", "statusPendingActivation": "PENDING ACTIVATION", "copyCode": "COPY", "codeCopied": "Code copied!", "shareGift": "SHARE", "shareText": "I have a gift for you! Activate it here:", "codeReadyTitle": "Gift code is ready!", "codeLabel": "Gift code", "sharePreview": "Message to share", "activatedBy": "Activated by {{username}}", "sentTo": "Sent to {{recipient}}", "daysShort": "days", "devicesShort": "dev.", "gbShort": "GB", "unlimitedTraffic": "Unlimited", "shareModalActivateVia": "Activate via bot:", "shareModalActivateViaCabinet": "Or via website:", "copyMessage": "Copy message", "shareToastCopied": "Message copied" }, "news": { "title": "News & Updates", "filterAll": "All", "readMore": "Read more", "readTime": "min read", "loadMore": "Load more", "noNews": "No news yet", "backToHome": "Back", "views": "views", "admin": { "title": "News Management", "create": "Create Article", "edit": "Edit", "delete": "Delete", "confirmDelete": "Delete this article?", "published": "Published", "draft": "Draft", "featured": "Featured", "titleLabel": "Title", "slugLabel": "URL Slug", "categoryLabel": "Category", "categoryColorLabel": "Category Color", "tagLabel": "Tag", "excerptLabel": "Short Description", "contentLabel": "Content", "imageLabel": "Featured Image", "readTimeLabel": "Read Time (min)", "save": "Save", "saving": "Saving...", "saveError": "Failed to save article. Please try again.", "saved": "Article saved", "deleted": "Article deleted", "selectColor": "Select color {{color}}", "uploading": "Uploading...", "dropMedia": "Drop image or video here", "uploadError": "Upload failed", "fileTooLarge": "File is too large", "uploadFeaturedImage": "Upload image", "combobox": { "selectCategory": "Select category", "selectTag": "Select tag", "create": "Create", "createNew": "Create new", "searchOrCreate": "Search or create...", "noItems": "Nothing found", "placeholder": "Select...", "clear": "Clear", "delete": "Delete {{name}}" }, "toolbar": { "bold": "Bold", "italic": "Italic", "underline": "Underline", "strikethrough": "Strikethrough", "heading1": "Heading 1", "heading2": "Heading 2", "heading3": "Heading 3", "bulletList": "Bullet List", "orderedList": "Ordered List", "blockquote": "Blockquote", "codeBlock": "Code Block", "alignLeft": "Align Left", "alignCenter": "Align Center", "highlight": "Highlight", "link": "Link", "image": "Image", "imageUrlPrompt": "Image URL:", "linkUrlPrompt": "URL:" } } }, "subscriptions": { "buy": "Buy subscription", "buyAnother": "Buy another subscription", "empty": "You have no subscriptions yet", "emptyDesc": "Choose a tariff to get started", "title": "My subscriptions" } }