Merge branch 'BEDOLAGA-DEV:main' into dev_nikita

This commit is contained in:
FireWookie
2026-03-10 15:08:17 +05:00
committed by GitHub
77 changed files with 12471 additions and 1380 deletions

View File

@@ -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."
}
}
}

View File

@@ -44,7 +44,8 @@
"polls": "نظرسنجی",
"info": "اطلاعات",
"wheel": "چرخ شانس",
"menu": "منو"
"menu": "منو",
"gift": "هدیه"
},
"notifications": {
"ticketNotifications": "اعلان‌های تیکت",
@@ -219,7 +220,27 @@
"noActiveSubscription": "اشتراک فعال ندارید",
"devicesUsed": "دستگاه‌ها: {{used}} از {{total}}",
"trafficUsed": "ترافیک: {{used}} از {{total}} گیگ",
"unlimitedTraffic": "ترافیک نامحدود"
"unlimitedTraffic": "ترافیک نامحدود",
"expired": {
"title": "اشتراک منقضی شده",
"trialTitle": "دوره آزمایشی منقضی شده",
"trialSubtitle": "دوره آزمایشی پایان یافته",
"paidSubtitle": "اشتراک منقضی شده",
"renew": "تمدید اشتراک",
"quickRenew": "تمدید سریع",
"insufficientFunds": "موجودی ناکافی",
"renewError": "خطا در تمدید، دوباره تلاش کنید",
"topUp": "شارژ موجودی",
"balance": "موجودی",
"tariffs": "تعرفه‌ها",
"traffic": "ترافیک",
"devices": "دستگاه‌ها",
"expiredDate": "منقضی شده"
},
"suspended": {
"title": "اشتراک معلق شده",
"resume": "از سرگیری"
}
},
"subscription": {
"title": "اشتراک",
@@ -276,6 +297,9 @@
"daysBeforeExpiry": "روز قبل از انقضا",
"daysBeforeExpiry_other": "{{count}} روز قبل از انقضا",
"selectPeriod": "انتخاب دوره",
"noPeriodsAvailable": "دوره‌ای برای تمدید موجود نیست",
"noPeriodsAvailableHint": "مدیر تنظیمات این طرح را تغییر داده است. لطفاً طرح دیگری را برای تمدید اشتراک خود انتخاب کنید.",
"chooseDifferentTariff": "انتخاب طرح دیگر",
"selectTraffic": "انتخاب ترافیک",
"selectServers": "انتخاب سرورها",
"selectDevices": "انتخاب دستگاه‌ها",
@@ -428,6 +452,7 @@
"nextCharge": "تا کسر بعدی",
"pauseBtn": "توقف",
"paused": "متوقف شده",
"suspended": "معلق شده (موجودی ناکافی)",
"pausedDescription": "کسر متوقف شد. اشتراک فعال خواهد بود تا",
"pausedInfo": "اشتراک متوقف شده",
"resumeBtn": "ادامه",
@@ -530,6 +555,19 @@
"paymentSuccess": {
"title": "پرداخت موفق",
"message": "موجودی شما با موفقیت شارژ شد. وجوه اکنون در دسترس است."
},
"topUpResult": {
"awaitingPayment": "در انتظار پرداخت",
"awaitingPaymentDesc": "ما منتظر تأیید پرداخت شما هستیم. این ممکن است چند دقیقه طول بکشد.",
"topUpAmount": "مبلغ شارژ",
"success": "شارژ موفق!",
"successDesc": "موجودی شما با موفقیت شارژ شد. وجوه اکنون در دسترس است.",
"failed": "پرداخت ناموفق",
"failedDesc": "متأسفانه پرداخت تکمیل نشد. لطفاً دوباره تلاش کنید یا روش پرداخت دیگری انتخاب کنید.",
"timeout": "بیشتر از حد معمول طول کشید",
"timeoutDesc": "پردازش پرداخت بیشتر از حد معمول طول می‌کشد. می‌توانید دوباره وضعیت را بررسی کنید.",
"goToBalance": "مشاهده موجودی",
"tryAgain": "تلاش مجدد"
}
},
"referral": {
@@ -885,7 +923,8 @@
"roleAssign": "تخصیص نقش",
"policies": "سیاست‌های دسترسی",
"auditLog": "گزارش بازرسی",
"salesStats": "آمار فروش"
"salesStats": "آمار فروش",
"landings": "صفحات فرود"
},
"panel": {
"title": "پنل مدیریت",
@@ -918,7 +957,8 @@
"roleAssignDesc": "تخصیص و لغو نقش‌های کاربران",
"policiesDesc": "تنظیم سیاست‌های کنترل دسترسی ABAC",
"auditLogDesc": "بررسی فعالیت سیستم و تاریخچه دسترسی",
"salesStatsDesc": "تحلیل فروش و روندها"
"salesStatsDesc": "تحلیل فروش و روندها",
"landingsDesc": "صفحات خرید سریع"
},
"salesStats": {
"title": "آمار فروش",
@@ -1349,6 +1389,8 @@
"darkTheme": "پوسته تیره",
"emailAuth": "احراز هویت ایمیل",
"emailAuthDesc": "اجازه ورود با ایمیل",
"giftEnabled": "اشتراک هدیه",
"giftEnabledDesc": "امکان ارسال اشتراک به عنوان هدیه به کاربر دیگر",
"favoritesEmpty": "هنوز علاقه‌مندی ندارید",
"favoritesHint": "ستاره بزنید تا تنظیمات اینجا اضافه شوند",
"interfaceOptions": "گزینه‌های رابط کاربری",
@@ -1358,7 +1400,20 @@
"projectName": "نام پروژه",
"quickPresets": "پیش‌تنظیم‌های سریع",
"resetAllColors": "بازنشانی همه رنگ‌ها",
"statusColors": "رنگ‌های وضعیت"
"statusColors": "رنگ‌های وضعیت",
"categories": {
"TELEGRAM_WIDGET": "Telegram Login Widget",
"TELEGRAM_OIDC": "Telegram Login (OIDC)"
},
"settingNames": {
"Telegram Widget Size": "اندازه ویجت",
"Telegram Widget Radius": "شعاع گوشه",
"Telegram Widget Userpic": "نمایش تصویر کاربر",
"Telegram Widget Request Access": "درخواست دسترسی",
"telegramOidcEnabled": "فعال‌سازی OIDC",
"telegramOidcClientId": "Client ID (شناسه ربات)",
"telegramOidcClientSecret": "Client Secret"
}
},
"buttons": {
"color": "رنگ دکمه",
@@ -1377,7 +1432,8 @@
"referral": "معرفی",
"support": "پشتیبانی",
"info": "اطلاعات",
"admin": "پنل مدیریت"
"admin": "پنل مدیریت",
"language": "زبان"
},
"descriptions": {
"home": "دکمه کابینت شخصی",
@@ -1386,7 +1442,8 @@
"referral": "برنامه معرفی",
"support": "تیکت‌های پشتیبانی",
"info": "بخش اطلاعات",
"admin": "پنل مدیریت وب"
"admin": "پنل مدیریت وب",
"language": "انتخاب زبان ربات"
},
"styles": {
"default": "بدون رنگ",
@@ -1395,6 +1452,26 @@
"danger": "قرمز"
}
},
"menuEditor": {
"dragHint": "ردیف‌ها را بکشید تا ترتیب تغییر کند",
"dragToReorder": "برای مرتب‌سازی بکشید",
"row": "ردیف",
"addRow": "افزودن ردیف",
"addButton": "افزودن دکمه",
"addUrlButton": "دکمه URL (لینک)",
"builtinButtons": "بخش‌های داخلی",
"resetConfirm": "منو به تنظیمات پیش‌فرض بازنشانی شود؟ تمام تغییرات از بین می‌رود.",
"buttonTextPlaceholder": "متن دکمه",
"customLabelsHint": "متن دکمه برای هر زبان ربات",
"moveUp": "انتقال به بالا",
"moveDown": "انتقال به پایین",
"openIn": "باز کردن در",
"openMode": {
"external": "مرورگر خارجی",
"webapp": "مینی‌اپ تلگرام"
},
"invalidUrl": "لطفاً برای تمام دکمه‌های سفارشی یک URL معتبر وارد کنید (http:// یا https://)"
},
"apps": {
"title": "مدیریت برنامه‌ها",
"addApp": "افزودن برنامه",
@@ -1571,6 +1648,10 @@
"noPeriodsHint": "هیچ دوره‌ای اضافه نشده. حداقل یک دوره اضافه کنید.",
"daysShort": "روز",
"serversTitle": "سرورها",
"externalSquadTitle": "گروه خارجی",
"externalSquadHint": "یک گروه خارجی RemnaWave برای کاربران این تعرفه تعیین کنید. هنگام ایجاد اشتراک، کاربر به طور خودکار به گروه انتخاب شده اضافه می‌شود.",
"noExternalSquad": "بدون گروه خارجی",
"externalSquadUsers": "کاربران",
"serversTabHint": "سرورهای موجود در این تعرفه را انتخاب کنید.",
"noServersAvailable": "هیچ سروری در دسترس نیست",
"promoGroupsTitle": "گروه‌های تبلیغاتی",
@@ -2152,6 +2233,7 @@
"form": {
"name": "نام گروه",
"namePlaceholder": "مشتریان VIP",
"nameRequired": "نام گروه را وارد کنید",
"categoryDiscounts": "تخفیف‌های دسته‌بندی",
"periodDiscounts": "تخفیف‌های دوره‌ای",
"add": "افزودن",
@@ -2163,6 +2245,7 @@
"rub": "روبل",
"autoAssignHint": "0 = تخصیص خودکار نشود",
"applyToAddons": "اعمال به خدمات اضافی",
"isDefault": "گروه پیش‌فرض",
"cancel": "انصراف",
"saving": "در حال ذخیره...",
"save": "ذخیره"
@@ -2619,6 +2702,7 @@
"apps": "برنامه‌ها",
"email_templates": "قالب‌های ایمیل",
"pinned_messages": "پیام‌های سنجاق‌شده",
"landings": "صفحات فرود",
"updates": "به‌روزرسانی‌ها"
},
"permissionActions": {
@@ -2826,6 +2910,7 @@
"filters": {
"title": "فیلترها",
"active": "فعال",
"user": "کاربر",
"action": "عملیات",
"actionPlaceholder": "جستجو بر اساس عملیات...",
"resource": "نوع منبع",
@@ -2884,6 +2969,63 @@
"loadFailed": "بارگذاری گزارش بازرسی ناموفق بود",
"retry": "تلاش مجدد"
}
},
"landings": {
"title": "صفحات فرود",
"create": "ایجاد صفحه فرود",
"edit": "ویرایش",
"slug": "شناسه URL",
"slugHint": "حروف کوچک، اعداد و خط تیره",
"pageTitle": "عنوان",
"subtitle": "زیرعنوان",
"footerText": "متن پاورقی (HTML)",
"features": "ویژگی‌ها",
"addFeature": "افزودن",
"featureIcon": "آیکون",
"featureTitle": "عنوان",
"featureDesc": "توضیحات",
"tariffs": "طرح‌ها",
"selectTariffs": "انتخاب طرح‌ها",
"periods": "دوره‌ها",
"paymentMethods": "روش‌های پرداخت",
"addMethod": "افزودن روش",
"methodId": "شناسه روش",
"methodName": "نام",
"methodDesc": "توضیحات",
"methodIcon": "URL آیکون",
"gifts": "هدایا",
"giftEnabled": "خرید هدیه",
"customCss": "CSS",
"seo": "SEO",
"metaTitle": "عنوان متا",
"metaDesc": "توضیحات متا",
"active": "فعال",
"inactive": "غیرفعال",
"purchaseCount": "خرید",
"copyUrl": "کپی URL",
"urlCopied": "URL کپی شد",
"deleteConfirm": "حذف صفحه فرود «{{title}}»؟",
"created": "صفحه فرود ایجاد شد",
"updated": "صفحه فرود به‌روز شد",
"deleted": "صفحه فرود حذف شد",
"saveOrder": "ذخیره ترتیب",
"orderSaved": "ترتیب ذخیره شد",
"general": "عمومی",
"content": "محتوا",
"save": "ذخیره",
"back": "بازگشت",
"invalidSlug": "Slug فقط می‌تواند شامل حروف کوچک، اعداد و خط تیره باشد",
"titleRequired": "عنوان الزامی است",
"noTariffs": "حداقل یک تعرفه انتخاب کنید",
"noPaymentMethods": "حداقل یک روش پرداخت اضافه کنید",
"selectMethods": "انتخاب روش‌های پرداخت موجود",
"noSystemMethods": "هیچ روش پرداختی در سیستم پیکربندی نشده است",
"methodOrder": "برای تغییر ترتیب بکشید",
"methodSubOptions": "گزینه‌های فرعی پرداخت",
"loadingPeriods": "در حال بارگذاری...",
"periodDaySuffix": "روز",
"localeTab": "زبان",
"localeHint": "زبان را تغییر دهید تا متن را به آن زبان ویرایش کنید"
}
},
"adminUpdates": {
@@ -3436,5 +3578,144 @@
"error": "ادغام ناموفق بود. لطفاً بعداً دوباره تلاش کنید.",
"expiresIn": "{{minutes}} دقیقه باقی مانده",
"merging": "در حال ادغام..."
},
"landing": {
"notFound": "صفحه یافت نشد",
"forMe": "برای خودم",
"asGift": "به عنوان هدیه",
"contactLabel": "ایمیل یا @نام کاربری شما",
"yourContact": "ایمیل یا @نام کاربری شما",
"contactPlaceholder": "email@example.com یا @username",
"contactHint": "ایمیل یا @نام کاربری تلگرام را وارد کنید",
"recipientLabel": "گیرنده هدیه",
"recipientPlaceholder": "ایمیل یا @نام کاربری گیرنده",
"giftMessageLabel": "پیام تبریک (اختیاری)",
"giftMessagePlaceholder": "یک پیام تبریک بنویسید...",
"chooseTariff": "یک طرح انتخاب کنید",
"devices": "دستگاه",
"paymentMethod": "روش پرداخت",
"processing": "در حال پردازش...",
"payButton": "پرداخت {{price}}",
"accessFor": "دسترسی برای {{period}}",
"purchaseError": "خطا در ایجاد پرداخت",
"purchaseNotFound": "خرید یافت نشد",
"awaitingPayment": "در انتظار پرداخت",
"awaitingPaymentDesc": "پرداخت را در پنجره باز شده تکمیل کنید",
"purchaseSuccess": "پرداخت موفق بود!",
"keySentTo": "کلید اشتراک به {{contact}} ارسال شد",
"giftSentTo": "هدیه به {{contact}} ارسال شد",
"purchaseFailed": "پرداخت ناموفق",
"purchaseFailedDesc": "پرداخت انجام نشد. دوباره تلاش کنید.",
"subscriptionLink": "لینک اشتراک",
"daysAccess": "روز دسترسی",
"error": "خطا",
"gb": "گیگابایت",
"selectedTariff": "تعرفه",
"period": "دوره",
"total": "مجموع",
"pay": "پرداخت",
"choosePeriod": "انتخاب دوره",
"copy": "کپی",
"copied": "کپی شد!",
"copyLink": "کپی لینک",
"giftToggleLabel": "نوع خرید",
"pollTimedOut": "زمان بیشتری طول کشید",
"pollTimedOutDesc": "پردازش پرداخت بیشتر از حد معمول طول کشیده است. می‌توانید دوباره بررسی کنید.",
"pendingActivation": "اشتراک آماده فعال‌سازی",
"pendingActivationDesc": "شما قبلاً اشتراک فعالی دارید. فعال‌سازی اشتراک جدید جایگزین اشتراک فعلی می‌شود.",
"activateNow": "فعال‌سازی",
"activating": "در حال فعال‌سازی...",
"activationFailed": "خطا در فعال‌سازی",
"giftMessage": "پیام",
"cabinetReady": "حساب شما آماده است",
"cabinetEmail": "ایمیل",
"cabinetPassword": "رمز عبور",
"goToCabinet": "رفتن به پنل کاربری",
"saveCredentials": "این اطلاعات ورود را ذخیره کنید",
"credentialsSentToEmail": "اطلاعات ورود به ایمیل شما ارسال شد",
"giftSentSuccess": "هدیه ارسال شد!",
"giftSentDesc": "گیرنده از طریق ایمیل مطلع خواهد شد",
"giftPendingActivationDesc": "گیرنده در حال حاضر اشتراک فعال دارد. لینک فعال‌سازی هدیه برای او ارسال خواهد شد.",
"giftTelegramSent": "اطلاعیه هدیه از طریق تلگرام به گیرنده ارسال شد",
"giftTelegramNotInBot": "گیرنده هنوز ربات را شروع نکرده است. این لینک را برای او ارسال کنید:",
"giftTelegramPendingSent": "درخواست فعال‌سازی از طریق تلگرام به گیرنده ارسال شد",
"giftTelegramPendingNotInBot": "گیرنده هنوز در ربات نیست. لینک ربات را برایش ارسال کنید تا بتواند هدیه را فعال کند:",
"openBot": "باز کردن ربات",
"autoLoginFailed": "ورود خودکار ناموفق بود",
"autoLoginProcessing": "در حال ورود...",
"periodLabels": {
"d1": "۱ روز",
"d2": "۲ روز",
"d3": "۳ روز",
"d5": "۵ روز",
"d7": "۱ هفته",
"d14": "۲ هفته",
"d30": "۱ ماه",
"d60": "۲ ماه",
"d90": "۳ ماه",
"d180": "۶ ماه",
"d365": "۱ سال",
"d456": "۱ سال و ۳ ماه",
"nDays": "{{count}} روز",
"nMonths": "{{count}} ماه"
}
},
"gift": {
"title": "هدیه اشتراک",
"subtitle": "اشتراک VPN را به عنوان هدیه ارسال کنید",
"choosePeriod": "انتخاب مدت",
"chooseTariff": "انتخاب طرح",
"recipient": "گیرنده",
"recipientPlaceholder": "ایمیل یا @telegram",
"recipientHint": "ایمیل یا نام کاربری تلگرام را وارد کنید",
"giftMessage": "پیام تبریک",
"giftMessagePlaceholder": "پیام شخصی اضافه کنید (اختیاری)",
"paymentMode": "روش پرداخت",
"fromBalance": "از موجودی",
"viaGateway": "درگاه پرداخت",
"yourBalance": "موجودی شما",
"insufficientBalance": "موجودی ناکافی",
"topUpBalance": "شارژ موجودی",
"total": "جمع",
"giftButton": "ارسال هدیه",
"sending": "در حال ارسال هدیه...",
"gb": "گیگابایت",
"devices": "دستگاه",
"paymentMethod": "روش پرداخت",
"processing": "در حال پردازش...",
"successTitle": "هدیه ارسال شد!",
"successDesc": "گیرنده {{contact}} اطلاع‌رسانی خواهد شد",
"pendingTitle": "در انتظار پرداخت",
"pendingDesc": "پرداخت را در سیستم پرداخت تکمیل کنید",
"pendingActivationTitle": "در انتظار فعال‌سازی",
"pendingActivationDesc": "گیرنده اشتراک فعال دارد. هدیه منتظر فعال‌سازی است.",
"failedTitle": "خطا",
"failedDesc": "ارسال هدیه ناموفق بود. لطفاً دوباره تلاش کنید.",
"backToGift": "بازگشت",
"backToDashboard": "بازگشت به داشبورد",
"tryAgain": "تلاش مجدد",
"pollTimeout": "پردازش بیش از حد معمول طول کشیده",
"pollTimeoutDesc": "بعداً وضعیت را بررسی کنید",
"pollErrorTitle": "بررسی وضعیت هدیه امکان‌پذیر نیست",
"pollErrorDesc": "خرید شما موفقیت‌آمیز بود. وضعیت را در داشبورد بررسی کنید.",
"retry": "بررسی مجدد",
"notFound": "تنظیمات هدیه یافت نشد",
"noToken": "لینک نامعتبر",
"noTokenDesc": "این لینک هدیه نامعتبر است یا منقضی شده.",
"days": "روز",
"tariff": "طرح",
"period": "مدت",
"giftMessageLabel": "پیام",
"recipientLabel": "گیرنده",
"featureDisabled": "قابلیت هدیه موقتاً در دسترس نیست",
"redirecting": "در حال انتقال...",
"pending": {
"title": "شما یک هدیه دریافت کردید!",
"from": "از {{sender}}",
"activate": "فعال‌سازی"
},
"warning": {
"telegram_unresolvable": "نام کاربری تلگرام قابل تأیید نبود. ممکن است گیرنده اعلان هدیه را دریافت نکند."
}
}
}

