mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 17:43:47 +00:00
Merge branch 'BEDOLAGA-DEV:main' into dev_nikita
This commit is contained in:
@@ -44,7 +44,8 @@
|
||||
"polls": "Polls",
|
||||
"info": "Info",
|
||||
"wheel": "Fortune Wheel",
|
||||
"menu": "Menu"
|
||||
"menu": "Menu",
|
||||
"gift": "Gift"
|
||||
},
|
||||
"notifications": {
|
||||
"ticketNotifications": "Ticket Notifications",
|
||||
@@ -235,13 +236,13 @@
|
||||
"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",
|
||||
"unlimitedTraffic": "Unlimited traffic",
|
||||
"tariff": "Tariff",
|
||||
"validUntil": "until {{date}}",
|
||||
"remaining": "Remaining",
|
||||
@@ -254,11 +255,20 @@
|
||||
"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"
|
||||
},
|
||||
"suspended": {
|
||||
"title": "Subscription Suspended",
|
||||
"resume": "Resume"
|
||||
},
|
||||
"trialOffer": {
|
||||
"freeTitle": "Free Trial Available",
|
||||
"paidTitle": "Trial Subscription",
|
||||
@@ -336,6 +346,9 @@
|
||||
"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",
|
||||
@@ -446,6 +459,7 @@
|
||||
"pause": {
|
||||
"title": "Subscription Pause",
|
||||
"paused": "Paused",
|
||||
"suspended": "Suspended (insufficient funds)",
|
||||
"active": "Active",
|
||||
"pauseBtn": "Pause",
|
||||
"resumeBtn": "Resume",
|
||||
@@ -690,6 +704,19 @@
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"referral": {
|
||||
@@ -1056,7 +1083,8 @@
|
||||
"roleAssign": "Role Assignment",
|
||||
"policies": "Access Policies",
|
||||
"auditLog": "Audit Log",
|
||||
"salesStats": "Sales Statistics"
|
||||
"salesStats": "Sales Statistics",
|
||||
"landings": "Landings"
|
||||
},
|
||||
"panel": {
|
||||
"title": "Admin Panel",
|
||||
@@ -1089,7 +1117,8 @@
|
||||
"roleAssignDesc": "Assign and revoke user roles",
|
||||
"policiesDesc": "Configure ABAC access policies",
|
||||
"auditLogDesc": "Review system activity and access history",
|
||||
"salesStatsDesc": "Sales analytics and trends"
|
||||
"salesStatsDesc": "Sales analytics and trends",
|
||||
"landingsDesc": "Quick purchase landing pages"
|
||||
},
|
||||
"salesStats": {
|
||||
"title": "Sales Statistics",
|
||||
@@ -1683,6 +1712,8 @@
|
||||
"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",
|
||||
@@ -1692,7 +1723,20 @@
|
||||
"projectName": "Project name",
|
||||
"quickPresets": "Quick presets",
|
||||
"resetAllColors": "Reset all colors",
|
||||
"statusColors": "Status colors"
|
||||
"statusColors": "Status colors",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"theme": {
|
||||
"accentColor": "Accent color",
|
||||
@@ -1720,7 +1764,8 @@
|
||||
"referral": "Referrals",
|
||||
"support": "Support",
|
||||
"info": "Info",
|
||||
"admin": "Admin Panel"
|
||||
"admin": "Admin Panel",
|
||||
"language": "Language"
|
||||
},
|
||||
"descriptions": {
|
||||
"home": "Personal cabinet button",
|
||||
@@ -1729,7 +1774,8 @@
|
||||
"referral": "Referral program",
|
||||
"support": "Support tickets",
|
||||
"info": "Information section",
|
||||
"admin": "Web admin panel"
|
||||
"admin": "Web admin panel",
|
||||
"language": "Language selection"
|
||||
},
|
||||
"styles": {
|
||||
"default": "No color",
|
||||
@@ -1738,6 +1784,26 @@
|
||||
"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",
|
||||
@@ -1921,6 +1987,10 @@
|
||||
"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",
|
||||
@@ -2025,6 +2095,7 @@
|
||||
"subtitle": "Manage advertising links",
|
||||
"createButton": "Create",
|
||||
"noData": "No ad campaigns",
|
||||
"loadMore": "Load more",
|
||||
"bonusType": {
|
||||
"balance": "Balance",
|
||||
"subscription": "Subscription",
|
||||
@@ -2494,6 +2565,7 @@
|
||||
"form": {
|
||||
"name": "Group name",
|
||||
"namePlaceholder": "VIP customers",
|
||||
"nameRequired": "Enter group name",
|
||||
"categoryDiscounts": "Category discounts",
|
||||
"periodDiscounts": "Period discounts",
|
||||
"add": "Add",
|
||||
@@ -2505,6 +2577,7 @@
|
||||
"rub": "rub.",
|
||||
"autoAssignHint": "0 = don't auto-assign",
|
||||
"applyToAddons": "Apply to additional services",
|
||||
"isDefault": "Default group",
|
||||
"cancel": "Cancel",
|
||||
"saving": "Saving...",
|
||||
"save": "Save"
|
||||
@@ -2880,6 +2953,7 @@
|
||||
"apps": "Apps",
|
||||
"email_templates": "Email templates",
|
||||
"pinned_messages": "Pinned messages",
|
||||
"landings": "Landing pages",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"permissionActions": {
|
||||
@@ -3091,6 +3165,7 @@
|
||||
"filters": {
|
||||
"title": "Filters",
|
||||
"active": "Active",
|
||||
"user": "User",
|
||||
"action": "Action",
|
||||
"actionPlaceholder": "Search by action...",
|
||||
"resource": "Resource type",
|
||||
@@ -3152,6 +3227,121 @@
|
||||
"loadFailed": "Failed to load audit log",
|
||||
"retry": "Try again"
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"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"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"adminUpdates": {
|
||||
@@ -3879,5 +4069,152 @@
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user