mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 17:43:47 +00:00
2392 lines
84 KiB
JSON
2392 lines
84 KiB
JSON
{
|
||
"common": {
|
||
"loading": "Loading...",
|
||
"error": "Error",
|
||
"success": "Success",
|
||
"save": "Save",
|
||
"cancel": "Cancel",
|
||
"confirm": "Confirm",
|
||
"back": "Back",
|
||
"next": "Next",
|
||
"close": "Close",
|
||
"search": "Search",
|
||
"noData": "No data",
|
||
"actions": "Actions",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"or": "or",
|
||
"add": "Add",
|
||
"and": "and",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"currency": "$",
|
||
"refresh": "Refresh",
|
||
"copy": "Copy",
|
||
"all": "All",
|
||
"units": {
|
||
"gb": "GB",
|
||
"perGb": "/GB"
|
||
},
|
||
"retry": "Retry",
|
||
"saving": "Saving...",
|
||
"understand": "Got it"
|
||
},
|
||
"nav": {
|
||
"dashboard": "Dashboard",
|
||
"subscription": "Subscription",
|
||
"balance": "Balance",
|
||
"referral": "Referrals",
|
||
"support": "Support",
|
||
"profile": "Profile",
|
||
"logout": "Logout",
|
||
"contests": "Contests",
|
||
"polls": "Polls",
|
||
"info": "Info",
|
||
"wheel": "Fortune Wheel",
|
||
"menu": "Menu"
|
||
},
|
||
"notifications": {
|
||
"ticketNotifications": "Ticket Notifications",
|
||
"markAllRead": "Mark all read",
|
||
"noNotifications": "No notifications",
|
||
"justNow": "Just now",
|
||
"minutesAgo": "{{count}} min ago",
|
||
"minutesAgo_one": "{{count}} min ago",
|
||
"minutesAgo_other": "{{count}} min ago",
|
||
"hoursAgo": "{{count}} h ago",
|
||
"hoursAgo_one": "{{count}} h ago",
|
||
"hoursAgo_other": "{{count}} h ago",
|
||
"daysAgo": "{{count}} d ago",
|
||
"daysAgo_one": "{{count}} d ago",
|
||
"daysAgo_other": "{{count}} d ago",
|
||
"viewAll": "View all tickets",
|
||
"newNotification": "New notification",
|
||
"clickToView": "Click to view",
|
||
"newTicket": "New ticket: {{title}}",
|
||
"newReply": "New reply in ticket: {{title}}",
|
||
"newTicketTitle": "New Ticket",
|
||
"newReplyTitle": "New Reply",
|
||
"newUserReply": "User replied in ticket: {{title}}",
|
||
"newUserReplyTitle": "User Reply"
|
||
},
|
||
"wsNotifications": {
|
||
"balance": {
|
||
"topupTitle": "Balance topped up",
|
||
"topupMessage": "Your balance has been topped up by {{amount}} {{currency}}",
|
||
"changeTitle": "Balance updated",
|
||
"changeMessage": "Your balance has changed by {{amount}} {{currency}}"
|
||
},
|
||
"subscription": {
|
||
"activatedTitle": "Subscription activated",
|
||
"activatedMessage": "Your subscription is now active!",
|
||
"activatedWithTariff": "Your subscription \"{{tariff}}\" is now active!",
|
||
"renewedTitle": "Subscription renewed",
|
||
"renewedMessage": "Your subscription has been renewed!",
|
||
"renewedWithAmount": "Your subscription has been renewed for {{amount}} {{currency}}",
|
||
"expiringTitle": "Subscription expiring soon",
|
||
"expiringMessage": "Your subscription expires in {{days}} days",
|
||
"expiredTitle": "Subscription expired",
|
||
"expiredMessage": "Your subscription has expired. Renew to continue using the service.",
|
||
"dailyDebitTitle": "Daily charge",
|
||
"dailyDebitMessage": "Daily subscription fee: {{amount}} {{currency}}",
|
||
"trafficResetTitle": "Traffic reset",
|
||
"trafficResetMessage": "Your traffic limit has been reset"
|
||
},
|
||
"autopay": {
|
||
"successTitle": "Auto-renewal successful",
|
||
"successMessage": "Your subscription was auto-renewed for {{amount}} {{currency}}",
|
||
"failedTitle": "Auto-renewal failed",
|
||
"failedMessage": "Failed to auto-renew your subscription",
|
||
"insufficientTitle": "Insufficient funds",
|
||
"insufficientMessage": "Need {{required}} {{currency}} for renewal, but balance is {{balance}} {{currency}}"
|
||
},
|
||
"account": {
|
||
"bannedTitle": "Account blocked",
|
||
"bannedMessage": "Your account has been blocked",
|
||
"unbannedTitle": "Account unblocked",
|
||
"unbannedMessage": "Your account has been unblocked",
|
||
"warningTitle": "Warning",
|
||
"warningMessage": "You have received a warning"
|
||
},
|
||
"referral": {
|
||
"bonusTitle": "Referral bonus",
|
||
"bonusMessage": "You received {{amount}} {{currency}} referral bonus!",
|
||
"bonusWithName": "You received {{amount}} {{currency}} bonus from {{name}}!",
|
||
"registeredTitle": "New referral",
|
||
"registeredMessage": "Someone joined using your referral link!",
|
||
"registeredWithName": "{{name}} joined using your referral link!"
|
||
},
|
||
"payment": {
|
||
"receivedTitle": "Payment received",
|
||
"receivedMessage": "Payment of {{amount}} {{currency}} received"
|
||
}
|
||
},
|
||
"successNotification": {
|
||
"balanceTopup": {
|
||
"title": "Balance topped up!"
|
||
},
|
||
"subscriptionActivated": {
|
||
"title": "Subscription activated!"
|
||
},
|
||
"subscriptionRenewed": {
|
||
"title": "Subscription renewed!"
|
||
},
|
||
"subscriptionPurchased": {
|
||
"title": "Subscription purchased!"
|
||
},
|
||
"amount": "Amount",
|
||
"price": "Price",
|
||
"newBalance": "New balance",
|
||
"tariff": "Tariff",
|
||
"validUntil": "Valid until",
|
||
"goToSubscription": "Go to Subscription",
|
||
"goToBalance": "Go to Balance"
|
||
},
|
||
"auth": {
|
||
"login": "Login",
|
||
"register": "Register",
|
||
"logout": "Logout",
|
||
"email": "Email",
|
||
"password": "Password",
|
||
"confirmPassword": "Confirm Password",
|
||
"firstName": "First Name",
|
||
"firstNamePlaceholder": "Your name (optional)",
|
||
"forgotPassword": "Forgot password?",
|
||
"resetPassword": "Reset password",
|
||
"loginWithTelegram": "Login with Telegram",
|
||
"loginWithEmail": "Login with Email",
|
||
"noAccount": "Don't have an account?",
|
||
"hasAccount": "Already have an account?",
|
||
"or": "or",
|
||
"registerHint": "To register with email, first log in via Telegram, then link your email in settings.",
|
||
"telegramRequired": "Telegram authorization required",
|
||
"telegramNotConfigured": "Telegram bot is not configured",
|
||
"authenticating": "Authenticating...",
|
||
"orOpenInApp": "Or open the bot in the app",
|
||
"loginFailed": "Login Failed",
|
||
"tryAgain": "Try Again",
|
||
"welcomeBack": "Welcome back!",
|
||
"loginTitle": "Login to Cabinet",
|
||
"loginSubtitle": "Sign in with Telegram or use your email",
|
||
"referralInvite": "You've been invited via referral link!",
|
||
"passwordMismatch": "Passwords do not match",
|
||
"passwordTooShort": "Password must be at least 8 characters",
|
||
"invalidEmail": "Please enter a valid email address",
|
||
"emailAlreadyRegistered": "This email is already registered",
|
||
"invalidCredentials": "Invalid email or password",
|
||
"tooManyAttempts": "Too many attempts. Please try again later",
|
||
"verificationEmailNotice": "After registration, a verification email will be sent to your address",
|
||
"checkEmail": "Check your email",
|
||
"verificationSent": "We sent a verification link to:",
|
||
"clickLinkToVerify": "Click the link in the email to verify your account and log in.",
|
||
"backToLogin": "Back to login",
|
||
"emailNotVerified": "Please verify your email first",
|
||
"forgotPasswordHint": "Enter your email to receive a reset link",
|
||
"loginSuccess": "Login successful",
|
||
"passwordResetSent": "Password reset link sent to your email",
|
||
"sendResetLink": "Send reset link"
|
||
},
|
||
"emailVerification": {
|
||
"title": "Email Verification",
|
||
"verifying": "Verifying email...",
|
||
"pleaseWait": "Please wait while we verify your email address.",
|
||
"success": "Email Verified!",
|
||
"successMessage": "Your email has been successfully verified. You can now log in with your email and password.",
|
||
"redirecting": "Redirecting to dashboard...",
|
||
"failed": "Verification Failed",
|
||
"goToLogin": "Go to Login"
|
||
},
|
||
"dashboard": {
|
||
"title": "Dashboard",
|
||
"welcome": "Welcome, {{name}}!",
|
||
"yourSubscription": "Your Subscription",
|
||
"quickActions": "Quick Actions",
|
||
"viewSubscription": "Manage Subscription",
|
||
"topUpBalance": "Top Up Balance",
|
||
"inviteFriends": "Invite Friends",
|
||
"getSupport": "Get Support",
|
||
"currentBalance": "Current Balance",
|
||
"activeUntil": "Active until",
|
||
"noActiveSubscription": "No active subscription",
|
||
"devicesUsed": "Devices: {{used}} of {{total}}",
|
||
"trafficUsed": "Traffic: {{used}} of {{total}} GB",
|
||
"unlimitedTraffic": "Unlimited traffic"
|
||
},
|
||
"subscription": {
|
||
"title": "Subscription",
|
||
"currentPlan": "Current Plan",
|
||
"status": "Status",
|
||
"active": "Active",
|
||
"inactive": "Inactive",
|
||
"trialStatus": "Trial",
|
||
"expired": "Expired",
|
||
"expiresAt": "Expires at",
|
||
"daysLeft": "Days left",
|
||
"devices": "Devices",
|
||
"devices_one": "{{count}} device",
|
||
"devices_other": "{{count}} devices",
|
||
"serversLabel": "Servers",
|
||
"servers_one": "{{count}} server",
|
||
"servers_other": "{{count}} servers",
|
||
"traffic": "Traffic",
|
||
"unlimited": "Unlimited",
|
||
"used": "Used",
|
||
"of": "of",
|
||
"renew": "Renew",
|
||
"extend": "Extend Subscription",
|
||
"buyTraffic": "Buy Traffic",
|
||
"buyDevices": "Buy Devices",
|
||
"renewalOptions": "Renewal Options",
|
||
"days": "days",
|
||
"days_one": "{{count}} day",
|
||
"days_other": "{{count}} days",
|
||
"hours": "h",
|
||
"hours_one": "{{count}} h",
|
||
"hours_other": "{{count}} h",
|
||
"minutes": "m",
|
||
"minutes_one": "{{count}} m",
|
||
"minutes_other": "{{count}} m",
|
||
"price": "Price",
|
||
"noSubscription": "You don't have an active subscription",
|
||
"getSubscription": "Get Subscription",
|
||
"connectionInfo": "Connection Info",
|
||
"copyLink": "Copy Link",
|
||
"copied": "Copied!",
|
||
"showQR": "Show QR Code",
|
||
"downloadConfig": "Download Config",
|
||
"trafficUsed": "Traffic used",
|
||
"timeLeft": "Time left",
|
||
"getConfig": "Connect Devices",
|
||
"autoRenewal": "Auto-renewal",
|
||
"daysBeforeExpiry": "days before expiry",
|
||
"daysBeforeExpiry_one": "{{count}} day before expiry",
|
||
"daysBeforeExpiry_other": "{{count}} days before expiry",
|
||
"selectPeriod": "Select Period",
|
||
"selectTraffic": "Select Traffic",
|
||
"selectServers": "Select Servers",
|
||
"selectDevices": "Devices",
|
||
"perDevice": "/ device",
|
||
"devicesFree": "devices free",
|
||
"devicesFree_one": "{{count}} device free",
|
||
"devicesFree_other": "{{count}} devices free",
|
||
"perExtraDevice": "/ extra device",
|
||
"extraDevices": "Extra devices",
|
||
"extraDevicesIncluded": "Incl. {{count}} extra dev.",
|
||
"extraDevicesIncluded_one": "Incl. {{count}} extra dev.",
|
||
"extraDevicesIncluded_other": "Incl. {{count}} extra dev.",
|
||
"baseTariff": "Tariff",
|
||
"perMonth": "/mo",
|
||
"summary": "Summary",
|
||
"total": "Total",
|
||
"purchase": "Purchase",
|
||
"step": "Step {{current}} of {{total}}",
|
||
"stepPeriod": "Period",
|
||
"stepTraffic": "Traffic",
|
||
"stepServers": "Servers",
|
||
"stepDevices": "Devices",
|
||
"stepConfirm": "Confirm",
|
||
"currentTariff": "Current",
|
||
"from": "from",
|
||
"month": "mo",
|
||
"insufficientBalance": "Insufficient balance. Missing {{missing}} ₽",
|
||
"trial": {
|
||
"title": "Free Trial",
|
||
"titlePaid": "Trial Subscription",
|
||
"description": "Try our VPN service!",
|
||
"days": "days",
|
||
"days_one": "{{count}} day",
|
||
"days_other": "{{count}} days",
|
||
"devices": "devices",
|
||
"devices_one": "{{count}} device",
|
||
"devices_other": "{{count}} devices",
|
||
"price": "Price",
|
||
"activate": "Activate Free",
|
||
"payAndActivate": "Pay & Activate",
|
||
"topUpToActivate": "Top Up Balance",
|
||
"insufficientBalance": "Top up your balance to activate",
|
||
"unavailable": "Trial is not available"
|
||
},
|
||
"connection": {
|
||
"title": "Connect VPN",
|
||
"selectDevice": "Select your device",
|
||
"selectApp": "Select app",
|
||
"installApp": "1. Install the app",
|
||
"addSubscription": "2. Add subscription",
|
||
"connectVpn": "3. Connect VPN",
|
||
"addToApp": "Add to {{appName}}",
|
||
"connect": "Connect",
|
||
"noApps": "No apps available for this platform",
|
||
"noSubscription": "You need an active subscription to connect",
|
||
"featured": "Recommended",
|
||
"yourDevice": "Your device",
|
||
"copyLink": "Copy subscription link",
|
||
"copied": "Link copied!",
|
||
"openLink": "Open link",
|
||
"instructions": "Instructions",
|
||
"changeApp": "Change app",
|
||
"selectPlatform": "Select platform",
|
||
"app": "app",
|
||
"apps": "apps"
|
||
},
|
||
"myDevices": "My Devices",
|
||
"noDevices": "No connected devices",
|
||
"deleteDevice": "Delete device",
|
||
"deleteAllDevices": "Delete all",
|
||
"confirmDeleteDevice": "Delete this device?",
|
||
"confirmDeleteAllDevices": "Delete all devices?",
|
||
"deviceDeleted": "Device deleted",
|
||
"allDevicesDeleted": "All devices deleted",
|
||
"platform": "Platform",
|
||
"model": "Model",
|
||
"connectedAt": "Connected",
|
||
"pause": {
|
||
"title": "Subscription Pause",
|
||
"paused": "Paused",
|
||
"active": "Active",
|
||
"pauseBtn": "Pause",
|
||
"resumeBtn": "Resume",
|
||
"pausedMessage": "Subscription paused",
|
||
"resumedMessage": "Subscription resumed",
|
||
"dailyOnly": "Pause is only available for daily tariffs",
|
||
"insufficientBalance": "Insufficient balance to resume subscription",
|
||
"pausedInfo": "Subscription paused",
|
||
"pausedDescription": "Charges stopped. Subscription will be active until",
|
||
"nextCharge": "Until next charge",
|
||
"willBeCharged": "Will be charged",
|
||
"days_one": "{{count}} day",
|
||
"days_few": "{{count}} days",
|
||
"days_many": "{{count}} days",
|
||
"days": "d.",
|
||
"hours": "h",
|
||
"minutes": "m"
|
||
},
|
||
"dailyPurchase": {
|
||
"costPerDay": "Cost per day",
|
||
"chargedDaily": "Payment is charged daily from balance",
|
||
"canPause": "Can be paused at any time",
|
||
"pausedOnLowBalance": "Subscription will be paused if balance is insufficient",
|
||
"activate": "Activate for {{price}}"
|
||
},
|
||
"switchTariff": {
|
||
"title": "Switch Tariff",
|
||
"preview": "Preview",
|
||
"currentTariff": "Current tariff",
|
||
"newTariff": "New tariff",
|
||
"remainingDays": "Days remaining",
|
||
"upgradeCost": "Upgrade cost",
|
||
"free": "Free",
|
||
"switch": "Switch",
|
||
"switched": "Tariff switched",
|
||
"notEnoughBalance": "Insufficient balance",
|
||
"dailyPayment": "Daily payment",
|
||
"dailyChargeDescription": "Charged daily from your balance"
|
||
},
|
||
"switchTraffic": {
|
||
"title": "Change Traffic",
|
||
"currentPackage": "Current package",
|
||
"newPackage": "New package",
|
||
"switch": "Change",
|
||
"switched": "Traffic changed"
|
||
},
|
||
"purchasedTraffic": "Purchased Traffic",
|
||
"trafficResetAt": "Reset",
|
||
"additionalOptions": {
|
||
"title": "Additional options",
|
||
"buyDevices": "Buy more devices",
|
||
"currentDeviceLimit": "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": "Tariff minimum: {{count}} devices",
|
||
"connectedDevices": "Connected devices: {{count}}",
|
||
"disconnectDevicesFirst": "Disconnect devices first to reduce the limit below {{count}}",
|
||
"reduceUnavailable": "Device reduction is not available",
|
||
"alreadyAtMinDeviceLimit": "Already at minimum device limit for your tariff",
|
||
"reduce": "Reduce",
|
||
"reducing": "Reducing...",
|
||
"newDeviceLimit": "New limit: {{count}} devices",
|
||
"buyTraffic": "Buy more traffic",
|
||
"currentTrafficLimit": "Current limit: {{limit}} GB (used {{used}} GB)",
|
||
"buyTrafficTitle": "Buy more traffic",
|
||
"trafficWarning": "Purchased traffic is added to your current limit and does not carry over to the next period",
|
||
"trafficUnavailable": "Traffic purchase is not available for your tariff",
|
||
"unlimited": "Unlimited",
|
||
"buyTrafficGb": "Buy {{gb}} GB",
|
||
"manageServers": "Server management",
|
||
"manageServersTitle": "Server management"
|
||
},
|
||
"serverManagement": {
|
||
"statusLegend": "✅ — connected • ➕ — will be added (paid) • ➖ — will be disconnected",
|
||
"discountBanner": "Your server discount: -{{percent}}%",
|
||
"forDays": "(for {{days}} days)",
|
||
"perMonth": "/mo",
|
||
"unavailable": "Unavailable",
|
||
"toAdd": "Add:",
|
||
"toDisconnect": "Disconnect:",
|
||
"paymentProrated": "Payment (prorated for remaining days):",
|
||
"applyChanges": "Apply changes",
|
||
"selectServersHint": "Select servers to connect or disconnect",
|
||
"noServersAvailable": "No servers available to manage"
|
||
},
|
||
"legacy": {
|
||
"selectTariffTitle": "Select a tariff to renew",
|
||
"selectTariffDescription": "Your current subscription was created before tariffs were introduced. To renew, please select one of the available tariffs.",
|
||
"currentSubContinues": "Your current subscription will remain active until it expires."
|
||
},
|
||
"promoGroup": {
|
||
"yourGroup": "Your group: {{name}}",
|
||
"personalDiscountsApplied": "Personal discounts applied to prices"
|
||
},
|
||
"tariff": {
|
||
"perDay": "/ day",
|
||
"flexiblePayment": "Flexible payment",
|
||
"selectForRenewal": "Select for renewal"
|
||
},
|
||
"customDays": {
|
||
"title": "Custom number of days",
|
||
"perDay": "/day"
|
||
},
|
||
"customTraffic": {
|
||
"label": "Traffic",
|
||
"selectVolume": "Select traffic volume",
|
||
"default": "Default: {{label}}"
|
||
},
|
||
"summary": {
|
||
"period": "Period: {{label}}",
|
||
"traffic": "Traffic: {{gb}} GB"
|
||
}
|
||
},
|
||
"balance": {
|
||
"title": "Balance",
|
||
"currentBalance": "Current Balance",
|
||
"topUp": "Top Up",
|
||
"topUpBalance": "Top Up Balance",
|
||
"enterAmount": "Enter amount",
|
||
"paymentMethod": "Payment Method",
|
||
"paymentMethods": "Payment Methods",
|
||
"transactionHistory": "Transaction History",
|
||
"noTransactions": "No transactions",
|
||
"date": "Date",
|
||
"type": "Type",
|
||
"description": "Description",
|
||
"amount": "Amount",
|
||
"deposit": "Deposit",
|
||
"withdrawal": "Withdrawal",
|
||
"subscriptionPayment": "Subscription Payment",
|
||
"referralReward": "Referral Reward",
|
||
"minAmount": "Min.",
|
||
"maxAmount": "Max.",
|
||
"notAvailable": "Not available",
|
||
"useBot": "Please use the Telegram bot to top up your balance.",
|
||
"page": "Page {{current}} of {{total}}",
|
||
"invalidAmount": "Invalid amount",
|
||
"promocode": {
|
||
"title": "Promo Code",
|
||
"placeholder": "Enter promo code",
|
||
"activate": "Activate",
|
||
"activating": "Activating...",
|
||
"success": "Promo code activated successfully!",
|
||
"balanceAdded": "Balance added: {{amount}} ₽",
|
||
"errors": {
|
||
"not_found": "Promo code not found",
|
||
"expired": "Promo code has expired",
|
||
"used": "Promo code has already been used",
|
||
"already_used_by_user": "You have already used this promo code",
|
||
"user_not_found": "User not found",
|
||
"server_error": "Server error"
|
||
}
|
||
},
|
||
"minAmountError": "Minimum amount: {{amount}} ₽",
|
||
"maxAmountError": "Maximum amount: {{amount}} ₽",
|
||
"paymentOption": "Payment option",
|
||
"selectPaymentOption": "Select payment option",
|
||
"selectPaymentMethod": "Select payment method",
|
||
"insufficientFunds": "Insufficient funds",
|
||
"topUpToComplete": "Top up your balance to complete the purchase",
|
||
"missing": "Missing",
|
||
"noPaymentMethods": "No payment methods available",
|
||
"paymentMethods": {
|
||
"yookassa": {
|
||
"description": "Pay via YooKassa"
|
||
},
|
||
"cryptobot": {
|
||
"description": "Pay with cryptocurrency via CryptoBot"
|
||
},
|
||
"telegram_stars": {
|
||
"description": "Pay with Telegram Stars"
|
||
},
|
||
"heleket": {
|
||
"description": "Pay with cryptocurrency via Heleket"
|
||
},
|
||
"mulenpay": {
|
||
"description": "Pay via MulenPay"
|
||
},
|
||
"pal24": {
|
||
"description": "Pay via PAL24"
|
||
},
|
||
"platega": {
|
||
"description": "Pay via Platega"
|
||
},
|
||
"wata": {
|
||
"description": "Pay via Wata"
|
||
},
|
||
"cloudpayments": {
|
||
"description": "Pay with bank card via CloudPayments"
|
||
},
|
||
"freekassa": {
|
||
"description": "Pay via FreeKassa"
|
||
},
|
||
"tribute": {
|
||
"description": "Pay with bank card via Tribute"
|
||
}
|
||
},
|
||
"pendingPayments": {
|
||
"title": "Pending Payments",
|
||
"pay": "Pay",
|
||
"checkStatus": "Check Status",
|
||
"checking": "Checking..."
|
||
},
|
||
"paymentReady": "Payment link is ready",
|
||
"clickToOpenPayment": "Click the button below to open the payment page in a new tab",
|
||
"openPaymentPage": "Open payment page",
|
||
"errors": {
|
||
"noPaymentLink": "Server did not return a payment link",
|
||
"starsOnlyInTelegram": "Stars payment is only available in Telegram Mini App",
|
||
"generic": "Error: {{details}}",
|
||
"invoiceFailed": "Failed to create invoice",
|
||
"rateLimit": "Please wait {{seconds}} sec.",
|
||
"selectMethod": "Select a method",
|
||
"enterAmount": "Enter an amount",
|
||
"amountRange": "Amount: {{min}} – {{max}} ₽"
|
||
},
|
||
"paymentSuccess": {
|
||
"title": "Payment Successful",
|
||
"message": "Your balance has been topped up successfully. The funds are now available."
|
||
}
|
||
},
|
||
"referral": {
|
||
"title": "Referral Program",
|
||
"yourLink": "Your Referral Link",
|
||
"copyLink": "Copy Link",
|
||
"copied": "Copied!",
|
||
"shareButton": "Share",
|
||
"shareMessage": "Join me on {{botName}} and earn up to {{percent}}% cashback!",
|
||
"shareHint": "Share this link with friends. When they sign up and make a purchase, you'll earn {{percent}}% commission!",
|
||
"stats": {
|
||
"totalReferrals": "Total Referrals",
|
||
"activeReferrals": "Active",
|
||
"totalEarnings": "Total Earnings",
|
||
"commissionRate": "Commission Rate"
|
||
},
|
||
"terms": {
|
||
"title": "Program Terms",
|
||
"commission": "Commission",
|
||
"minTopup": "Min. Top-up",
|
||
"newUserBonus": "New User Bonus",
|
||
"inviterBonus": "Inviter Bonus"
|
||
},
|
||
"yourReferrals": "Your Referrals",
|
||
"noReferrals": "No referrals yet. Share your link to invite friends!",
|
||
"user": "User",
|
||
"joined": "Joined",
|
||
"hasPaid": "Has Paid",
|
||
"status": {
|
||
"pending": "Pending",
|
||
"paid": "Paid"
|
||
},
|
||
"earningsHistory": "Earnings History",
|
||
"reason": "Reason",
|
||
"reasons": {
|
||
"referral_registration_pending": "Referral Registration",
|
||
"referral_registration": "Referral Registration",
|
||
"referral_first_payment": "Referral First Payment",
|
||
"referral_subscription_renewal": "Referral Subscription Renewal",
|
||
"referral_bonus": "Referral Bonus"
|
||
},
|
||
"disabled": "Referral program is currently disabled"
|
||
},
|
||
"support": {
|
||
"title": "Support",
|
||
"newTicket": "New Ticket",
|
||
"yourTickets": "Your Tickets",
|
||
"noTickets": "No tickets yet",
|
||
"createTicket": "Create New Ticket",
|
||
"subject": "Subject",
|
||
"subjectPlaceholder": "Brief description of your issue",
|
||
"message": "Message",
|
||
"messagePlaceholder": "Describe your issue in detail...",
|
||
"send": "Send",
|
||
"sending": "Sending...",
|
||
"creating": "Creating...",
|
||
"reply": "Reply",
|
||
"replyPlaceholder": "Type your reply...",
|
||
"sendReply": "Send Reply",
|
||
"you": "You",
|
||
"supportTeam": "Support",
|
||
"selectTicket": "Select a ticket or create a new one",
|
||
"created": "Created",
|
||
"repliesDisabled": "Replies to this ticket are disabled",
|
||
"status": {
|
||
"open": "Open",
|
||
"answered": "Answered",
|
||
"pending": "Pending",
|
||
"closed": "Closed"
|
||
},
|
||
"attachImage": "Attach image",
|
||
"invalidFileType": "Invalid file type. Use JPEG, PNG, GIF or WebP.",
|
||
"fileTooLarge": "File is too large. Maximum size is 10MB.",
|
||
"uploadFailed": "Failed to upload image",
|
||
"imageLoadFailed": "Failed to load image",
|
||
"tooManyRequests": "Too many requests. Please wait {{seconds}} sec.",
|
||
"ticketsDisabled": "Tickets Disabled",
|
||
"useProfile": "Please go to the bot profile to get support",
|
||
"goToProfile": "Go to Profile",
|
||
"useExternalLink": "Please use the external link to get support",
|
||
"openSupport": "Open Support",
|
||
"contactSupport": "Please contact {{username}} for support",
|
||
"contactUs": "Contact Support"
|
||
},
|
||
"wheel": {
|
||
"title": "Fortune Wheel",
|
||
"disabled": "Fortune Wheel is currently unavailable",
|
||
"spinsRemaining": "Spins remaining today",
|
||
"choosePayment": "Choose payment method",
|
||
"stars": "Stars",
|
||
"telegramStars": "Telegram Stars",
|
||
"days": "days",
|
||
"days_one": "{{count}} day",
|
||
"days_other": "{{count}} days",
|
||
"subscriptionDays": "Subscription days",
|
||
"day": "Day",
|
||
"spin": "SPIN!",
|
||
"spinning": "Spinning...",
|
||
"history": "History",
|
||
"recentSpins": "Recent spins",
|
||
"congratulations": "Congratulations!",
|
||
"noLuck": "No luck!",
|
||
"oops": "Oops!",
|
||
"yourPromoCode": "Your promo code:",
|
||
"close": "Close",
|
||
"errors": {
|
||
"networkError": "A network error occurred",
|
||
"loadFailed": "Failed to load wheel configuration",
|
||
"dailyLimitReached": "Daily spin limit reached",
|
||
"cannotSpin": "Cannot spin right now",
|
||
"insufficientBalance": "Insufficient balance",
|
||
"topUpRequired": "Top up your balance to pay for spin",
|
||
"starsNotAvailable": "Stars payment not available. Open the app via Telegram."
|
||
},
|
||
"payWithStars": "Pay with Stars",
|
||
"payWithDays": "Pay with days",
|
||
"processingPayment": "Processing...",
|
||
"starsPaymentSuccess": "Payment successful! Spin result sent to Telegram.",
|
||
"starsPaymentSuccessCheckHistory": "Payment successful! Check history or Telegram for the result.",
|
||
"starsPaymentFailed": "Payment failed. Please try again.",
|
||
"starsPaymentRedirected": "Telegram will open for payment. Refresh the page after payment.",
|
||
"youWon": "You won",
|
||
"noPrize": "No luck this time...",
|
||
"noHistory": "No spin history yet",
|
||
"banner": {
|
||
"title": "Try your luck!",
|
||
"description": "Spin the wheel and win prizes: subscription days, balance, traffic and more!",
|
||
"button": "Go to wheel"
|
||
}
|
||
},
|
||
"admin": {
|
||
"groups": {
|
||
"analytics": "Analytics",
|
||
"marketing": "Marketing",
|
||
"system": "System",
|
||
"tariffs": "Tariffs & Sales",
|
||
"users": "Users"
|
||
},
|
||
"nav": {
|
||
"title": "Admin",
|
||
"dashboard": "Dashboard",
|
||
"tickets": "Tickets",
|
||
"settings": "Settings",
|
||
"apps": "Apps",
|
||
"wheel": "Wheel",
|
||
"tariffs": "Tariffs",
|
||
"servers": "Servers",
|
||
"banSystem": "Ban Monitoring",
|
||
"broadcasts": "Broadcasts",
|
||
"users": "Users",
|
||
"payments": "Payments",
|
||
"remnawave": "RemnaWave",
|
||
"emailTemplates": "Email Templates",
|
||
"paymentMethods": "Payment Methods",
|
||
"campaigns": "Campaigns",
|
||
"promoOffers": "Promo Offers",
|
||
"promocodes": "Promo Codes"
|
||
},
|
||
"panel": {
|
||
"title": "Admin Panel",
|
||
"subtitle": "System management",
|
||
"dashboardDesc": "Statistics and system monitoring",
|
||
"ticketsDesc": "Handle user support tickets",
|
||
"settingsDesc": "System settings and parameters",
|
||
"appsDesc": "Manage connection apps",
|
||
"wheelDesc": "Configure fortune wheel and prizes",
|
||
"tariffsDesc": "Manage tariff plans",
|
||
"serversDesc": "Configure VPN servers",
|
||
"banSystemDesc": "Ban monitoring and violations",
|
||
"broadcastsDesc": "Mass messaging to users",
|
||
"usersDesc": "Manage bot users",
|
||
"paymentsDesc": "Payment verification",
|
||
"remnawaveDesc": "Panel management and statistics",
|
||
"emailTemplatesDesc": "Manage email notification templates",
|
||
"paymentMethodsDesc": "Configure payment methods and order",
|
||
"campaignsDesc": "Advertising campaigns",
|
||
"promoOffersDesc": "Personal discounts",
|
||
"promocodesDesc": "Manage promo codes"
|
||
},
|
||
"emailTemplates": {
|
||
"title": "Email Templates",
|
||
"description": "Manage email notification templates",
|
||
"subject": "Subject",
|
||
"subjectPlaceholder": "Email subject line...",
|
||
"body": "Body (HTML)",
|
||
"bodyHint": "HTML content that will be wrapped in the base email template with header and footer.",
|
||
"preview": "Preview",
|
||
"sendTest": "Send Test",
|
||
"resetDefault": "Reset to Default",
|
||
"resetConfirm": "Reset this template to the default version?",
|
||
"unsavedWarning": "Unsaved changes will be lost. Continue?",
|
||
"custom": "Custom",
|
||
"default": "Default",
|
||
"saved": "Template saved",
|
||
"resetted": "Template reset to default",
|
||
"testSent": "Test email sent",
|
||
"variables": "Available Variables",
|
||
"clickToCopy": "Click to copy",
|
||
"previewDesktopOnly": "Preview is only available in the desktop web version",
|
||
"previewNotAvailable": "Preview not available"
|
||
},
|
||
"payments": {
|
||
"title": "Payment verification",
|
||
"description": "Pending payments in the last 24 hours",
|
||
"totalPending": "Total pending",
|
||
"filterByMethod": "Filter by method",
|
||
"noPayments": "No pending payments",
|
||
"paid": "Paid",
|
||
"user": "User",
|
||
"openLink": "Open link",
|
||
"checkStatus": "Check status",
|
||
"checking": "Checking...",
|
||
"prev": "Previous",
|
||
"next": "Next"
|
||
},
|
||
"paymentMethods": {
|
||
"title": "Payment Methods",
|
||
"description": "Configure display order and conditions",
|
||
"enabled": "On",
|
||
"disabled": "Off",
|
||
"notConfigured": "Not configured",
|
||
"dragToReorder": "Drag to reorder",
|
||
"dragHint": "Drag cards to change order. Click to configure.",
|
||
"saveOrder": "Save Order",
|
||
"orderSaved": "Order saved",
|
||
"saved": "Settings saved",
|
||
"noMethods": "No payment methods configured",
|
||
"methodEnabled": "Method enabled",
|
||
"providerNotConfigured": "Provider not configured in env",
|
||
"displayName": "Display name",
|
||
"displayNameHint": "Leave empty for default name",
|
||
"subOptions": "Payment options",
|
||
"minAmount": "Min amount (kopeks)",
|
||
"maxAmount": "Max amount (kopeks)",
|
||
"conditions": "Display conditions",
|
||
"userTypeFilter": "User type",
|
||
"userTypeAll": "All",
|
||
"userTypeTelegram": "Telegram",
|
||
"userTypeEmail": "Email",
|
||
"firstTopupFilter": "First top-up",
|
||
"firstTopupAny": "Any",
|
||
"firstTopupYes": "Made",
|
||
"firstTopupNo": "Not made",
|
||
"firstTopupWas": "Was",
|
||
"firstTopupWasNot": "Was not",
|
||
"promoGroupFilter": "Promo groups",
|
||
"promoGroupAll": "All groups",
|
||
"promoGroupSelected": "Selected",
|
||
"promoGroupsShort": "groups",
|
||
"noPromoGroups": "No promo groups",
|
||
"cancelButton": "Cancel",
|
||
"saveButton": "Save"
|
||
},
|
||
"remnawave": {
|
||
"title": "RemnaWave",
|
||
"subtitle": "Panel management and statistics",
|
||
"connected": "Connected",
|
||
"disconnected": "Not configured",
|
||
"noData": "Failed to load data",
|
||
"tabs": {
|
||
"overview": "Overview",
|
||
"nodes": "Nodes",
|
||
"squads": "Squads",
|
||
"sync": "Sync"
|
||
},
|
||
"overview": {
|
||
"system": "System",
|
||
"usersOnline": "Online",
|
||
"totalUsers": "Total Users",
|
||
"nodesOnline": "Nodes Online",
|
||
"connections": "Connections",
|
||
"bandwidth": "Realtime Bandwidth",
|
||
"download": "Download",
|
||
"upload": "Upload",
|
||
"total": "Total",
|
||
"server": "Server",
|
||
"cpu": "CPU Cores",
|
||
"memory": "Memory",
|
||
"uptime": "Uptime",
|
||
"traffic": "Traffic Statistics",
|
||
"usersByStatus": "Users by Status"
|
||
},
|
||
"nodes": {
|
||
"online": "Online",
|
||
"offline": "Offline",
|
||
"disabled": "Disabled",
|
||
"noNodes": "No nodes found",
|
||
"restart": "Restart",
|
||
"enable": "Enable",
|
||
"disable": "Disable",
|
||
"restartAll": "Restart All",
|
||
"confirmRestartAll": "Are you sure you want to restart all nodes?"
|
||
},
|
||
"squads": {
|
||
"synced": "Synced",
|
||
"notSynced": "Not synced",
|
||
"noSquads": "No squads found",
|
||
"syncServers": "Sync Servers"
|
||
},
|
||
"sync": {
|
||
"autoSync": "Auto Sync",
|
||
"runNow": "Run Now",
|
||
"manual": "Manual Sync",
|
||
"fromPanel": "Sync from Panel",
|
||
"fromPanelDesc": "Import users from RemnaWave panel to bot database",
|
||
"toPanel": "Sync to Panel",
|
||
"toPanelDesc": "Export users from bot database to RemnaWave panel",
|
||
"subscriptions": "Subscriptions",
|
||
"validate": "Validate",
|
||
"validateDesc": "Check and fix subscription inconsistencies",
|
||
"cleanup": "Cleanup",
|
||
"cleanupDesc": "Remove orphaned subscriptions without users",
|
||
"statuses": "Sync Statuses",
|
||
"statusesDesc": "Synchronize subscription statuses with panel"
|
||
}
|
||
},
|
||
"wheel": {
|
||
"title": "Fortune Wheel Settings",
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled",
|
||
"tabs": {
|
||
"settings": "Settings",
|
||
"prizes": "Prizes",
|
||
"statistics": "Statistics"
|
||
},
|
||
"settings": {
|
||
"enableWheel": "Enable Wheel",
|
||
"allowSpins": "Allow users to spin the wheel",
|
||
"costInStars": "Cost in Stars",
|
||
"costInDays": "Cost in Days",
|
||
"rtpPercent": "RTP (Return to Player) %",
|
||
"dailyLimit": "Daily Spin Limit (0 = unlimited)",
|
||
"minSubDays": "Min subscription days for day payment",
|
||
"promoPrefix": "Promo code prefix"
|
||
},
|
||
"prizes": {
|
||
"addPrize": "Add Prize",
|
||
"editPrize": "Edit Prize",
|
||
"noPrizes": "No prizes configured. Add some prizes to enable the wheel.",
|
||
"deletePrize": "Delete this prize?",
|
||
"types": {
|
||
"subscription_days": "Subscription Days",
|
||
"balance_bonus": "Balance Bonus",
|
||
"traffic_gb": "Traffic GB",
|
||
"promocode": "Promo Code",
|
||
"nothing": "Nothing (Empty)"
|
||
},
|
||
"fields": {
|
||
"type": "Type",
|
||
"displayName": "Display Name",
|
||
"value": "Value",
|
||
"valueKopeks": "Value in Kopeks (for RTP)",
|
||
"emoji": "Emoji",
|
||
"color": "Color",
|
||
"active": "Active",
|
||
"worth": "Worth"
|
||
},
|
||
"promo": {
|
||
"title": "Promo Code Settings",
|
||
"balanceBonus": "Balance bonus (kopeks)",
|
||
"subscriptionDays": "Subscription days"
|
||
}
|
||
},
|
||
"statistics": {
|
||
"totalSpins": "Total Spins",
|
||
"revenue": "Revenue",
|
||
"payouts": "Payouts",
|
||
"actualRtp": "Actual RTP",
|
||
"targetRtp": "target",
|
||
"prizeDistribution": "Prize Distribution",
|
||
"times": "times",
|
||
"times_one": "{{count}} time",
|
||
"times_other": "{{count}} times",
|
||
"topWins": "Top Wins"
|
||
}
|
||
},
|
||
"broadcasts": {
|
||
"title": "Broadcasts",
|
||
"subtitle": "History and management",
|
||
"create": "Create Broadcast",
|
||
"empty": "No broadcasts",
|
||
"selectFilter": "Select audience",
|
||
"selectFilterPlaceholder": "Select filter...",
|
||
"recipients": "recip.",
|
||
"messageText": "Message text",
|
||
"messageTextPlaceholder": "Enter broadcast message...",
|
||
"media": "Media file",
|
||
"addMedia": "Add media",
|
||
"uploading": "Uploading...",
|
||
"buttons": "Buttons",
|
||
"willBeSent": "Will be sent to",
|
||
"users": "users",
|
||
"send": "Send",
|
||
"stop": "Stop",
|
||
"progress": "Progress",
|
||
"total": "Total",
|
||
"sent": "Sent",
|
||
"failed": "Failed",
|
||
"filter": "Filter",
|
||
"message": "Message",
|
||
"unknownAdmin": "Unknown",
|
||
"detail": "Broadcast",
|
||
"createdBy": "Created by",
|
||
"notFound": "Broadcast not found",
|
||
"prev": "Previous",
|
||
"next": "Next",
|
||
"status": {
|
||
"queued": "Queued",
|
||
"inProgress": "Sending",
|
||
"completed": "Completed",
|
||
"partial": "Partial",
|
||
"failed": "Failed",
|
||
"cancelled": "Cancelled",
|
||
"cancelling": "Cancelling"
|
||
},
|
||
"filterGroups": {
|
||
"basic": "Basic",
|
||
"subscription": "By subscription",
|
||
"traffic": "By traffic",
|
||
"registration": "By registration",
|
||
"activity": "By activity",
|
||
"source": "By source",
|
||
"tariff": "By tariff",
|
||
"email": "Email users"
|
||
},
|
||
"channel": {
|
||
"telegram": "Telegram",
|
||
"email": "Email",
|
||
"both": "Both"
|
||
},
|
||
"selectChannel": "Broadcast channel",
|
||
"telegramSection": "Telegram broadcast",
|
||
"emailSection": "Email broadcast",
|
||
"selectEmailFilter": "Select email audience",
|
||
"selectEmailFilterPlaceholder": "Select filter...",
|
||
"emailSubject": "Email subject",
|
||
"emailSubjectPlaceholder": "Enter email subject...",
|
||
"emailContent": "Email content",
|
||
"emailContentHint": "HTML supported",
|
||
"emailContentPlaceholder": "<p>Hello, {{user_name}}!</p>\n<p>Your message here...</p>",
|
||
"emailVariables": "Available variables"
|
||
},
|
||
"settings": {
|
||
"title": "System Settings",
|
||
"allCategories": "All categories",
|
||
"noSettings": "No settings found",
|
||
"modified": "Modified",
|
||
"readOnly": "Read only",
|
||
"reset": "Reset",
|
||
"categoriesCount": "categories",
|
||
"settingsCount": "settings",
|
||
"expandAll": "Expand all",
|
||
"collapseAll": "Collapse all",
|
||
"searchPlaceholder": "Search settings...",
|
||
"searchCategoriesPlaceholder": "Search categories...",
|
||
"noSearchResults": "Nothing found",
|
||
"example": "Example",
|
||
"analytics": "Analytics",
|
||
"notConfigured": "Not configured",
|
||
"counterActive": "Active",
|
||
"counterInactive": "Inactive",
|
||
"yandexMetrika": "Yandex Metrika",
|
||
"yandexMetrikaDesc": "Track visitors and analyze website behavior",
|
||
"counterId": "Counter ID",
|
||
"yandexIdPlaceholder": "e.g. 87654321",
|
||
"yandexIdHint": "Numeric ID from metrika.yandex.ru",
|
||
"googleAds": "Google Ads",
|
||
"googleAdsDesc": "Conversion tracking for ad campaigns",
|
||
"conversionId": "Conversion ID",
|
||
"googleIdPlaceholder": "e.g. AW-123456789",
|
||
"googleIdHint": "Conversion ID in AW-XXXXXXXXX format",
|
||
"conversionLabel": "Conversion Label (optional)",
|
||
"googleLabelPlaceholder": "e.g. AbCdEfGhIjKl",
|
||
"googleLabelHint": "Conversion label for event tracking",
|
||
"analyticsHint": "Counters are automatically embedded on all cabinet pages. After saving an ID, scripts are loaded on the next page load. To remove a counter, clear the field and save.",
|
||
"inputPlaceholder": "Enter value...",
|
||
"ctrlEnterHint": "Ctrl+Enter to save",
|
||
"cancelButton": "Cancel",
|
||
"saveButton": "Save",
|
||
"saveHint": "Save (Enter)",
|
||
"cancelHint": "Cancel (Esc)",
|
||
"removeFromFavorites": "Remove from favorites",
|
||
"addToFavorites": "Add to favorites",
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled",
|
||
"foundCount": "Found: {{count}}",
|
||
"notFound": "Nothing found",
|
||
"byQuery": "by query \"{{query}}\"",
|
||
"accentColor": "Accent color",
|
||
"animatedBackground": "Animated background",
|
||
"animatedBackgroundDesc": "Show animated background effects",
|
||
"autoFullscreen": "Auto fullscreen",
|
||
"autoFullscreenDesc": "Auto expand in Telegram",
|
||
"availableThemes": "Available themes",
|
||
"colors": {
|
||
"background": "Background",
|
||
"error": "Error",
|
||
"success": "Success",
|
||
"surface": "Surface",
|
||
"text": "Text",
|
||
"textSecondary": "Secondary text",
|
||
"warning": "Warning"
|
||
},
|
||
"customColors": "Custom colors",
|
||
"darkTheme": "Dark theme",
|
||
"emailAuth": "Email auth",
|
||
"emailAuthDesc": "Allow login via email",
|
||
"favoritesEmpty": "No favorites yet",
|
||
"favoritesHint": "Star settings to add them here",
|
||
"interfaceOptions": "Interface options",
|
||
"lightTheme": "Light theme",
|
||
"logoAndName": "Logo & name",
|
||
"notSpecified": "Not specified",
|
||
"projectName": "Project name",
|
||
"quickPresets": "Quick presets",
|
||
"resetAllColors": "Reset all colors",
|
||
"statusColors": "Status colors"
|
||
},
|
||
"theme": {
|
||
"accentColor": "Accent color",
|
||
"customizeColors": "Customize colors",
|
||
"hexCode": "HEX code",
|
||
"hue": "Hue",
|
||
"lightness": "Lightness",
|
||
"quickPresets": "Quick presets",
|
||
"saturation": "Saturation"
|
||
},
|
||
"apps": {
|
||
"title": "App Management",
|
||
"addApp": "Add App",
|
||
"addFirstApp": "Add First App",
|
||
"noApps": "No apps for this platform",
|
||
"createApp": "Create App",
|
||
"editApp": "Edit App",
|
||
"confirmDelete": "Are you sure you want to delete this app?",
|
||
"copyTo": "Copy to...",
|
||
"appId": "App ID",
|
||
"appName": "Name",
|
||
"urlScheme": "URL Scheme",
|
||
"featured": "Featured",
|
||
"base64Encoding": "Base64 Encoding",
|
||
"buttons": "Buttons",
|
||
"button": "Button",
|
||
"addButton": "Add Button",
|
||
"buttonText": "Button Text",
|
||
"installDescription": "Installation Description",
|
||
"subscriptionDescription": "Add Subscription Description",
|
||
"connectDescription": "Connect Description",
|
||
"beforeSubscription": "Before Add Subscription",
|
||
"afterSubscription": "After Add Subscription",
|
||
"stepTitle": "Title",
|
||
"stepDescription": "Description",
|
||
"tabs": {
|
||
"basic": "Basic",
|
||
"installation": "Installation",
|
||
"subscription": "Subscription",
|
||
"connect": "Connect",
|
||
"additional": "Additional"
|
||
},
|
||
"import": "Import",
|
||
"export": "Export",
|
||
"importApps": "Import apps from JSON",
|
||
"exportApps": "Export apps to JSON",
|
||
"importPreview": "Import Preview",
|
||
"confirmImport": "Import Apps",
|
||
"importError": "Invalid JSON file format",
|
||
"importCreateError": "Failed to create some apps",
|
||
"noAppsToImport": "No apps to import",
|
||
"remnaWaveToggle": "Toggle RemnaWave source",
|
||
"refreshRemnaWave": "Refresh from RemnaWave",
|
||
"remnaWaveMode": "Showing apps from RemnaWave panel. Read-only mode.",
|
||
"remnaWaveSettings": "RemnaWave Settings",
|
||
"remnaWaveConfigUuid": "Config UUID",
|
||
"remnaWaveConfigUuidHint": "UUID of subscription page config from RemnaWave panel",
|
||
"availableConfigs": "Available configs"
|
||
},
|
||
"tickets": {
|
||
"title": "Ticket Management",
|
||
"total": "Total",
|
||
"list": "Tickets",
|
||
"noTickets": "No tickets",
|
||
"selectTicket": "Select a ticket from the list",
|
||
"allStatuses": "All statuses",
|
||
"statusOpen": "Open",
|
||
"statusPending": "Pending",
|
||
"statusAnswered": "Answered",
|
||
"statusClosed": "Closed",
|
||
"from": "From",
|
||
"created": "Created",
|
||
"user": "User",
|
||
"you": "You",
|
||
"userLabel": "User",
|
||
"adminLabel": "Admin",
|
||
"replyPlaceholder": "Type your reply...",
|
||
"sendReply": "Send Reply",
|
||
"settings": "Settings",
|
||
"supportMode": "Support mode",
|
||
"supportModeDesc": "Choose how users can contact support",
|
||
"modeBoth": "Tickets and contact",
|
||
"modeTickets": "Tickets only",
|
||
"modeContact": "Contact only",
|
||
"slaSettings": "SLA Settings",
|
||
"slaEnabled": "Enable SLA (response time monitoring)",
|
||
"slaEnabledDesc": "Automatic notifications for overdue tickets",
|
||
"slaMinutes": "Response time (minutes)",
|
||
"slaMinutesDesc": "Maximum time to respond to a ticket (1-1440 minutes)",
|
||
"checkInterval": "Check interval (seconds)",
|
||
"checkIntervalDesc": "How often to check for overdue tickets (30-600 seconds)",
|
||
"reminderCooldown": "Reminder interval (minutes)",
|
||
"reminderCooldownDesc": "Minimum time between reminders (1-120 minutes)",
|
||
"settingsUpdateError": "Error saving settings",
|
||
"copyTelegramId": "Click to copy Telegram ID",
|
||
"cabinetNotifications": "Cabinet Notifications",
|
||
"userNotificationsEnabled": "User Notifications",
|
||
"userNotificationsEnabledDesc": "Send notifications to users about admin replies",
|
||
"adminNotificationsEnabled": "Admin Notifications",
|
||
"adminNotificationsEnabledDesc": "Send notifications to admins about new tickets and replies"
|
||
},
|
||
"tariffs": {
|
||
"title": "Tariff Management",
|
||
"subtitle": "Configure tariff plans",
|
||
"create": "Create Tariff",
|
||
"edit": "Edit Tariff",
|
||
"noTariffs": "No tariffs",
|
||
"name": "Name",
|
||
"namePlaceholder": "Enter tariff name",
|
||
"description": "Description",
|
||
"descriptionPlaceholder": "Enter tariff description",
|
||
"trafficLimit": "Traffic Limit",
|
||
"trafficHint": "0 = unlimited traffic",
|
||
"deviceLimit": "Device Limit",
|
||
"tierLevel": "Tier Level",
|
||
"tierHint": "1-10, affects priority during upgrade",
|
||
"unlimited": "Unlimited",
|
||
"devices": "devices",
|
||
"devices_one": "{{count}} device",
|
||
"devices_other": "{{count}} devices",
|
||
"servers": "servers",
|
||
"servers_one": "{{count}} server",
|
||
"servers_other": "{{count}} servers",
|
||
"subscriptions": "subscriptions",
|
||
"subscriptions_one": "{{count}} subscription",
|
||
"subscriptions_other": "{{count}} subscriptions",
|
||
"trial": "Trial",
|
||
"inactive": "Inactive",
|
||
"activate": "Activate",
|
||
"deactivate": "Deactivate",
|
||
"toggleTrial": "Toggle Trial",
|
||
"delete": "Delete",
|
||
"confirmDelete": "Delete tariff?",
|
||
"confirmDeleteText": "This action cannot be undone. The tariff will be permanently deleted.",
|
||
"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",
|
||
"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",
|
||
"periodsTabHint": "Add periods and prices for the tariff. Users will be able to choose from the added periods.",
|
||
"addPeriodTitle": "Add period",
|
||
"daysLabel": "Days",
|
||
"priceLabel": "Price (\u20bd)",
|
||
"addButton": "Add",
|
||
"noPeriodsHint": "No added periods. Add at least one period.",
|
||
"daysShort": "d.",
|
||
"serversTabHint": "Select servers available on this tariff.",
|
||
"noServersAvailable": "No servers available",
|
||
"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:",
|
||
"gbPackageUnit": "GB:",
|
||
"customDaysTitle": "Custom number of days",
|
||
"customDaysDesc": "User selects subscription duration",
|
||
"pricePerDayLabel": "Price per day:",
|
||
"minDaysLabel": "Min. days:",
|
||
"maxDaysLabel": "Max. days:",
|
||
"customTrafficTitle": "Custom traffic volume",
|
||
"customTrafficDesc": "User selects traffic volume when purchasing",
|
||
"pricePerGbLabel": "Price per 1 GB:",
|
||
"minTrafficLabel": "Min. GB:",
|
||
"maxTrafficLabel": "Max. GB:",
|
||
"trafficResetModeTitle": "Traffic reset mode",
|
||
"trafficResetModeDesc": "Defines when used traffic resets for subscribers of this tariff",
|
||
"resetModeGlobal": "Global setting",
|
||
"resetModeGlobalDesc": "Use value from bot config",
|
||
"resetModeDaily": "Daily",
|
||
"resetModeDailyDesc": "Reset every day",
|
||
"resetModeWeekly": "Weekly",
|
||
"resetModeWeeklyDesc": "Reset every week",
|
||
"resetModeMonthly": "Monthly",
|
||
"resetModeMonthlyDesc": "Reset every month",
|
||
"resetModeNever": "Never",
|
||
"resetModeNeverDesc": "Traffic is not reset",
|
||
"cancelButton": "Cancel",
|
||
"savingButton": "Saving...",
|
||
"saveButton": "Save",
|
||
"dailyType": "Daily",
|
||
"periodType": "Period-based",
|
||
"dailyPriceLabel": "Price per day",
|
||
"currencyPerDay": "\u20bd/day",
|
||
"dailyDeductionDesc": "Charged daily from user's balance"
|
||
},
|
||
"servers": {
|
||
"title": "Server Management",
|
||
"subtitle": "Configure VPN servers",
|
||
"sync": "Sync",
|
||
"syncing": "Syncing...",
|
||
"syncNow": "Sync now",
|
||
"noServers": "No servers. Sync with RemnaWave.",
|
||
"edit": "Edit Server",
|
||
"originalName": "Original Name",
|
||
"displayName": "Display Name",
|
||
"displayNamePlaceholder": "Enter display name",
|
||
"description": "Description",
|
||
"descriptionPlaceholder": "Enter server description",
|
||
"countryCode": "Country Code",
|
||
"price": "Price",
|
||
"priceHint": "Additional server cost",
|
||
"maxUsers": "Max Users",
|
||
"sortOrder": "Sort Order",
|
||
"unlimited": "Unlimited",
|
||
"stats": "Statistics",
|
||
"currentUsers": "Current Users",
|
||
"activeSubscriptions": "Active Subscriptions",
|
||
"usedByTariffs": "Used by Tariffs",
|
||
"trial": "Trial",
|
||
"unavailable": "Unavailable",
|
||
"full": "Full",
|
||
"enable": "Enable",
|
||
"disable": "Disable",
|
||
"toggleTrial": "Toggle Trial",
|
||
"loadError": "Failed to load server"
|
||
},
|
||
"campaigns": {
|
||
"title": "Ad Campaigns",
|
||
"subtitle": "Manage advertising links",
|
||
"createButton": "Create",
|
||
"noData": "No ad campaigns",
|
||
"bonusType": {
|
||
"balance": "Balance",
|
||
"subscription": "Subscription",
|
||
"tariff": "Tariff",
|
||
"none": "Link only"
|
||
},
|
||
"overview": {
|
||
"totalCampaigns": "Total campaigns",
|
||
"active": "Active",
|
||
"registrations": "Registrations",
|
||
"bonusesIssued": "Bonuses issued"
|
||
},
|
||
"table": {
|
||
"inactive": "Inactive",
|
||
"registrations": "{{count}} registrations",
|
||
"revenue": "{{amount}} revenue",
|
||
"conversion": "{{rate}}% conversion",
|
||
"statistics": "Statistics",
|
||
"deactivate": "Deactivate",
|
||
"activate": "Activate",
|
||
"edit": "Edit",
|
||
"delete": "Delete"
|
||
},
|
||
"modal": {
|
||
"editTitle": "Edit Campaign",
|
||
"createTitle": "New Campaign",
|
||
"close": "Close"
|
||
},
|
||
"form": {
|
||
"name": "Name",
|
||
"namePlaceholder": "E.g.: Instagram Ad",
|
||
"startParameter": "Label (start parameter)",
|
||
"startParameterHint": "Latin letters, digits, _ and - only",
|
||
"bonusType": "Bonus type",
|
||
"balanceBonus": "Balance bonus",
|
||
"trialSubscription": "Trial subscription",
|
||
"days": "Days",
|
||
"trafficGb": "Traffic (GB)",
|
||
"devices": "Devices",
|
||
"servers": "Servers",
|
||
"tariff": "Tariff",
|
||
"selectTariff": "Select tariff",
|
||
"notSelected": "Not selected",
|
||
"tariffOption": "{{traffic}} GB, {{devices}} dev.",
|
||
"durationDays": "Duration (days)",
|
||
"noBonusDescription": "Campaign without bonuses — only for tracking clicks and registrations.",
|
||
"active": "Active",
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"saving": "Saving..."
|
||
},
|
||
"stats": {
|
||
"registrations": "Registrations",
|
||
"revenue": "Revenue",
|
||
"paidUsers": "Paid",
|
||
"conversion": "Conversion",
|
||
"bonusesIssued": "Bonuses issued",
|
||
"subscriptionsIssued": "{{count}} subscriptions",
|
||
"tariffsIssued": "{{count}} tariffs",
|
||
"avgRevenuePerUser": "Avg revenue per user",
|
||
"avgFirstPayment": "Avg first payment",
|
||
"trialSubscriptions": "Trial subscriptions",
|
||
"trialCount": "{{total}} (active: {{active}})",
|
||
"trialConversion": "Trial conversion",
|
||
"lastRegistration": "Last registration",
|
||
"active": "Active",
|
||
"inactive": "Inactive",
|
||
"copy": "Copy",
|
||
"copied": "Copied!",
|
||
"users": "Users"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"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": "Promo codes ({{count}})",
|
||
"groups": "Discount groups ({{count}})"
|
||
},
|
||
"type": {
|
||
"balance": "Balance",
|
||
"subscriptionDays": "Subscription days",
|
||
"trialSubscription": "Trial subscription",
|
||
"promoGroup": "Discount group",
|
||
"discount": "Discount %"
|
||
},
|
||
"modal": {
|
||
"editPromocode": "Edit promo code",
|
||
"newPromocode": "New promo code",
|
||
"editGroup": "Edit group",
|
||
"newGroup": "New discount group",
|
||
"close": "Close",
|
||
"edit": "Edit"
|
||
},
|
||
"form": {
|
||
"code": "Promo code",
|
||
"type": "Promo code type",
|
||
"typeBalance": "Balance top-up",
|
||
"typeSubscriptionDays": "Subscription days",
|
||
"typeTrialSubscription": "Trial subscription",
|
||
"typePromoGroup": "Discount group",
|
||
"typeDiscount": "Percentage discount",
|
||
"bonusAmount": "Bonus amount",
|
||
"rub": "RUB",
|
||
"daysCount": "Number of days",
|
||
"days": "days",
|
||
"discountGroup": "Discount group",
|
||
"selectGroup": "Select group...",
|
||
"discountPercent": "Discount percent",
|
||
"discountHint": "Discount is applied once at payment",
|
||
"validityPeriod": "Validity period",
|
||
"hours": "hours",
|
||
"validityHint": "How many hours after activation the discount is valid",
|
||
"maxUses": "Max uses",
|
||
"unlimitedHint": "0 = unlimited",
|
||
"validUntil": "Valid until",
|
||
"validUntilHint": "Leave empty for unlimited promo code",
|
||
"active": "Active",
|
||
"firstPurchaseOnly": "First purchase only",
|
||
"cancel": "Cancel",
|
||
"saving": "Saving...",
|
||
"save": "Save"
|
||
},
|
||
"stats": {
|
||
"totalUses": "Total uses",
|
||
"today": "Today",
|
||
"remaining": "Remaining",
|
||
"details": "Promo code details",
|
||
"type": "Type",
|
||
"bonus": "Bonus",
|
||
"daysLabel": "Days",
|
||
"discountLabel": "Discount",
|
||
"validFor": "Valid for",
|
||
"hoursValue": "{{count}} hours",
|
||
"limit": "Limit",
|
||
"status": "Status",
|
||
"active": "Active",
|
||
"inactive": "Inactive",
|
||
"created": "Created",
|
||
"validUntil": "Valid until",
|
||
"unlimited": "Unlimited",
|
||
"restriction": "Restriction",
|
||
"firstPurchaseOnly": "First purchase only",
|
||
"usageHistory": "Usage history",
|
||
"noUsages": "Promo code has not been used yet",
|
||
"totalPromocodes": "Total promo codes",
|
||
"activeCount": "Active",
|
||
"usagesCount": "Uses",
|
||
"exhausted": "Exhausted"
|
||
},
|
||
"actions": {
|
||
"stats": "Statistics",
|
||
"edit": "Edit",
|
||
"delete": "Delete"
|
||
},
|
||
"groups": {
|
||
"name": "Group name",
|
||
"namePlaceholder": "VIP clients",
|
||
"categoryDiscounts": "Category discounts",
|
||
"servers": "Servers",
|
||
"traffic": "Traffic",
|
||
"devices": "Devices",
|
||
"periodDiscounts": "Period discounts",
|
||
"add": "Add",
|
||
"periodDiscountsHint": "Discount is applied when purchasing a subscription for the specified number of days",
|
||
"noPeriodDiscounts": "No period discounts",
|
||
"daysPlaceholder": "Days",
|
||
"daysArrow": "days →",
|
||
"autoAssign": "Auto-assign when spending from",
|
||
"autoAssignHint": "0 = do not assign automatically",
|
||
"applyToAddons": "Apply to additional services",
|
||
"default": "Default",
|
||
"daysShort": "{{days}} d.",
|
||
"autoFrom": "Auto from {{amount}} RUB",
|
||
"members": "{{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"
|
||
}
|
||
},
|
||
"users": {
|
||
"title": "Users",
|
||
"subtitle": "Bot user management",
|
||
"search": "Search by ID, name, username...",
|
||
"searchEmail": "Search by email...",
|
||
"noData": "No users found",
|
||
"purchaseCount": "{{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?"
|
||
},
|
||
"detail": {
|
||
"tabs": {
|
||
"info": "Information",
|
||
"subscription": "Subscription",
|
||
"balance": "Balance",
|
||
"sync": "Synchronization"
|
||
},
|
||
"status": "Status",
|
||
"language": "Language",
|
||
"registration": "Registration",
|
||
"lastActivity": "Last activity",
|
||
"totalSpent": "Total spent",
|
||
"purchases": "Purchases",
|
||
"referral": {
|
||
"title": "Referral program",
|
||
"referrals": "Referrals",
|
||
"earned": "Earned",
|
||
"commission": "Commission"
|
||
},
|
||
"restrictions": {
|
||
"title": "Restrictions",
|
||
"topup": "• Top-up prohibited",
|
||
"subscription": "• Subscription purchase prohibited",
|
||
"reason": "Reason"
|
||
},
|
||
"subscription": {
|
||
"current": "Current subscription",
|
||
"tariff": "Tariff",
|
||
"notSpecified": "Not specified",
|
||
"validUntil": "Valid until",
|
||
"traffic": "Traffic",
|
||
"devices": "Devices",
|
||
"actions": "Actions",
|
||
"extend": "Extend",
|
||
"changeTariff": "Change tariff",
|
||
"cancel": "Cancel",
|
||
"activate": "Activate",
|
||
"days": "Days",
|
||
"selectTariff": "Select tariff",
|
||
"unavailable": "(unavailable)",
|
||
"noActive": "No active subscription",
|
||
"create": "Create subscription",
|
||
"creating": "Creating..."
|
||
},
|
||
"balance": {
|
||
"current": "Current balance",
|
||
"amountPlaceholder": "Amount in rubles",
|
||
"descriptionPlaceholder": "Description (optional)",
|
||
"add": "Add",
|
||
"subtract": "Deduct",
|
||
"addByAdmin": "Added by admin",
|
||
"subtractByAdmin": "Deducted by admin",
|
||
"recentTransactions": "Recent transactions"
|
||
},
|
||
"sync": {
|
||
"hasDifferences": "Differences found",
|
||
"synced": "Synchronized",
|
||
"bot": "Bot",
|
||
"panel": "Panel",
|
||
"statusLabel": "Status",
|
||
"until": "Until",
|
||
"traffic": "Traffic",
|
||
"devices": "Devices",
|
||
"squads": "Squads",
|
||
"notLinked": "Not linked",
|
||
"fromPanel": "From panel to bot",
|
||
"toPanel": "From bot to panel"
|
||
}
|
||
}
|
||
},
|
||
"promoOffers": {
|
||
"title": "Promo Offers",
|
||
"subtitle": "Templates, broadcasts and offer logs",
|
||
"sendButton": "Send",
|
||
"tabs": {
|
||
"templates": "Templates ({{count}})",
|
||
"logs": "Logs"
|
||
},
|
||
"noData": {
|
||
"templates": "No templates",
|
||
"logs": "No records"
|
||
},
|
||
"status": {
|
||
"active": "Active",
|
||
"inactive": "Inactive"
|
||
},
|
||
"table": {
|
||
"discount": "Discount",
|
||
"offerDuration": "Offer duration",
|
||
"hoursShort": "{{hours}}h",
|
||
"discountDuration": "Discount duration",
|
||
"testAccess": "Test access"
|
||
},
|
||
"form": {
|
||
"editTemplate": "Edit template",
|
||
"templateName": "Template name",
|
||
"messageText": "Message text",
|
||
"buttonText": "Button text",
|
||
"validHours": "Offer duration (hours)",
|
||
"activationTime": "Time to activate",
|
||
"discountPercent": "Discount (%)",
|
||
"testDurationHours": "Access duration (hours)",
|
||
"defaultZero": "0 = default",
|
||
"activeDiscountHours": "Discount validity (hours)",
|
||
"discountDurationHint": "How long the discount lasts after activation",
|
||
"templateActive": "Template active",
|
||
"saving": "Saving..."
|
||
},
|
||
"send": {
|
||
"title": "Send promo offer",
|
||
"offerTemplate": "Offer template",
|
||
"discountLabel": "{{percent}}% discount",
|
||
"hoursToActivate": "{{hours}}h to activate",
|
||
"sendTo": "Send to",
|
||
"segment": "Segment",
|
||
"user": "User",
|
||
"userIdPlaceholder": "Telegram ID or User ID",
|
||
"preview": "Preview",
|
||
"sending": "Sending...",
|
||
"sendButton": "Send"
|
||
},
|
||
"result": {
|
||
"sentTitle": "Sent!",
|
||
"offersCreated": "Offers created: {{count}}",
|
||
"notificationsSent": "Notifications sent: {{count}}",
|
||
"notificationsFailed": "(failed: {{count}})",
|
||
"sendError": "Failed to send offer"
|
||
},
|
||
"actions": {
|
||
"created": "Created",
|
||
"claimed": "Claimed",
|
||
"consumed": "Consumed",
|
||
"disabled": "Disabled"
|
||
},
|
||
"segments": {
|
||
"all": "All users",
|
||
"active": "Active subscribers",
|
||
"trial": "Trial users",
|
||
"trialEnding": "Trial ending",
|
||
"expiring": "Subscription expiring",
|
||
"expired": "Expired subscription",
|
||
"zero": "Zero balance",
|
||
"autopayFailed": "Autopay failed",
|
||
"lowBalance": "Low balance",
|
||
"inactive30d": "Inactive 30 days",
|
||
"inactive60d": "Inactive 60 days",
|
||
"inactive90d": "Inactive 90 days",
|
||
"customToday": "Registered today",
|
||
"customWeek": "Registered this week",
|
||
"customMonth": "Registered this month",
|
||
"customActiveToday": "Active today"
|
||
},
|
||
"offerType": {
|
||
"testAccess": "Test access",
|
||
"testAccessDesc": "Temporary access to additional servers",
|
||
"extendDiscount": "Renewal discount",
|
||
"extendDiscountDesc": "Discount for current subscribers",
|
||
"purchaseDiscount": "Purchase discount",
|
||
"purchaseDiscountDesc": "Discount for new users"
|
||
}
|
||
}
|
||
},
|
||
"adminDashboard": {
|
||
"title": "Statistics Dashboard",
|
||
"subtitle": "Real-time system overview",
|
||
"refresh": "Refresh",
|
||
"loadError": "Failed to load statistics",
|
||
"stats": {
|
||
"usersOnline": "Users Online",
|
||
"activeSubscriptions": "Active Subscriptions",
|
||
"incomeToday": "Today's Income",
|
||
"incomeMonth": "Monthly Income",
|
||
"incomeTotal": "Total Income",
|
||
"subscriptionIncome": "Subscription Income",
|
||
"total": "total"
|
||
},
|
||
"nodes": {
|
||
"title": "Nodes",
|
||
"online": "Online",
|
||
"offline": "Offline",
|
||
"disabled": "Disabled",
|
||
"noNodes": "No nodes available",
|
||
"usersOnline": "Online",
|
||
"traffic": "Traffic",
|
||
"enable": "Enable",
|
||
"disable": "Disable",
|
||
"hide": "Hide ({{count}})",
|
||
"showMore": "Show {{count}} more nodes"
|
||
},
|
||
"topReferrers": {
|
||
"title": "Top referrers",
|
||
"stats": "ref., {{count}} invites",
|
||
"byEarnings": "By earnings",
|
||
"byInvited": "By invites",
|
||
"invites": "invites",
|
||
"people": "people"
|
||
},
|
||
"period": {
|
||
"today": "Today",
|
||
"week": "Week",
|
||
"month": "Month"
|
||
},
|
||
"topCampaigns": {
|
||
"title": "Top campaign links",
|
||
"stats": "camp., {{count}} reg.",
|
||
"total": "Total from campaigns"
|
||
},
|
||
"recentPayments": {
|
||
"title": "Recent payments",
|
||
"today": "Today: {{amount}}",
|
||
"week": "For the week: {{amount}}"
|
||
},
|
||
"table": {
|
||
"user": "User",
|
||
"type": "Type",
|
||
"amount": "Amount",
|
||
"method": "Method",
|
||
"date": "Date"
|
||
},
|
||
"revenue": {
|
||
"title": "Revenue",
|
||
"last7Days": "Last 7 days"
|
||
},
|
||
"subscriptions": {
|
||
"title": "Subscriptions",
|
||
"subtitle": "Subscription statistics",
|
||
"active": "Active",
|
||
"trial": "Trial",
|
||
"paid": "Paid",
|
||
"expired": "Expired",
|
||
"newSubscriptions": "New Subscriptions",
|
||
"today": "Today",
|
||
"week": "Week",
|
||
"month": "Month",
|
||
"conversion": "Trial to Paid Conversion"
|
||
},
|
||
"servers": {
|
||
"title": "Servers",
|
||
"total": "Total Servers",
|
||
"available": "Available",
|
||
"withConnections": "With Connections",
|
||
"revenue": "Revenue"
|
||
},
|
||
"tariffs": {
|
||
"title": "Tariff Statistics",
|
||
"subtitle": "Subscription distribution by tariffs",
|
||
"tariffName": "Tariff",
|
||
"activeSubscriptions": "Active",
|
||
"trialSubscriptions": "Trial",
|
||
"purchasedToday": "Today",
|
||
"purchasedWeek": "Week",
|
||
"purchasedMonth": "Month",
|
||
"noTariffs": "No tariffs"
|
||
}
|
||
},
|
||
"banSystem": {
|
||
"title": "Ban Monitoring",
|
||
"subtitle": "BedolagaBan system management",
|
||
"contactTelegram": "Write in Telegram",
|
||
"notConfigured": "Ban system is not configured",
|
||
"configureHint": "Set BAN_SYSTEM_API_URL and BAN_SYSTEM_API_TOKEN in configuration",
|
||
"loadError": "Failed to load data",
|
||
"tabs": {
|
||
"dashboard": "Dashboard",
|
||
"users": "Users",
|
||
"punishments": "Bans",
|
||
"nodes": "Nodes",
|
||
"agents": "Agents",
|
||
"violations": "Violations",
|
||
"traffic": "Traffic",
|
||
"reports": "Reports",
|
||
"settings": "Settings",
|
||
"health": "Health"
|
||
},
|
||
"stats": {
|
||
"activeUsers": "Active Users",
|
||
"total": "Total",
|
||
"usersOverLimit": "Over Limit",
|
||
"activeBans": "Active Bans",
|
||
"nodesOnline": "Nodes Online",
|
||
"agentsOnline": "Agents Online",
|
||
"totalRequests": "Total Requests",
|
||
"panelStatus": "Panel Status",
|
||
"connected": "Connected",
|
||
"disconnected": "Disconnected",
|
||
"uptime": "Uptime"
|
||
},
|
||
"dashboard": {
|
||
"totalUsers": "Total Users",
|
||
"activeUsers": "Active Users",
|
||
"usersOverLimit": "Over Limit",
|
||
"totalRequests": "Total Requests",
|
||
"totalPunishments": "Total Punishments",
|
||
"activePunishments": "Active Bans",
|
||
"nodesOnline": "Nodes Online",
|
||
"agentsOnline": "Agents Online",
|
||
"panelConnected": "Panel Connected",
|
||
"panelDisconnected": "Panel Disconnected",
|
||
"uptime": "Uptime"
|
||
},
|
||
"users": {
|
||
"title": "Users",
|
||
"searchPlaceholder": "Search by email...",
|
||
"email": "Email",
|
||
"uniqueIps": "Unique IPs",
|
||
"ipCount": "IPs",
|
||
"requests": "Requests",
|
||
"limit": "Limit",
|
||
"status": "Status",
|
||
"bans": "Bans",
|
||
"lastSeen": "Last Seen",
|
||
"overLimit": "Over Limit",
|
||
"ok": "OK",
|
||
"normal": "Normal",
|
||
"noLimit": "No Limit",
|
||
"noUsers": "No users found",
|
||
"viewDetails": "View Details",
|
||
"networkType": "Network Type",
|
||
"filter": {
|
||
"all": "All",
|
||
"overLimit": "Over Limit",
|
||
"normal": "Normal"
|
||
}
|
||
},
|
||
"userDetail": {
|
||
"title": "User Details",
|
||
"email": "Email",
|
||
"uniqueIps": "Unique IPs",
|
||
"totalRequests": "Total Requests",
|
||
"limit": "Device Limit",
|
||
"status": "Status",
|
||
"networkType": "Network Type",
|
||
"ipHistory": "IP History",
|
||
"recentRequests": "Recent Requests",
|
||
"ip": "IP Address",
|
||
"firstSeen": "First Seen",
|
||
"lastSeen": "Last Seen",
|
||
"node": "Node",
|
||
"requestCount": "Requests",
|
||
"requests": "Requests",
|
||
"country": "Country",
|
||
"city": "City",
|
||
"timestamp": "Timestamp",
|
||
"sourceIp": "Source IP",
|
||
"destination": "Destination",
|
||
"port": "Port",
|
||
"protocol": "Protocol",
|
||
"action": "Action",
|
||
"noIps": "No IP data",
|
||
"noRequests": "No request data",
|
||
"ban": "Ban",
|
||
"close": "Close"
|
||
},
|
||
"punishments": {
|
||
"title": "Active Bans",
|
||
"user": "User",
|
||
"username": "User",
|
||
"reason": "Reason",
|
||
"punishedAt": "Banned At",
|
||
"bannedAt": "Banned At",
|
||
"enableAt": "Unban At",
|
||
"ipCount": "IPs",
|
||
"limit": "Limit",
|
||
"node": "Node",
|
||
"actions": "Actions",
|
||
"unban": "Unban",
|
||
"noPunishments": "No active bans",
|
||
"noBans": "No active bans",
|
||
"unbanConfirm": "Unban user {{username}}?",
|
||
"unbanSuccess": "User unbanned",
|
||
"unbanError": "Unban failed",
|
||
"history": "Ban History",
|
||
"searchHistory": "Search history...",
|
||
"noHistory": "No history found"
|
||
},
|
||
"banModal": {
|
||
"title": "Ban User",
|
||
"username": "Username",
|
||
"usernamePlaceholder": "Enter username",
|
||
"duration": "Duration (minutes)",
|
||
"durationPlaceholder": "Enter duration in minutes",
|
||
"reason": "Reason",
|
||
"reasonPlaceholder": "Enter ban reason (optional)",
|
||
"cancel": "Cancel",
|
||
"ban": "Ban",
|
||
"success": "User banned",
|
||
"error": "Ban failed"
|
||
},
|
||
"nodes": {
|
||
"title": "Nodes",
|
||
"name": "Name",
|
||
"address": "Address",
|
||
"status": "Status",
|
||
"lastSeen": "Last Seen",
|
||
"usersCount": "Users",
|
||
"users": "Users",
|
||
"online": "Online",
|
||
"offline": "Offline",
|
||
"noNodes": "No nodes found",
|
||
"total": "Total",
|
||
"onlineCount": "Online"
|
||
},
|
||
"agents": {
|
||
"title": "Agents",
|
||
"nodeName": "Node",
|
||
"node": "Node",
|
||
"status": "Status",
|
||
"health": "Health",
|
||
"sent": "Sent",
|
||
"dropped": "Dropped",
|
||
"totalSent": "Total Sent",
|
||
"totalDropped": "Total Dropped",
|
||
"batches": "Batches",
|
||
"reconnects": "Reconnects",
|
||
"failures": "Failures",
|
||
"queue": "Queue",
|
||
"dedup": "Deduplication",
|
||
"filter": "Filtering",
|
||
"lastReport": "Last Report",
|
||
"online": "Online",
|
||
"offline": "Offline",
|
||
"healthy": "Healthy",
|
||
"warning": "Warning",
|
||
"critical": "Critical",
|
||
"noAgents": "No agents found",
|
||
"summary": {
|
||
"title": "Summary",
|
||
"totalAgents": "Total Agents",
|
||
"onlineAgents": "Online",
|
||
"totalSent": "Total Sent",
|
||
"totalDropped": "Total Dropped",
|
||
"avgQueueSize": "Avg Queue Size",
|
||
"healthyCount": "Healthy",
|
||
"warningCount": "Warning",
|
||
"criticalCount": "Critical"
|
||
}
|
||
},
|
||
"violations": {
|
||
"title": "Traffic Violations",
|
||
"user": "User",
|
||
"username": "User",
|
||
"email": "Email",
|
||
"type": "Type",
|
||
"description": "Description",
|
||
"bytesUsed": "Used",
|
||
"bytesLimit": "Limit",
|
||
"detectedAt": "Detected At",
|
||
"status": "Status",
|
||
"resolved": "Resolved",
|
||
"active": "Active",
|
||
"noViolations": "No violations found",
|
||
"yes": "Yes",
|
||
"no": "No"
|
||
},
|
||
"traffic": {
|
||
"title": "Traffic Statistics",
|
||
"enabled": "Traffic Monitoring",
|
||
"topUsers": "Top by Traffic",
|
||
"username": "User",
|
||
"bytesTotal": "Total",
|
||
"bytesLimit": "Limit",
|
||
"status": "Status",
|
||
"overLimit": "Over Limit",
|
||
"ok": "OK",
|
||
"recentViolations": "Recent Violations"
|
||
},
|
||
"reports": {
|
||
"title": "Period Reports",
|
||
"period": "Period",
|
||
"currentUsers": "Active Users",
|
||
"currentIps": "Unique IPs",
|
||
"topViolators": "Top Violators",
|
||
"username": "User",
|
||
"count": "Violations"
|
||
},
|
||
"settings": {
|
||
"title": "System Settings",
|
||
"general": "General",
|
||
"limits": "Limits",
|
||
"notifications": "Notifications",
|
||
"whitelist": "Whitelist",
|
||
"saved": "Setting saved",
|
||
"error": "Error saving",
|
||
"categories": {
|
||
"general": "General Settings",
|
||
"punishment": "Punishments",
|
||
"progressive_bans": "Progressive Bans",
|
||
"traffic": "Traffic Monitoring",
|
||
"network": "Network Detection",
|
||
"notifications": "Notifications",
|
||
"rate_limit": "Rate Limits"
|
||
},
|
||
"punishment_enabled": "Enable auto-ban",
|
||
"punishment_minutes": "Ban duration (minutes)",
|
||
"ip_window_seconds": "IP counting window (seconds)",
|
||
"notify_on_punishment": "Notify on bans",
|
||
"notify_on_node_status": "Notify on node status",
|
||
"daily_report_enabled": "Daily report",
|
||
"daily_report_hour": "Report hour",
|
||
"rate_limit_max": "Max requests",
|
||
"rate_limit_window": "Rate limit window (sec)",
|
||
"heartbeat_timeout": "Heartbeat timeout (sec)",
|
||
"progressive_bans_enabled": "Progressive bans",
|
||
"progressive_ban_1": "1st ban (minutes)",
|
||
"progressive_ban_2": "2nd ban (minutes)",
|
||
"progressive_ban_3": "3rd ban (minutes)",
|
||
"progressive_ban_window_hours": "Reset window (hours)",
|
||
"traffic_monitor_enabled": "Traffic monitoring",
|
||
"traffic_limit_gb": "Traffic limit (GB)",
|
||
"traffic_window_minutes": "Check window (min)",
|
||
"traffic_check_interval": "Check interval (min)",
|
||
"traffic_ban_minutes": "Traffic ban (min)",
|
||
"network_detection_enabled": "Network type detection",
|
||
"network_detection_nodes": "Detection nodes",
|
||
"network_detection_monitor_all": "Monitor all nodes",
|
||
"network_detection_collect_all": "Collect from all nodes",
|
||
"network_notify_mobile": "Notify on mobile",
|
||
"network_block_mobile": "Block mobile",
|
||
"network_block_mobile_minutes": "Block mobile (min)",
|
||
"network_notify_wifi": "Notify on WiFi",
|
||
"network_block_wifi": "Block WiFi",
|
||
"network_block_wifi_minutes": "Block WiFi (min)"
|
||
},
|
||
"health": {
|
||
"title": "System Health",
|
||
"systemStatus": "System Status",
|
||
"healthy": "Healthy",
|
||
"degraded": "Degraded",
|
||
"unhealthy": "Unhealthy",
|
||
"components": "Components",
|
||
"uptime": "Uptime"
|
||
}
|
||
},
|
||
"profile": {
|
||
"title": "Profile",
|
||
"accountInfo": "Account Information",
|
||
"telegramId": "Telegram ID",
|
||
"username": "Username",
|
||
"name": "Name",
|
||
"registeredAt": "Registered",
|
||
"emailAuth": "Email Authentication",
|
||
"linkEmailDescription": "Link your email to log in without Telegram. After linking, you'll receive a verification email.",
|
||
"linkEmail": "Link Email",
|
||
"emailRequired": "Email is required",
|
||
"invalidEmail": "Please enter a valid email address",
|
||
"passwordMinLength": "Password must be at least 8 characters",
|
||
"passwordsMismatch": "Passwords do not match",
|
||
"passwordPlaceholder": "Enter password",
|
||
"confirmPasswordPlaceholder": "Confirm password",
|
||
"passwordHint": "Minimum 8 characters",
|
||
"emailSent": "Verification email sent! Please check your inbox.",
|
||
"verified": "Verified",
|
||
"notVerified": "Not verified",
|
||
"verificationRequired": "Please verify your email to use email login.",
|
||
"resendVerification": "Resend Verification Email",
|
||
"verificationResent": "Verification email resent!",
|
||
"canLoginWithEmail": "You can now log in using your email and password.",
|
||
"emailAlreadyRegistered": "This email is already linked to another account. If this is your email, log in with it or contact support.",
|
||
"alreadyHaveEmail": "You already have a verified email linked.",
|
||
"changeEmail": {
|
||
"button": "Change email",
|
||
"title": "Change Email",
|
||
"description": "Enter your new email address. A verification code will be sent to it.",
|
||
"currentEmail": "Current email",
|
||
"newEmail": "New email",
|
||
"sendCode": "Send code",
|
||
"enterCode": "Enter code",
|
||
"enterCodeDescription": "Enter the verification code sent to your new email.",
|
||
"verificationCode": "Verification code",
|
||
"codeSentTo": "Code sent to {{email}}",
|
||
"verify": "Verify",
|
||
"resendCode": "Resend code",
|
||
"resendIn": "Resend in {{seconds}} sec.",
|
||
"success": "Email changed successfully!",
|
||
"successDescription": "Your email has been successfully updated.",
|
||
"emailAlreadyUsed": "This email is already used by another account.",
|
||
"sameEmail": "New email is the same as current.",
|
||
"invalidCode": "Invalid verification code.",
|
||
"codeExpired": "Code has expired. Please request a new one.",
|
||
"tooManyRequests": "Too many requests. Please try again later."
|
||
},
|
||
"notifications": {
|
||
"title": "Notification Settings",
|
||
"subscriptionExpiry": "Subscription Expiry",
|
||
"subscriptionExpiryDesc": "Notify about expiring subscription",
|
||
"daysBeforeExpiry": "Days before expiry",
|
||
"trafficWarning": "Traffic Warning",
|
||
"trafficWarningDesc": "Notify when approaching traffic limit",
|
||
"atPercent": "At usage",
|
||
"balanceLow": "Low Balance",
|
||
"balanceLowDesc": "Notify about low balance",
|
||
"threshold": "Threshold",
|
||
"news": "News",
|
||
"newsDesc": "Receive news and service updates",
|
||
"promoOffers": "Promo Offers",
|
||
"promoOffersDesc": "Receive special offers and discounts",
|
||
"unavailable": "Notification settings unavailable"
|
||
}
|
||
},
|
||
"theme": {
|
||
"colors": "Theme Colors",
|
||
"reset": "Reset",
|
||
"quickPresets": "Quick Presets",
|
||
"quickPresetsDescription": "Choose a ready-made color scheme",
|
||
"customColors": "Custom Colors",
|
||
"customColorsDescription": "Customize each color individually",
|
||
"accent": "Accent Color",
|
||
"accentDescription": "Main brand color for buttons, links and interactive elements",
|
||
"darkTheme": "Dark Theme",
|
||
"lightTheme": "Light Theme",
|
||
"background": "Background",
|
||
"surface": "Surface",
|
||
"text": "Text",
|
||
"textSecondary": "Secondary Text",
|
||
"statusColors": "Status Colors",
|
||
"success": "Success",
|
||
"warning": "Warning",
|
||
"error": "Error",
|
||
"preview": "Preview",
|
||
"previewButton": "Primary Button",
|
||
"previewSecondary": "Secondary Button",
|
||
"light": "Light Theme",
|
||
"dark": "Dark Theme"
|
||
},
|
||
"languages": {
|
||
"ru": "Русский",
|
||
"en": "English",
|
||
"zh": "中文",
|
||
"fa": "فارسی"
|
||
},
|
||
"contests": {
|
||
"title": "Contests",
|
||
"error": "Failed to load contests",
|
||
"noContests": "No contests available",
|
||
"days": "days",
|
||
"days_one": "{{count}} day",
|
||
"days_other": "{{count}} days",
|
||
"play": "Play",
|
||
"alreadyPlayed": "Already played",
|
||
"enterAnswer": "Enter your answer",
|
||
"submit": "Submit",
|
||
"imHere": "I'm here!"
|
||
},
|
||
"polls": {
|
||
"title": "Polls",
|
||
"error": "Failed to load polls",
|
||
"noPolls": "No polls available",
|
||
"questions": "questions",
|
||
"questions_one": "{{count}} question",
|
||
"questions_other": "{{count}} questions",
|
||
"question": "Question",
|
||
"of": "of",
|
||
"start": "Start",
|
||
"continue": "Continue",
|
||
"completed": "Completed",
|
||
"reward": "$"
|
||
},
|
||
"info": {
|
||
"title": "Information",
|
||
"faq": "FAQ",
|
||
"rules": "Rules",
|
||
"privacy": "Privacy Policy",
|
||
"offer": "Public Offer",
|
||
"loyalty": "Loyalty",
|
||
"noFaq": "No FAQ available",
|
||
"noContent": "No content available",
|
||
"updatedAt": "Updated",
|
||
"noLoyaltyTiers": "Loyalty program is not available yet",
|
||
"yourProgress": "Your Progress",
|
||
"totalSpent": "Total spent",
|
||
"currentStatus": "Current status",
|
||
"nextStatus": "Next status",
|
||
"toNextStatus": "To next status",
|
||
"allStatusesAchieved": "You have achieved the maximum status!",
|
||
"statusAchieved": "Achieved",
|
||
"statusCurrent": "Current",
|
||
"statusLocked": "Locked",
|
||
"threshold": "Threshold",
|
||
"discounts": "Discounts",
|
||
"serverDiscount": "Servers",
|
||
"trafficDiscount": "Traffic",
|
||
"deviceDiscount": "Devices",
|
||
"periodDiscount": "{{days}} days",
|
||
"noDiscounts": "No discounts"
|
||
},
|
||
"onboarding": {
|
||
"skip": "Skip",
|
||
"finish": "Finish",
|
||
"steps": {
|
||
"welcome": {
|
||
"title": "Welcome!",
|
||
"description": "This is your personal cabinet. Here you can manage your subscription, top up balance and connect devices."
|
||
},
|
||
"connectDevices": {
|
||
"title": "Connect Devices",
|
||
"description": "Click this button to get instructions on how to connect VPN on your devices."
|
||
},
|
||
"balance": {
|
||
"title": "Your Balance",
|
||
"description": "Your current balance is displayed here. Click to top it up."
|
||
},
|
||
"subscription": {
|
||
"title": "Subscription Status",
|
||
"description": "Here you can see how many days are left until your subscription expires."
|
||
},
|
||
"quickActions": {
|
||
"title": "Quick Actions",
|
||
"description": "Use these buttons for quick access to main features: top up balance, extend subscription, and invite friends."
|
||
}
|
||
}
|
||
},
|
||
"promo": {
|
||
"activeDiscount": "Active discount",
|
||
"discountActive": "Discount active!",
|
||
"discountDescription": "Your personal discount is applied to subscription purchases",
|
||
"expiresIn": "Expires in",
|
||
"source": "Source",
|
||
"useNow": "Use discount now",
|
||
"discountApplied": "Discount applied",
|
||
"time": {
|
||
"days": "d",
|
||
"hours": "h",
|
||
"minutes": "m"
|
||
},
|
||
"offers": {
|
||
"expired": "Expired",
|
||
"testAccess": "Test access",
|
||
"discountPercent": "{{percent}}% off",
|
||
"specialOffer": "Special offer",
|
||
"serverAccess_one": "Access to {{count}} server",
|
||
"serverAccess_other": "Access to {{count}} servers",
|
||
"additionalServers": "Access to additional servers",
|
||
"activateDiscountHint": "Activate discount on subscription purchase",
|
||
"activationFailed": "Failed to activate offer",
|
||
"discountActiveTitle": "{{percent}}% discount active",
|
||
"statusActive": "Active",
|
||
"expires": "Expires: {{time}}",
|
||
"remaining": "Remaining: {{time}}",
|
||
"test": "Test",
|
||
"activating": "Activating...",
|
||
"activate": "Activate",
|
||
"serverAccess": "Server access"
|
||
}
|
||
},
|
||
"telegramRedirect": {
|
||
"maxRetries": "Maximum retry attempts exceeded. Please try again later.",
|
||
"redirecting": "Redirecting...",
|
||
"loginAlternative": "Sign in another way",
|
||
"openInTelegram": "Open in Telegram",
|
||
"openInTelegramDesc": "To sign in automatically, open this app through the Telegram bot",
|
||
"redirectToLogin": "Redirecting to login page..."
|
||
},
|
||
"deepLink": {
|
||
"connecting": "Connecting to",
|
||
"redirecting": "Redirecting in",
|
||
"seconds": "sec",
|
||
"manual": "If nothing happens, click the button below.",
|
||
"openApp": "Open App",
|
||
"copyLink": "Copy subscription link",
|
||
"copied": "Copied!",
|
||
"tryAgain": "Try again",
|
||
"backToCabinet": "Back to cabinet",
|
||
"errorTitle": "Error",
|
||
"errorDesc": "Connection link is missing",
|
||
"goToSubscription": "Go to subscription",
|
||
"howToAdd": "How to add manually:",
|
||
"step1": "Copy the link using the button above",
|
||
"step2": "Open the app",
|
||
"step3": "Find \"+\" or \"Add subscription\"",
|
||
"step4": "Select \"From clipboard\" or \"Paste link\""
|
||
},
|
||
"blocking": {
|
||
"maintenance": {
|
||
"title": "Maintenance",
|
||
"defaultMessage": "Service is temporarily unavailable. Maintenance in progress.",
|
||
"reason": "Reason",
|
||
"waitMessage": "Please wait..."
|
||
},
|
||
"channel": {
|
||
"title": "Channel Subscription",
|
||
"defaultMessage": "Please subscribe to our channel to continue",
|
||
"openChannel": "Open Channel",
|
||
"checkSubscription": "Check Subscription",
|
||
"checking": "Checking...",
|
||
"waitSeconds": "Wait {{seconds}} sec.",
|
||
"hint": "Click check button after subscribing",
|
||
"notSubscribed": "You haven't subscribed to the channel yet",
|
||
"checkError": "Check failed. Please try again later."
|
||
}
|
||
}
|
||
}
|