View File

@@ -44,7 +44,8 @@
"polls": "Опросы",
"info": "Информация",
"wheel": "Колесо удачи",
"menu": "Меню"
"menu": "Меню",
"gift": "Подарить"
},
"notifications": {
"ticketNotifications": "Уведомления о тикетах",
@@ -247,13 +248,13 @@
"connectDevice": "Подключить устройство",
"devicesConnected": "{{count}} подключено",
"devicesOfMax": "{{used}} из {{max}} подключено",
"devicesConnectedUnlimited": "{{used}} подключено · без лимита",
"devicesShort": "устр.",
"trafficUsage": "{{used}} / {{limit}} ГБ",
"trafficUsageTitle": "Расход трафика",
"usedTraffic": "использовано {{amount}}",
"usedSuffix": "израсходовано",
"unlimited": "Безлимит",
"unlimitedTraffic": "Безлимитный трафик",
"tariff": "Тариф",
"validUntil": "до {{date}}",
"remaining": "Осталось",
@@ -266,11 +267,20 @@
"trialSubtitle": "Пробный период завершён",
"paidSubtitle": "Срок действия закончился",
"renew": "Продлить подписку",
"quickRenew": "Продлить",
"topUp": "Пополнить баланс",
"balance": "Баланс",
"insufficientFunds": "Недостаточно средств на балансе",
"renewError": "Ошибка продления, попробуйте ещё раз",
"tariffs": "Тарифы",
"traffic": "Трафик",
"devices": "Устройства",
"expiredDate": "Истекла"
},
"suspended": {
"title": "Подписка приостановлена",
"resume": "Возобновить"
},
"trialOffer": {
"freeTitle": "Бесплатный пробный период",
"paidTitle": "Пробная подписка",
@@ -355,6 +365,9 @@
"daysBeforeExpiry_few": "{{count}} дня до окончания",
"daysBeforeExpiry_many": "{{count}} дней до окончания",
"selectPeriod": "Выберите период",
"noPeriodsAvailable": "Нет доступных периодов для продления",
"noPeriodsAvailableHint": "Администратор изменил настройки этого тарифа. Выберите другой тариф для продления подписки.",
"chooseDifferentTariff": "Выбрать другой тариф",
"selectTraffic": "Выберите трафик",
"selectServers": "Выберите серверы",
"selectDevices": "Устройства",
@@ -469,6 +482,7 @@
"pause": {
"title": "Пауза подписки",
"paused": "На паузе",
"suspended": "Приостановлена (недостаточно средств)",
"active": "Активна",
"pauseBtn": "Приостановить",
"resumeBtn": "Возобновить",
@@ -718,6 +732,19 @@
"paymentSuccess": {
"title": "Оплата прошла успешно",
"message": "Ваш баланс успешно пополнен. Средства уже доступны."
},
"topUpResult": {
"awaitingPayment": "Ожидание оплаты",
"awaitingPaymentDesc": "Мы ожидаем подтверждение вашего платежа. Это может занять несколько минут.",
"topUpAmount": "Сумма пополнения",
"success": "Баланс пополнен!",
"successDesc": "Ваш баланс успешно пополнен. Средства уже доступны.",
"failed": "Оплата не прошла",
"failedDesc": "К сожалению, платёж не был завершён. Попробуйте ещё раз или выберите другой способ оплаты.",
"timeout": "Дольше, чем обычно",
"timeoutDesc": "Обработка платежа занимает больше времени. Вы можете проверить статус ещё раз.",
"goToBalance": "Перейти к балансу",
"tryAgain": "Попробовать снова"
}
},
"referral": {
@@ -1077,7 +1104,8 @@
"roleAssign": "Назначение ролей",
"policies": "Политики доступа",
"auditLog": "Журнал аудита",
"salesStats": "Статистика продаж"
"salesStats": "Статистика продаж",
"landings": "Лендинги"
},
"panel": {
"title": "Панель администратора",
@@ -1110,7 +1138,8 @@
"roleAssignDesc": "Назначение и отзыв ролей пользователей",
"policiesDesc": "Настройка политик контроля доступа ABAC",
"auditLogDesc": "Просмотр активности системы и истории доступа",
"salesStatsDesc": "Аналитика продаж и тренды"
"salesStatsDesc": "Аналитика продаж и тренды",
"landingsDesc": "Страницы быстрой покупки"
},
"salesStats": {
"title": "Статистика продаж",
@@ -1693,6 +1722,8 @@
"autoFullscreenDesc": "В Telegram WebApp",
"emailAuth": "Email авторизация",
"emailAuthDesc": "Регистрация и вход через email",
"giftEnabled": "Подписка в подарок",
"giftEnabledDesc": "Возможность отправить подписку в подарок другому пользователю",
"availableThemes": "Доступные темы",
"darkTheme": "Тёмная",
"lightTheme": "Светлая",
@@ -1773,6 +1804,10 @@
"Subscription Show Devices": "Показывать устройства",
"Telegram Stars Enabled": "Stars включены",
"Telegram Stars Rate Rub": "Курс Stars (₽)",
"Telegram Widget Size": "Размер виджета",
"Telegram Widget Radius": "Скругление углов",
"Telegram Widget Userpic": "Показывать аватар",
"Telegram Widget Request Access": "Запрос доступа",
"Tribute Api Key": "API ключ",
"Tribute Donate Link": "Ссылка доната",
"Tribute Enabled": "Tribute включен",
@@ -2161,7 +2196,10 @@
"External Admin Token": "Токен внешней админки",
"External Admin Token Bot Id": "ID бота",
"Bot Username": "Username бота",
"Debug": "Отладка"
"Debug": "Отладка",
"telegramOidcEnabled": "OIDC включён",
"telegramOidcClientId": "Client ID (ID бота)",
"telegramOidcClientSecret": "Client Secret"
},
"categories": {
"PAYMENT": "Платежи",
@@ -2175,6 +2213,8 @@
"PAL24": "PAL24",
"WATA": "Wata",
"TELEGRAM": "Telegram",
"TELEGRAM_WIDGET": "Telegram Login Widget",
"TELEGRAM_OIDC": "Telegram Login (OIDC)",
"SUBSCRIPTIONS_CORE": "Основные",
"SIMPLE_SUBSCRIPTION": "Простая подписка",
"PERIODS": "Периоды",
@@ -2235,7 +2275,8 @@
"referral": "Рефералы",
"support": "Поддержка",
"info": "Информация",
"admin": "Админка"
"admin": "Админка",
"language": "Язык"
},
"descriptions": {
"home": "Кнопка личного кабинета",
@@ -2244,7 +2285,8 @@
"referral": "Реферальная программа",
"support": "Обращения в поддержку",
"info": "Информационный раздел",
"admin": "Веб-админка"
"admin": "Веб-админка",
"language": "Выбор языка"
},
"styles": {
"default": "Без цвета",
@@ -2253,6 +2295,26 @@
"danger": "Красный"
}
},
"menuEditor": {
"dragHint": "Перетаскивайте ряды для изменения порядка",
"dragToReorder": "Перетащите для сортировки",
"row": "Ряд",
"addRow": "Добавить ряд",
"addButton": "Добавить кнопку",
"addUrlButton": "URL-кнопка (ссылка)",
"builtinButtons": "Встроенные кнопки",
"resetConfirm": "Сбросить компоновку меню к значениям по умолчанию?",
"buttonTextPlaceholder": "Свой текст кнопки",
"customLabelsHint": "Пустое поле = название по умолчанию",
"moveUp": "Переместить вверх",
"moveDown": "Переместить вниз",
"openIn": "Открывать в",
"openMode": {
"external": "Внешний браузер",
"webapp": "Telegram miniapp"
},
"invalidUrl": "Укажите корректный URL (http:// или https://) для всех пользовательских кнопок"
},
"apps": {
"title": "Управление приложениями",
"addApp": "Добавить приложение",
@@ -2439,6 +2501,10 @@
"noPeriodsHint": "Нет добавленных периодов. Добавьте хотя бы один период.",
"daysShort": "дн.",
"serversTitle": "Серверы",
"externalSquadTitle": "Внешний сквад",
"externalSquadHint": "Назначьте внешний сквад RemnaWave для пользователей этого тарифа. При создании подписки пользователь будет автоматически добавлен в выбранный сквад.",
"noExternalSquad": "Без внешнего сквада",
"externalSquadUsers": "пользователей",
"serversTabHint": "Выберите серверы, доступные на этом тарифе.",
"noServersAvailable": "Нет доступных серверов",
"promoGroupsTitle": "Промо-группы",
@@ -2543,6 +2609,7 @@
"subtitle": "Управление рекламными ссылками",
"createButton": "Создать",
"noData": "Нет рекламных кампаний",
"loadMore": "Загрузить ещё",
"bonusType": {
"balance": "Баланс",
"subscription": "Подписка",
@@ -3019,6 +3086,7 @@
"form": {
"name": "Название группы",
"namePlaceholder": "VIP клиенты",
"nameRequired": "Введите название группы",
"categoryDiscounts": "Скидки по категориям",
"periodDiscounts": "Скидки по периодам",
"add": "Добавить",
@@ -3030,6 +3098,7 @@
"rub": "руб.",
"autoAssignHint": "0 = не назначать автоматически",
"applyToAddons": "Применять к дополнительным услугам",
"isDefault": "Группа по умолчанию",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить"
@@ -3428,6 +3497,7 @@
"apps": "Приложения",
"email_templates": "Шаблоны писем",
"pinned_messages": "Закреплённые сообщения",
"landings": "Лендинги",
"updates": "Обновления"
},
"permissionActions": {
@@ -3643,6 +3713,7 @@
"filters": {
"title": "Фильтры",
"active": "Активны",
"user": "Пользователь",
"action": "Действие",
"actionPlaceholder": "Поиск по действию...",
"resource": "Тип ресурса",
@@ -3707,6 +3778,122 @@
"loadFailed": "Не удалось загрузить журнал аудита",
"retry": "Попробовать снова"
}
},
"landings": {
"title": "Лендинги",
"create": "Создать лендинг",
"edit": "Редактировать",
"slug": "URL-идентификатор",
"slugHint": "Латиница, цифры и дефис",
"pageTitle": "Заголовок",
"subtitle": "Подзаголовок",
"footerText": "Текст внизу (HTML)",
"features": "Преимущества",
"addFeature": "Добавить",
"featureIcon": "Иконка",
"featureTitle": "Заголовок",
"featureDesc": "Описание",
"tariffs": "Тарифы",
"selectTariffs": "Выберите тарифы",
"periods": "Периоды",
"paymentMethods": "Способы оплаты",
"addMethod": "Добавить метод",
"methodId": "ID метода",
"methodName": "Название",
"methodDesc": "Описание",
"methodIcon": "URL иконки",
"gifts": "Подарки",
"giftEnabled": "Покупка в подарок",
"customCss": "CSS",
"seo": "SEO",
"metaTitle": "Meta Title",
"metaDesc": "Meta Description",
"active": "Активен",
"inactive": "Неактивен",
"purchaseCount": "покупок",
"copyUrl": "Скопировать URL",
"urlCopied": "URL скопирован",
"deleteConfirm": "Удалить лендинг «{{title}}»?",
"created": "Лендинг создан",
"updated": "Лендинг обновлён",
"deleted": "Лендинг удалён",
"saveOrder": "Сохранить порядок",
"orderSaved": "Порядок сохранён",
"general": "Основное",
"content": "Контент",
"save": "Сохранить",
"back": "Назад",
"invalidSlug": "Slug может содержать только строчные буквы, цифры и дефисы",
"titleRequired": "Заголовок обязателен",
"noTariffs": "Выберите хотя бы один тариф",
"noPaymentMethods": "Добавьте хотя бы один способ оплаты",
"selectMethods": "Выберите доступные методы",
"noSystemMethods": "В системе не настроено ни одного способа оплаты",
"methodOrder": "Перетащите для изменения порядка",
"methodSubOptions": "Варианты оплаты",
"loadingPeriods": "Загрузка...",
"periodDaySuffix": "д",
"localeTab": "Язык",
"localeHint": "Переключите язык для редактирования текста на этом языке",
"discount": "Скидка",
"discountEnabled": "Включить скидку",
"discountPercent": "Скидка %",
"discountStartsAt": "Дата начала",
"discountEndsAt": "Дата окончания",
"discountBadge": "Текст баннера (необязательно)",
"discountBadgePlaceholder": "напр. Весенняя распродажа!",
"discountOverrides": "Индивидуальные скидки по тарифам",
"discountOverridesHint": "Оставьте пустым для использования общей скидки",
"discountPreview": "Предпросмотр",
"discountActive": "Скидка",
"background": "Анимированный фон",
"statistics": "Статистика",
"stats": {
"title": "Статистика лендинга",
"totalPurchases": "Покупки",
"revenue": "Доход",
"giftPurchases": "Подарки",
"regularPurchases": "Обычные",
"conversionRate": "Конверсия",
"avgPurchase": "Средний чек",
"dailyChart": "Покупки и доход по дням",
"tariffChart": "Распределение по тарифам",
"giftBreakdown": "Подарки vs обычные",
"purchases": "Покупки",
"revenueLabel": "Доход",
"gifts": "Подарки",
"regular": "Обычные",
"created": "Создано",
"successful": "Успешных",
"funnel": "Воронка",
"loadError": "Не удалось загрузить статистику",
"noPurchases": "Нет покупок"
},
"purchases": {
"title": "Покупки",
"contact": "Контакт",
"recipient": "Получатель",
"tariff": "Тариф",
"period": "Период",
"days": "дн.",
"price": "Цена",
"method": "Метод",
"date": "Дата",
"gift": "Подарок",
"forSelf": "Для себя",
"allStatuses": "Все статусы",
"status_pending": "Ожидание",
"status_paid": "Оплачен",
"status_delivered": "Доставлен",
"status_pending_activation": "Ожидает активации",
"status_failed": "Ошибка",
"status_expired": "Истёк",
"noPurchases": "Нет покупок",
"showing": "Показано {{from}}{{to}} из {{total}}",
"page": "Стр. {{current}} из {{total}}",
"prev": "Назад",
"next": "Далее"
}
}
},
"adminUpdates": {
@@ -4442,5 +4629,154 @@
"error": "Ошибка при объединении. Попробуйте позже.",
"expiresIn": "Действует ещё {{minutes}}",
"merging": "Объединение..."
},
"landing": {
"notFound": "Страница не найдена",
"forMe": "Для себя",
"asGift": "В подарок",
"contactLabel": "Ваш email или @username Telegram",
"yourContact": "Ваш email или @username",
"contactPlaceholder": "email@example.com или @username",
"contactHint": "Введите email или Telegram @username",
"recipientLabel": "Кому подарить",
"recipientPlaceholder": "email или @username получателя",
"giftMessageLabel": "Поздравление (необязательно)",
"giftMessagePlaceholder": "Напишите поздравление...",
"chooseTariff": "Выберите тариф",
"devices": "устройств",
"paymentMethod": "Способ оплаты",
"processing": "Обработка...",
"payButton": "Оплатить {{price}}",
"accessFor": "Доступ на {{period}}",
"purchaseError": "Ошибка при создании оплаты",
"purchaseNotFound": "Покупка не найдена",
"awaitingPayment": "Ожидание оплаты",
"awaitingPaymentDesc": "Завершите оплату в открывшемся окне",
"purchaseSuccess": "Оплата прошла успешно!",
"keySentTo": "Ключ подписки отправлен на {{contact}}",
"giftSentTo": "Подарок отправлен на {{contact}}",
"purchaseFailed": "Ошибка оплаты",
"purchaseFailedDesc": "Оплата не прошла. Попробуйте снова.",
"subscriptionLink": "Ссылка подписки",
"daysAccess": "дней доступа",
"error": "Ошибка",
"gb": "ГБ",
"selectedTariff": "Тариф",
"period": "Период",
"total": "Итого",
"pay": "Оплатить",
"choosePeriod": "Выберите период",
"copy": "Скопировать",
"copied": "Скопировано!",
"copyLink": "Скопировать ссылку",
"giftToggleLabel": "Тип покупки",
"pollTimedOut": "Занимает больше времени, чем ожидалось",
"pollTimedOutDesc": "Обработка платежа занимает больше времени, чем обычно. Вы можете попробовать проверить ещё раз.",
"pendingActivation": "Подписка готова к активации",
"pendingActivationDesc": "У вас уже есть активная подписка. Активация новой заменит текущую.",
"activateNow": "Активировать",
"activating": "Активация...",
"activationFailed": "Ошибка активации",
"giftMessage": "Сообщение",
"cabinetReady": "Ваш аккаунт готов",
"cabinetEmail": "Email",
"cabinetPassword": "Пароль",
"goToCabinet": "Перейти в кабинет",
"saveCredentials": "Сохраните эти данные для входа",
"credentialsSentToEmail": "Данные для входа отправлены на email",
"giftSentSuccess": "Подарок отправлен!",
"giftSentDesc": "Получатель получит уведомление на email",
"giftPendingActivationDesc": "У получателя уже есть активная подписка. Ему будет отправлена ссылка для активации подарка.",
"giftTelegramSent": "Мы отправили получателю уведомление о подарке в Telegram",
"giftTelegramNotInBot": "Получатель пока не пользуется ботом. Отправьте ему эту ссылку, чтобы он мог забрать подарок:",
"giftTelegramPendingSent": "Мы отправили получателю предложение активировать подарок в Telegram",
"giftTelegramPendingNotInBot": "Получатель пока не пользуется ботом. Отправьте ему ссылку, чтобы он мог активировать подарок:",
"openBot": "Ссылка на бота",
"autoLoginFailed": "Не удалось выполнить автоматический вход",
"autoLoginProcessing": "Выполняется вход...",
"discount": {
"days": "д",
"hours": "ч",
"minutes": "м",
"seconds": "с"
},
"periodLabels": {
"d1": "1 день",
"d2": "2 дня",
"d3": "3 дня",
"d5": "5 дней",
"d7": "1 неделя",
"d14": "2 недели",
"d30": "1 месяц",
"d60": "2 месяца",
"d90": "3 месяца",
"d180": "6 месяцев",
"d365": "1 год",
"d456": "1 год + 3 мес.",
"nDays_one": "{{count}} день",
"nDays_few": "{{count}} дня",
"nDays_many": "{{count}} дней",
"nMonths_one": "{{count}} месяц",
"nMonths_few": "{{count}} месяца",
"nMonths_many": "{{count}} месяцев"
}
},
"gift": {
"title": "Подарить подписку",
"subtitle": "Отправьте VPN-подписку в подарок",
"choosePeriod": "Выберите период",
"chooseTariff": "Выберите тариф",
"recipient": "Получатель",
"recipientPlaceholder": "Email или @telegram",
"recipientHint": "Введите email или юзернейм в Telegram",
"giftMessage": "Поздравление",
"giftMessagePlaceholder": "Добавьте личное сообщение (необязательно)",
"paymentMode": "Способ оплаты",
"fromBalance": "С баланса",
"viaGateway": "Через платёжку",
"yourBalance": "Ваш баланс",
"insufficientBalance": "Недостаточно средств",
"topUpBalance": "Пополнить баланс",
"total": "Итого",
"giftButton": "Подарить",
"sending": "Отправляем подарок...",
"gb": "ГБ",
"devices": "устройств",
"paymentMethod": "Способ оплаты",
"processing": "Обработка...",
"successTitle": "Подарок отправлен!",
"successDesc": "Получатель {{contact}} получит уведомление",
"pendingTitle": "Ожидание оплаты",
"pendingDesc": "Завершите оплату в платёжной системе",
"pendingActivationTitle": "Ожидает активации",
"pendingActivationDesc": "У получателя есть активная подписка. Подарок ожидает активации.",
"failedTitle": "Ошибка",
"failedDesc": "Не удалось отправить подарок. Попробуйте снова.",
"backToGift": "Вернуться",
"backToDashboard": "На главную",
"tryAgain": "Попробовать снова",
"pollTimeout": "Обработка занимает больше времени, чем обычно",
"pollTimeoutDesc": "Попробуйте проверить статус позже",
"pollErrorTitle": "Не удалось проверить статус подарка",
"pollErrorDesc": "Ваша покупка прошла успешно. Проверьте статус на главной странице.",
"retry": "Проверить снова",
"notFound": "Конфигурация подарков не найдена",
"noToken": "Ссылка недействительна",
"noTokenDesc": "Ссылка на подарок недействительна или просрочена.",
"days": "дн.",
"tariff": "Тариф",
"period": "Период",
"giftMessageLabel": "Сообщение",
"recipientLabel": "Получатель",
"featureDisabled": "Функция подарков временно недоступна",
"redirecting": "Перенаправляем...",
"pending": {
"title": "Вам подарили подписку!",
"from": "от {{sender}}",
"activate": "Активировать"
},
"warning": {
"telegram_unresolvable": "Не удалось проверить этот Telegram-юзернейм. Получатель может не получить уведомление о подарке."
}
}
}

View File

@@ -44,7 +44,8 @@
"polls": "问卷",
"info": "信息",
"wheel": "幸运转盘",
"menu": "菜单"
"menu": "菜单",
"gift": "赠送"
},
"notifications": {
"ticketNotifications": "工单通知",
@@ -219,7 +220,27 @@
"noActiveSubscription": "无有效订阅",
"devicesUsed": "设备:{{used}} / {{total}}",
"trafficUsed": "流量:{{used}} / {{total}} GB",
"unlimitedTraffic": "无限流量"
"unlimitedTraffic": "无限流量",
"expired": {
"title": "订阅已过期",
"trialTitle": "试用已过期",
"trialSubtitle": "试用期已结束",
"paidSubtitle": "订阅已到期",
"renew": "续订",
"quickRenew": "快速续订",
"insufficientFunds": "余额不足",
"renewError": "续订失败,请重试",
"topUp": "充值",
"balance": "余额",
"tariffs": "套餐",
"traffic": "流量",
"devices": "设备",
"expiredDate": "过期时间"
},
"suspended": {
"title": "订阅已暂停",
"resume": "恢复"
}
},
"subscription": {
"title": "订阅",
@@ -276,6 +297,9 @@
"daysBeforeExpiry": "到期前天数",
"daysBeforeExpiry_other": "到期前 {{count}} 天",
"selectPeriod": "选择时长",
"noPeriodsAvailable": "没有可用的续订周期",
"noPeriodsAvailableHint": "管理员已更改此套餐的设置。请选择其他套餐续订您的订阅。",
"chooseDifferentTariff": "选择其他套餐",
"selectTraffic": "选择流量",
"selectServers": "选择服务器",
"selectDevices": "选择设备",
@@ -428,6 +452,7 @@
"nextCharge": "距下次扣费",
"pauseBtn": "暂停",
"paused": "已暂停",
"suspended": "已暂停(余额不足)",
"pausedDescription": "扣费已停止。订阅有效期至",
"pausedInfo": "订阅已暂停",
"resumeBtn": "恢复",
@@ -530,6 +555,19 @@
"paymentSuccess": {
"title": "支付成功",
"message": "您的余额已成功充值,资金现已可用。"
},
"topUpResult": {
"awaitingPayment": "等待付款",
"awaitingPaymentDesc": "我们正在等待您的付款确认。这可能需要几分钟。",
"topUpAmount": "充值金额",
"success": "充值成功!",
"successDesc": "您的余额已成功充值,资金现已可用。",
"failed": "付款失败",
"failedDesc": "很遗憾,付款未完成。请重试或选择其他付款方式。",
"timeout": "处理时间较长",
"timeoutDesc": "付款处理时间比平时长。您可以再次检查状态。",
"goToBalance": "查看余额",
"tryAgain": "重试"
}
},
"referral": {
@@ -885,7 +923,8 @@
"roleAssign": "角色分配",
"policies": "访问策略",
"auditLog": "审计日志",
"salesStats": "销售统计"
"salesStats": "销售统计",
"landings": "落地页"
},
"panel": {
"title": "管理面板",
@@ -918,7 +957,8 @@
"roleAssignDesc": "分配和撤销用户角色",
"policiesDesc": "配置ABAC访问控制策略",
"auditLogDesc": "查看系统活动和访问历史",
"salesStatsDesc": "销售分析与趋势"
"salesStatsDesc": "销售分析与趋势",
"landingsDesc": "快速购买落地页"
},
"salesStats": {
"title": "销售统计",
@@ -1387,6 +1427,8 @@
"darkTheme": "暗色主题",
"emailAuth": "邮箱认证",
"emailAuthDesc": "允许通过邮箱登录",
"giftEnabled": "赠送订阅",
"giftEnabledDesc": "允许用户将订阅作为礼物赠送给其他用户",
"favoritesEmpty": "暂无收藏",
"favoritesHint": "点击星标将设置添加到这里",
"interfaceOptions": "界面选项",
@@ -1396,7 +1438,20 @@
"projectName": "项目名称",
"quickPresets": "快速预设",
"resetAllColors": "重置所有颜色",
"statusColors": "状态颜色"
"statusColors": "状态颜色",
"categories": {
"TELEGRAM_WIDGET": "Telegram Login Widget",
"TELEGRAM_OIDC": "Telegram Login (OIDC)"
},
"settingNames": {
"Telegram Widget Size": "小部件大小",
"Telegram Widget Radius": "圆角半径",
"Telegram Widget Userpic": "显示头像",
"Telegram Widget Request Access": "请求访问权限",
"telegramOidcEnabled": "启用 OIDC",
"telegramOidcClientId": "Client ID机器人 ID",
"telegramOidcClientSecret": "Client Secret"
}
},
"buttons": {
"color": "按钮颜色",
@@ -1415,7 +1470,8 @@
"referral": "推荐",
"support": "支持",
"info": "信息",
"admin": "管理面板"
"admin": "管理面板",
"language": "语言"
},
"descriptions": {
"home": "个人中心按钮",
@@ -1424,7 +1480,8 @@
"referral": "推荐计划",
"support": "支持工单",
"info": "信息板块",
"admin": "网页管理面板"
"admin": "网页管理面板",
"language": "机器人语言选择"
},
"styles": {
"default": "无颜色",
@@ -1433,6 +1490,26 @@
"danger": "红色"
}
},
"menuEditor": {
"dragHint": "拖拽行以重新排序",
"dragToReorder": "拖拽排序",
"row": "行",
"addRow": "添加行",
"addButton": "添加按钮",
"addUrlButton": "URL按钮链接",
"builtinButtons": "内置栏目",
"resetConfirm": "将菜单重置为默认设置?所有更改将丢失。",
"buttonTextPlaceholder": "按钮文本",
"customLabelsHint": "每种语言的按钮文本",
"moveUp": "上移",
"moveDown": "下移",
"openIn": "打开方式",
"openMode": {
"external": "外部浏览器",
"webapp": "Telegram 小程序"
},
"invalidUrl": "请为所有自定义按钮提供有效的URLhttp:// 或 https://"
},
"apps": {
"title": "应用管理",
"addApp": "添加应用",
@@ -1608,6 +1685,10 @@
"noPeriodsHint": "没有添加的周期。请至少添加一个周期。",
"daysShort": "天",
"serversTitle": "服务器",
"externalSquadTitle": "外部小组",
"externalSquadHint": "为此套餐的用户分配RemnaWave外部小组。创建订阅时用户将自动添加到所选小组。",
"noExternalSquad": "无外部小组",
"externalSquadUsers": "用户",
"serversTabHint": "选择此套餐上可用的服务器。",
"noServersAvailable": "没有可用的服务器",
"promoGroupsTitle": "促销组",
@@ -2151,6 +2232,7 @@
"form": {
"name": "组名称",
"namePlaceholder": "VIP客户",
"nameRequired": "请输入组名称",
"categoryDiscounts": "分类折扣",
"periodDiscounts": "期间折扣",
"add": "添加",
@@ -2162,6 +2244,7 @@
"rub": "卢布",
"autoAssignHint": "0 = 不自动分配",
"applyToAddons": "应用于附加服务",
"isDefault": "默认组",
"cancel": "取消",
"saving": "保存中...",
"save": "保存"
@@ -2618,6 +2701,7 @@
"apps": "应用",
"email_templates": "邮件模板",
"pinned_messages": "置顶消息",
"landings": "落地页",
"updates": "更新"
},
"permissionActions": {
@@ -2825,6 +2909,7 @@
"filters": {
"title": "筛选",
"active": "已激活",
"user": "用户",
"action": "操作",
"actionPlaceholder": "按操作搜索...",
"resource": "资源类型",
@@ -2883,6 +2968,63 @@
"loadFailed": "加载审计日志失败",
"retry": "重试"
}
},
"landings": {
"title": "落地页",
"create": "创建落地页",
"edit": "编辑",
"slug": "URL标识符",
"slugHint": "小写字母、数字和连字符",
"pageTitle": "标题",
"subtitle": "副标题",
"footerText": "底部文本 (HTML)",
"features": "功能特点",
"addFeature": "添加",
"featureIcon": "图标",
"featureTitle": "标题",
"featureDesc": "描述",
"tariffs": "套餐",
"selectTariffs": "选择套餐",
"periods": "周期",
"paymentMethods": "支付方式",
"addMethod": "添加方式",
"methodId": "方式ID",
"methodName": "名称",
"methodDesc": "描述",
"methodIcon": "图标URL",
"gifts": "礼物",
"giftEnabled": "礼物购买",
"customCss": "CSS",
"seo": "SEO",
"metaTitle": "Meta标题",
"metaDesc": "Meta描述",
"active": "已激活",
"inactive": "未激活",
"purchaseCount": "次购买",
"copyUrl": "复制URL",
"urlCopied": "URL已复制",
"deleteConfirm": "删除落地页「{{title}}」?",
"created": "落地页已创建",
"updated": "落地页已更新",
"deleted": "落地页已删除",
"saveOrder": "保存排序",
"orderSaved": "排序已保存",
"general": "基本设置",
"content": "内容",
"save": "保存",
"back": "返回",
"invalidSlug": "Slug只能包含小写字母、数字和连字符",
"titleRequired": "标题为必填项",
"noTariffs": "请至少选择一个套餐",
"noPaymentMethods": "请至少添加一个支付方式",
"selectMethods": "选择可用的支付方式",
"noSystemMethods": "系统中未配置任何支付方式",
"methodOrder": "拖动以调整顺序",
"methodSubOptions": "支付子选项",
"loadingPeriods": "加载中...",
"periodDaySuffix": "天",
"localeTab": "语言",
"localeHint": "切换语言以编辑该语言的文本"
}
},
"adminUpdates": {
@@ -3435,5 +3577,144 @@
"error": "合并失败,请稍后重试。",
"expiresIn": "剩余 {{minutes}} 分钟",
"merging": "合并中..."
},
"landing": {
"notFound": "页面未找到",
"forMe": "为自己",
"asGift": "作为礼物",
"contactLabel": "您的邮箱或 @用户名",
"yourContact": "您的邮箱或 @用户名",
"contactPlaceholder": "email@example.com 或 @username",
"contactHint": "输入邮箱或 Telegram @用户名",
"recipientLabel": "赠送对象",
"recipientPlaceholder": "收件人邮箱或 @用户名",
"giftMessageLabel": "祝福语(可选)",
"giftMessagePlaceholder": "写一段祝福语...",
"chooseTariff": "选择套餐",
"devices": "设备",
"paymentMethod": "支付方式",
"processing": "处理中...",
"payButton": "支付 {{price}}",
"accessFor": "{{period}} 访问权限",
"purchaseError": "创建支付失败",
"purchaseNotFound": "未找到购买记录",
"awaitingPayment": "等待支付",
"awaitingPaymentDesc": "请在打开的窗口中完成支付",
"purchaseSuccess": "支付成功!",
"keySentTo": "订阅密钥已发送至 {{contact}}",
"giftSentTo": "礼物已发送至 {{contact}}",
"purchaseFailed": "支付失败",
"purchaseFailedDesc": "支付未成功,请重试。",
"subscriptionLink": "订阅链接",
"daysAccess": "天访问权限",
"error": "错误",
"gb": "GB",
"selectedTariff": "套餐",
"period": "时长",
"total": "总计",
"pay": "支付",
"choosePeriod": "选择时长",
"copy": "复制",
"copied": "已复制!",
"copyLink": "复制链接",
"giftToggleLabel": "购买类型",
"pollTimedOut": "处理时间较长",
"pollTimedOutDesc": "付款处理时间比平时长。您可以尝试再次检查。",
"pendingActivation": "订阅准备激活",
"pendingActivationDesc": "您已有活跃订阅。激活新订阅将替换当前订阅。",
"activateNow": "立即激活",
"activating": "激活中...",
"activationFailed": "激活失败",
"giftMessage": "留言",
"cabinetReady": "您的账户已准备就绪",
"cabinetEmail": "邮箱",
"cabinetPassword": "密码",
"goToCabinet": "前往个人中心",
"saveCredentials": "请保存这些登录信息",
"credentialsSentToEmail": "登录信息已发送到您的邮箱",
"giftSentSuccess": "礼物已发送!",
"giftSentDesc": "收件人将通过邮件收到通知",
"giftPendingActivationDesc": "收件人已有活跃订阅。他们将收到激活礼物的链接。",
"giftTelegramSent": "已通过 Telegram 向收件人发送通知",
"giftTelegramNotInBot": "收件人尚未启动机器人。请将此链接发送给他们:",
"giftTelegramPendingSent": "已通过 Telegram 向收件人发送激活请求",
"giftTelegramPendingNotInBot": "收件人尚未启动机器人。请将机器人链接发送给他们以激活礼物:",
"openBot": "打开机器人",
"autoLoginFailed": "自动登录失败",
"autoLoginProcessing": "正在登录...",
"periodLabels": {
"d1": "1天",
"d2": "2天",
"d3": "3天",
"d5": "5天",
"d7": "1周",
"d14": "2周",
"d30": "1个月",
"d60": "2个月",
"d90": "3个月",
"d180": "6个月",
"d365": "1年",
"d456": "1年3个月",
"nDays": "{{count}}天",
"nMonths": "{{count}}个月"
}
},
"gift": {
"title": "赠送订阅",
"subtitle": "将VPN订阅作为礼物发送",
"choosePeriod": "选择时长",
"chooseTariff": "选择套餐",
"recipient": "收件人",
"recipientPlaceholder": "邮箱或 @telegram",
"recipientHint": "输入邮箱或 Telegram 用户名",
"giftMessage": "祝福语",
"giftMessagePlaceholder": "添加个人消息(可选)",
"paymentMode": "支付方式",
"fromBalance": "余额支付",
"viaGateway": "在线支付",
"yourBalance": "您的余额",
"insufficientBalance": "余额不足",
"topUpBalance": "充值",
"total": "合计",
"giftButton": "赠送",
"sending": "正在发送礼物...",
"gb": "GB",
"devices": "设备",
"paymentMethod": "支付方式",
"processing": "处理中...",
"successTitle": "礼物已发送!",
"successDesc": "收件人 {{contact}} 将收到通知",
"pendingTitle": "等待支付",
"pendingDesc": "请在支付系统中完成支付",
"pendingActivationTitle": "等待激活",
"pendingActivationDesc": "收件人有活跃订阅,礼物等待激活。",
"failedTitle": "错误",
"failedDesc": "礼物发送失败,请重试。",
"backToGift": "返回",
"backToDashboard": "返回首页",
"tryAgain": "重试",
"pollTimeout": "处理时间超出预期",
"pollTimeoutDesc": "请稍后再查看状态",
"pollErrorTitle": "无法检查礼物状态",
"pollErrorDesc": "您的购买已成功。请在仪表板上查看详情。",
"retry": "再次检查",
"notFound": "未找到礼物配置",
"noToken": "无效链接",
"noTokenDesc": "此礼物链接无效或已过期。",
"days": "天",
"tariff": "套餐",
"period": "时长",
"giftMessageLabel": "消息",
"recipientLabel": "收件人",
"featureDisabled": "礼物功能暂时不可用",
"redirecting": "正在跳转...",
"pending": {
"title": "您收到了一份礼物!",
"from": "来自 {{sender}}",
"activate": "激活"
},
"warning": {
"telegram_unresolvable": "无法验证此 Telegram 用户名。收件人可能不会收到礼物通知。"
}
}
}